OSDN Git Service

2001-11-16 David O'Brien <obrien@FreeBSD.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-11-16  David O'Brien  <obrien@FreeBSD.org>
2
3         * config.gcc (arm*-*-rtems*, arm-*-coff*, armel-*-coff*,
4         arm-*-vxworks*, arm-*-riscix1.[01]*, arm-*-riscix*,
5         arm-semi-aout, armel-semi-aout, arm-semi-aof, armel-semi-aof,
6         arm*-*-netbsd*, arm*-*-linux*, arm*-*-uclinux*, arm*-*-aout,
7         arm*-*-ecos-elf, arm*-*-elf, arm*-*-conix*, arm*-*-oabi,
8         arm-*-pe*, strongarm-*-elf*, strongarm-*-coff*, strongarm-*-pe,
9         xscale-*-elf, xscale-*-coff: Include various CPU headers via tm_file.
10         * config/arm/aof.h: Don't include arm.h.
11         * config/arm/aout.h: Likewise.
12         * config/arm/coff.h: Don't include semi.h and aout.h.
13         * config/arm/elf.h: Don't include aout.h.
14         * config/arm/netbsd.h: Don't include netbsd.h and aout.h.
15         (TARGET_VERSION): Undef before defining.
16         (ARM_OS_NAME): Likewise
17         (TARGET_DEFAULT): Likewise
18         (TARGET_MEM_FUNCTIONS): Do not need to undefine now.
19         * config/arm/pe.h: Don't include arm/coff.h.
20         * config/arm/riscix.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Use
21         SUBTARGET_CPP_SPEC rather than overiding the arm.h CPP_SPEC definition.
22         * config/arm/riscix1-1.h: Likewise.
23         * config/arm/rix-gas.h: Don't include riscix.h.
24         (DBX_CONTIN_LENGTH): Undef before defining.
25         * config/arm/semi.h: Don't include aout.h.
26         * config/arm/semiaof.h: Don't include aof.h.
27         * config/arm/strongarm-coff.h: Don't include coff.h.
28         * config/arm/strongarm-pe.h: Don't include strongarm-coff.h and pe.h.
29         * config/arm/vxarm.h: Don't include arm/coff.h.
30         * config/arm/xscale-coff.h: Don't include coff.h.
31
32 Fri Nov 16 15:22:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33
34         * config/pa/pa.c: Reflect changes in calling sequences of alter_reg and
35         emit_cmp_insn.
36
37 2001-11-16  Andreas Jaeger  <aj@suse.de>
38
39         * cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename
40         to ....
41         (fixup_fallthru_exit_predecessor): ... this.
42         Change callers and prototype.
43
44 2001-11-16  Bernd Schmidt  <bernds@redhat.com>
45
46         * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by
47         hand; don't use gen_setcc_2.
48         (ix86_expand_builtin): Fix pshufw.
49         * config/i386/i386.md (maskncmpv4sf3, vmmmaskncmpv4sf3): Special
50         case UNORDERED to emit the right assembler instruction.
51         (mmx_pshufw): Lose operand 2.
52         (cvtsi2ss): Fix representation.
53         From Graham Stott:
54         (mmx_clrdi, sse_clrti, stmxcsr, ldmxcsr): Set memory attribute.
55
56 2001-11-16  Joseph S. Myers  <jsm28@cam.ac.uk>
57
58         * doc/include/linux-and-gnu.texi: Remove.
59         * doc/gnu.texi: New.
60         * doc/gcc.texi: Include gnu.texi instead of linux-and-gnu.texi.
61         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
62
63 2001-11-16  Kazu Hirata  <kazu@hxi.com>
64
65         * config/a29k/a29k.c: Fix comment formatting.
66         * config/a29k/a29k.h: Likewise.
67         * config/arc/arc.c: Likewise.
68         * config/arc/arc.h: Likewise.
69         * config/vax/vax.c: Likewise.
70         * config/vax/vax.h: Likewise.
71         * config/we32k/we32k.c: Likewise.
72         * config/we32k/we32k.h: Likewise.
73
74 2001-11-16  Jeff Law  <law@redhat.com>
75
76         * unroll.c (copy_loop_body): Initialize JUMP_LABEL field after
77         creating a new jump insn.
78
79 Fri Nov 13 09:06:25 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
80
81         * expr.c (expand_expr, case ADDR_EXPR): Refine test for when to
82         copy misaligned data.
83         * varasm.c (assemble_variable): Set alignment into MEM when changed.
84
85 2001-11-16  Graham Stott  <grahams@redhat.com>
86
87         * optabs.c (prepare_cmp_insn): Correct lossage in last change fix
88         OPALIGN type.
89
90 2001-11-16  Olivier Hainque <hainque@act-europe.fr>
91
92         * except.c: Support for catching a list of types with a single handler
93         (struct eh_region): Change type and filter to lists for catch regions.
94         (mark_eh_region): Mark the filter list for GC also.
95         (expand_start_catch): Always build a list if argument not NULL and
96         register each type of the list through add_type_for_runtime.
97         (duplicate_eh_region_1): Change type into type_list for catch regions.
98         (assign_filter_values): Assign a filter to each type associated with a
99         catch region. Assign filter for NULL types in a unique entry in the
100         filter list.
101         (build_post_landing_pads): Emit compare and jump for each filter of
102         the list associated with a catch region.
103         (reachable_next_level): When the type thrown is known, stop the search
104         as soon as one type within a catch list matches. Also, a handler is
105         potentially reachable only if at least one of the types it catches
106         has not been previously caught.
107         (collect_one_action_chain): Retrieve the filter for a NULL type list
108         from the first filter list entry. For non NULL type lists, add an
109         action record for every filter assigned.
110         * except.h: Reflect changes in comment before expand_start_catch.
111
112 Fri Nov 16 07:12:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
113
114         * expr.c (expand_expr, case ADDR_EXPR): Only copy for misaligned if
115         BLKmode.
116
117 Fri Nov 16 06:37:05 2001  Andreas Tobler  <a.tobler@schweiz.ch>
118
119         * config/sparc/sparc.c: Remove ALIGN arg from emit_cmp_insn.
120
121 2001-11-16  Jakub Jelinek  <jakub@redhat.com>
122
123         * c-lang.c (finish_file): Don't emit static inline functions if
124         they weren't referenced.
125
126 2001-11-15  Stan Shebs  <shebs@apple.com>
127
128         * expr.c (expand_expr, case COMPONENT_REF): Fix variable ref.
129
130 2001-11-16  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
131
132         * config/s390/s390.md: Remove ALIGN arg from emit_cmp_and_jump_insns
133         call.
134         * config/i386/i386.md: Likewise.
135
136 Thu Nov 15 21:40:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
137
138         * timevar.c (rtl.h): Include so get fancy abort.
139
140 2001-11-15  Dale Johannesen  <dalej@apple.com>
141
142         * config/darwin.h (SELECT_RTX_SECTION):  Force address
143         initializers into 'const' section
144         * config/rs6000/rs6000.c (rs6000_emit_cmove):  Fix mode of
145         if_then_else to match result, not operands
146
147 Thu Nov 15 17:57:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
148
149         * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.
150         * emit-rtl.c (change_address): Fix typo in default alignment.
151         (adjust_address_1): Use mode of NEW, not MODE, when setting size.
152         * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case.
153         * rtl.h (REGNO_PTR_FRAME_P): New macro.
154
155         * expr.c (store_field): Pass tree instead of max size; callers changed.
156         Change handling of alignment.
157         Only copy to_rtx if is TARGET.
158         (expand_expr_unaligned): Delete; callers now use expand_expr.
159         (emit_cmp_insn): No longer take ALIGN parm; all callers changed.
160         (expand_assignment): Change handling of alignment.
161         Only copy to_rtx if was original.
162         (get_inner_reference): No longer return alginment; callers changed.
163         (expand_expr, case COMPONENT_REF): Change handling of alignment.
164         (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
165         (compare_from_rtx): Delete ALIGN parm; all callers changed.
166         (do_compare_rtx_and_jump): Likewise.
167         * expr.h: Reflect above changes.
168         * tree.h: Likewise.
169         * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
170         to get_inner_reference.
171         * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns.
172         * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise.
173         * optabs.c: Likewise.
174         (prepare_cmp_insn): Now static; remove ALIGN parm.  Callers changed.
175         (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
176         * expmed.c: Remove ALIGN arg from calls to compare_from_rtx,
177         compare_rtx_and_jump, and emit_cmp_jump_insns.
178         * fold-const.c: Remove PALIGN in calls to get_inner_reference.
179         * function.c (assign_stack_temp_for_type): No longer static.
180         * optabs.h (emit_cmp_insn): Remove ALIGN parm.
181         (prepare_cmp_insn): Delete declaration.
182         * rtl.h (assign_stack_temp_for_type): Add declaration.
183         * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes.
184         * config/clipper/clipper.c, config/h8300/h8300.c: Likewise.
185         * config/i386/i386.c,config/mips/mips.c: Likewise.
186         * config/i860/i860.c, config/ia64/ia64.c: Likewise.
187         * config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
188
189 2001-11-15  Stan Shebs  <shebs@apple.com>
190
191         * config/rs6000/rs6000.h: Fix a comment typo.
192         (RTX_COSTS): Sort processor versions better.
193
194 2001-11-15  Kazu Hirata  <kazu@hxi.com>
195
196         * config/h8300/h8300.md: Fix insn length of bit insns.
197
198 2001-11-15  Jason Merrill  <jason@redhat.com>
199
200         * dwarf2out.c (dwarf2out_finish): Don't abort because of orphan
201         DIEs if there were errors in the source.
202
203         * config/alpha/alpha-interix.h, config/alpha/elf.h,
204         config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c,
205         config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h,
206         config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c,
207         config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h,
208         config/elfos.h, config/lynx.h, config/netware.h,
209         config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h,
210         config/s390/linux64.h: Remove definitions of INT_ASM_OP, change
211         uses to use ASM_LONG.
212
213 2001-11-15  Alan Matsuoka  <alanm@redhat.com>
214
215         * gensupport.c  process_include : Change call to alloca to
216         xmalloc.
217
218 2001-11-15  Aldy Hernandez  <aldyh@redhat.com>
219
220         * config/rs6000/rs6000.md: Use spaces instead of tabs in output
221         templates.
222
223 Thu Nov 15 08:36:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
224
225         * final.c (alter_subreg): If simplify_subreg can't do anything,
226         handle REG ourselves and abort for others.
227
228 2001-11-15  Richard Hodson  <hodsonr@dionecorp.com>
229
230         * config/h8300/h8300.c (dosize): Avoid corrupting R3 in interrupt
231         routines.
232
233 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
234
235         * fix-header.c (read_scan_file): Update.
236
237 Thu Nov 15 08:36:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
238
239         * toplev.c (toplev_main): Don't start timing until after
240         command-line options are parsed.
241
242 2001-11-15  Andreas Schwab  <schwab@suse.de>
243
244         * config.gcc: Set STMP_FIXPROTO and FIXPROTO_DEFINES in target
245         makefile frag, not host makefile frag.
246         (m88k-dg-dguxbcs*): Add m88k/t-dgux to tmake_file.
247         (hppa*): Add pa/t-bsd to tmake_file where no special xmake_file is
248         used.
249         (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd.
250         * config/m88k/t-dguxbcs: Remove definitions already in t-dgux.
251         * config/m88k/t-dgux (STMP_FIXPROTO): Define.
252         * config/i386/t-cygwin (STMP_FIXPROTO): Define.
253         * config/i386/t-dgux (STMP_FIXPROTO): Define.
254         * config/x-interix: Don't define STMP_FIXPROTO and
255         FIXPROTO_DEFINES.
256         * config/t-interix: New file, define STMP_FIXPROTO.
257         * config/i386/x-beos (STMP_FIXPROTO): Don't define here.
258         * config/i386/t-beos (STMP_FIXPROTO): Define here instead.
259         * config/t-svr4 (FIXPROTO_DEFINES): Define.
260         * config/arm/t-riscix (FIXPROTO_DEFINES): Define.
261         * config/i386/t-sco5 (FIXPROTO_DEFINES): Define.
262         * config/i386/t-sco5gas (FIXPROTO_DEFINES): Define.
263         * config/m68k/t-hp3200: Renamed from x-hp3200.
264         * config/i370/t-oe: Renamed from x-oe.
265         * config/mips/t-iris: Renamed from x-iris.
266         * config/pa/t-bsd: Renamed from x-pa.
267         * config/pa/t-pa-hpux: Renamed from x-pa-hpux.
268         * config/x-linux, config/i386/x-cygwin, config/i386/x-dgux,
269         config/m88k/x-dgux, config/x-svr4, config/arm/x-riscix,
270         config/i386/x-sco5, config/m68k/x-hp320g, config/mips/x-iris6,
271         config/rs6000/x-cygwin: Remove files.
272
273         * configure.in: Check for target objdump and use that in eh_frame
274         optimization test.
275         * configure: Regenerated.
276
277 2001-11-15  Jakub Jelinek  <jakub@redhat.com>
278
279         * jump.c (squeeze_notes): Return true if no real insns were found.
280         * rtl.h (squeeze_notes): Adjust prototype.
281         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): If
282         squeeze_notes finds no real instructions, abort.
283         (merge_blocks_move_successor_nojumps): Likewise.
284         * loop.c (find_and_verify_loops): Likewise.
285         * stmt.c (expand_end_case): Likewise.
286         * ifcvt.c (dead_or_predicable): Return TRUE if squeeze_notes doesn't
287         find any real instructions.
288
289         * config/ia64/ia64.c (ia64_adjust_cost): Handle SUBREGs.
290
291         * cfgcleanup.c (try_optimize_cfg): If try_simplify_condjump optimized
292         conditional jump, request updating life into for the block
293         containing it.  Fix a typo which prevented life info update.
294         Clear blocks bitmap before using it.
295
296 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
297
298         * c-common.c: Include c-lex.h.
299         (c_common_lang_init): Change prototype.  Call init_c_lex and
300         init_pragma from here.
301         * c-common.h (c_common_lang_init): Change prototype.
302         * c-decl.c (init_decl_processing): Rename.  Call c_parse_init.
303         * c-lang.c (c_init): Change prototype.  Update.
304         (c_init_options): Update.
305         * c-lex.c (cpp_filename): Remove.
306         (init_c_lex): Update.  Read the main file, and get the original
307         file name.
308         (yyparse): Finish the command line options.
309         * c-parse.in (c_parse_init): Call init_reswords here.
310         (init_parse): Remove.
311         * c-tree.h (c_init_decl_processing): New.
312         * cpphash.c (_cpp_init_hashtable): After initializing the hash
313         table, populate it.
314         * cppinit.c (read_original_filename, cpp_finish_options): New.
315         (cpp_create_reader): New prototype. Defer hash table initialization.
316         (cpp_start_read): Rename cpp_read_main_file.  Initialize the
317         hash table.  Get the original filename.
318         * cpplib.h (cpp_create_reader): Update.
319         (cpp_start_read): Remove.
320         (cpp_read_main_file, cpp_finish_options): New.
321         * cppmain.c (main, do_preprocessing): Update.
322         * langhooks.h (struct langhooks): Update init prototype.
323         * toplev.c (general_init, parse_options_and_default_flags,
324         process_options, lang_indpendent_init, lang_dependent_init,
325         init_asm_output): New; perform the bulk of initialization.
326         (compile_file): Move most of initialization to above functions.
327         (debug_hooks): Initialize statically.
328         (set_Wunused): Relocate.
329         (toplev_main): Move most of initialization to other init functions.
330         Have a clear logic flow.
331         * tree.h (init_parse, init_decl_processing): Remove.
332 objc:
333         * objc-act.c (objc_init): Update prototype, combine with old
334         init_parse.
335         (objc_init_options): Update.
336
337
338 2001-11-15  Andreas Jaeger  <aj@suse.de>
339
340         * cfgrtl.c (purge_all_dead_edges): Use int as argument for
341         portability.
342         * basic-block.h: Adjust prototype.
343
344 2001-11-15  Kazu Hirata  <kazu@hxi.com>
345
346         * config/rs6000/aix31.h: Fix comment formatting.
347         * config/rs6000/beos.h: Likewise.
348         * config/rs6000/darwin.h: Likewise.
349         * config/rs6000/eabi.asm: Likewise.
350         * config/rs6000/linux.h: Likewise.
351         * config/rs6000/linux64.h: Likewise.
352         * config/rs6000/lynx.h: Likewise.
353         * config/rs6000/netbsd.h: Likewise.
354         * config/rs6000/rs6000.c: Likewise.
355         * config/rs6000/rs6000.h: Likewise.
356         * config/rs6000/rs6000.md: Likewise.
357         * config/rs6000/sol2.h: Likewise.
358         * config/rs6000/tramp.asm: Likewise.
359         * config/rs6000/xcoff.h: Likewise.
360         * config/rs6000/xm-beos.h: Likewise.
361
362 2001-11-14  Alan Matsuoka  <alanm@redhat.com>
363
364         * rtl.def (INCLUDE) : Define.
365         * gensupport.c  (init_include_reader, process_include,
366         save_string) :  New functions to implement an include facility
367         in .md files.
368         * gensupport.h : Add prototype for init_md_reader_args.
369         * genattr.c genattrtab.c gencodes.c genconfig.c genemit.c
370         genextract.c genflags.c genopinit.c genoutput.c
371         genpeep.c genrecog.c: Change call to init_md_reader to
372         init_md_reader_args.
373         * md.texi: Document (include "path") and -I directives for RTL
374         generation tools.
375
376 2001-11-14  DJ Delorie  <dj@redhat.com>
377
378         * integrate.c (get_hard_reg_initial_reg): New.
379         * integrate.h (get_hard_reg_initial_reg): Prototype.
380         * local-alloc.c (block_alloc): Don't tie pseudos that
381         represent call-saved hard regs' initial values.
382
383 2001-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
384
385         * m68k/linux.h: Include <linux.h> not "linux.h" to avoid infinite
386         recursion.
387
388 2001-11-14  Roger Sayle <roger@eyesopen.com>
389
390         * fold-const.c (fold): Optimize strlen comparisons against zero.
391
392 2001-11-14  David O'Brien  <obrien@FreeBSD.org>
393
394         * config.gcc (sparc64-wrs-vxworks*, sparc-*-netbsd*, sparc-*-openbsd*,
395         sparc-*-chorusos*, sparc-*-elf*, sparc-*-linux*aout*,
396         sparc-*-linux*libc1*, sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtems*,
397         sparc-*-rtemself*, sparc-hal-solaris2*, sparc-*-solaris2*,
398         sparc-*-sunos4.0*, sparc-*-sunos4*, sparc-*-sunos3*, sparc-*-sysv4*,
399         sparc-*-vxsim*, sparclite-*-aout*, sparclite-*-elf*, sparc86x-*-aout*,
400         sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, sparc64-*-linux*):
401         Include various CPU headers via tm_file.  a.out based platforms now
402         properly include sparc/aout.h.  sol2.h usage now implies including
403         elfos.h, svr4.h, and sparc/sysv4.h.
404         * config/netbsd.h (TARGET_MEM_FUNCTIONS): Undef before defining it.
405         Also define to '1'.
406         * sparc/sparc.h (CPP_PREDEFINES, TARGET_VERSION, WORD_SWITCH_TAKES_ARG,
407         SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP,
408         DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE):
409         Remove.  They are a.out specific and belong in sparc/aout.h.
410         * sparc/aout.h (TARGET_VERSION, WORD_SWITCH_TAKES_ARG, SELECT_SECTION,
411         ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
412         DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): Define.  Moved here from
413         sparc/sparc.h.
414         * sparc/litecoff.h (WORD_SWITCH_TAKES_ARG, ASM_DECLARE_FUNCTION_NAME,
415         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER): Define.
416         Moved here from sparc/sparc.h.
417         * config/sparc/linux-aout.h (DEFAULT_PCC_STRUCT_RETURN): Undef before
418         defining.
419         * config/sparc/linux64.h (UNALIGNED_DOUBLE_INT_ASM_OP): Undef before
420         * config/sparc/lynx.h:  Don't include lynx.h.
421         (SELECT_SECTION): Do not undef.
422         * config/sparc/openbsd.h: Don't include sparc/sparc.h.
423         * config/sparc/sol2-sld-64.h: Include sparc/sparc.h, elfos.h, svr4.h,
424         and sparc/sysv4.h.
425         * config/sparc/sol2.h: Don't include sparc/sparc.h and sparc/sysv4.h.
426         * config/sparc/sp64-aout.h (CPP_PREDEFINES): Don't define.  Get from
427         sparc/aout.h now.
428         * config/sparc/sp64-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO):
429         Don't undef, there is no need.
430         * config/sparc/splet.h (CPP_PREDEFINES): Define.
431         * config/sparc/sun4o3.h (CPP_PREDEFINES): Likewise.
432         * config/sparc/sunos4.h (CPP_PREDEFINES): Likewise.
433         Don't include sparc/sparc.h.
434         * config/sparc/sysv4.h (WORD_SWITCH_TAKES_ARG, ASM_OUTPUT_SOURCE_LINE,
435         SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP,
436         DATA_SECTION_ASM_OP): Don't undef, there is no need now.  Don't include
437         elfos.h and svr4.h.
438         (TARGET_VERSION): Define.
439         * config/sparc/vxsim.h (TARGET_VERSION): Define.
440
441 Wed Nov 14 19:46:08 CET 2001  Jan Hubicka  <jh@suse.cz>
442
443         * cfglayout.c (fixup_fallthru_exit_predecesor): New static function.
444         (cfg_layout_finalize): Use it.
445         * bb-reorder.c (HAVE_epilogue): Remove.
446         (make_reorder_chain): Do not care special placement of
447         last basic block.
448
449         * predict.c (expected_value_to_br_prob): Delete the note
450         once transformed.
451
452         * c-decl.c (c_expand_body): Fix TV_EXPAND nesting problem;
453         measure integration time separately.
454
455 Wed Nov 14 12:30:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
456
457         * function.c (struct temp_slot): ALIGN now unsigned.
458
459 2001-11-14  Kazu Hirata  <kazu@hxi.com>
460
461         * config/dsp16xx/dsp16xx.c: Fix comment formatting.
462         * config/dsp16xx/dsp16xx.h: Likewise.
463         * config/dsp16xx/dsp16xx.md: Likewise.
464
465 2001-11-14  Kazu Hirata  <kazu@hxi.com>
466
467         * config/h8300/h8300.c (get_shift_alg): Reorganize the code
468         that deals with 7-bit shifts in HImode.
469
470 Wed Nov 14 14:17:05 CET 2001  Jan Hubicka  <jh@suse.cz>
471
472         * dbxout.c (dbxout_symbol_location): Update call of alter_subreg.
473         * final.c (walk_alter_subreg): Take pointer; update call of alter_subreg.
474         (final_scan_insn): Update call of alter_subreg.
475         (cleanup_subreg_operands): Likewise.
476         (alter_subreg): Rewrite using simplify_subreg.
477         (output_address, output_operand): Update call of alter_subreg.
478         * output.h (alter_subreg): Update prototype.
479         * sdbout.c (sdbout_symbol): Update call of alter_subreg.
480         * simplify-rtx.c (simplify_subreg): Copy ORIGINAL_REGNO.
481         * Makefile.in (final.o): Add depdendancy on expr.h
482
483 Wed Nov 14 06:37:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
484
485         * c-lang.c (finish_file): Make I unsigned to eliminate warning.
486
487 2001-11-13  Jeff Sturm  <jsturm@one-point.com>
488
489         * doc/install.texi (sparc-*-linux*): Mention requirements for
490         binutils and glibc.
491
492 2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
493
494         * Makefile.in (POD2MAN): Don't include --section=1.
495         (manext): Rename to man1ext.  All users changed.
496         (man7ext): New.
497         (man7dir): New.
498         (generated-manpages): Also depend on $(docdir)/gfdl.7,
499         $(docdir)/gpl.7, and $(docdir)/fsf-funding.7.
500         ($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include
501         --section=1 in calls to $(POD2MAN).
502         ($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New.
503         (maintainer-clean, install, uninstall): Handle the new man pages.
504         ($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi.
505         (installdirs): Create man7dir.
506         * doc/cpp.texi: Include GFDL in this manual.  In the man page,
507         refer to gfdl(7) for the GFDL.  Apply Front Cover and Back Cover
508         texts to man page.  Include gpl(7), gfdl(7) and fsf-funding(7) in
509         the SEE ALSO man page section.
510         * doc/gcov.texi: Apply GFDL to man page.  Include gpl(7), gfdl(7)
511         and fsf-funding(7) in the SEE ALSO man page section.
512         * doc/invoke.texi: Apply GFDL to man page.  Include gpl(7),
513         gfdl(7) and fsf-funding(7) in the SEE ALSO man page section.
514         * doc/include/fdl.texi, doc/include/funding.texi,
515         doc/include/gpl.texi: Adjust for conversion by texi2pod.pl.
516         * doc/.cvsignore: Add gfdl.7, gpl.7 and fsf-funding.7.
517
518 2001-11-13  Richard Henderson  <rth@redhat.com>
519
520         * dwarf2asm.c (dw2_force_const_mem): Set PUBLIC or STATIC
521         as appropriate for the artificial decl.
522
523 2001-11-13  Richard Henderson  <rth@redhat.com>
524
525         * loop.c (combine_movables): Turn off combination until
526         move_movables validation bugs are fixed.
527
528 2001-11-13  DJ Delorie  <dj@redhat.com>
529
530         * config.gcc (powerpc|rs6000): Set default cpp options based
531         on --with-cpu settings.
532         * config/rs6000/softfloat.h: New.
533
534 2001-11-13  Kazu Hirata  <kazu@hxi.com>
535
536         * config/h8300/h8300.c (shift_alg_si): Use special code for
537         25-bit shifts on H8/S.
538         (get_shift_alg): Generate special code for 25-bit shifts on
539         H8/S.
540
541 2001-11-13  Jakub Jelinek  <jakub@redhat.com>
542
543         * emit-rtl.c (adjust_address_1): Add ADJUST argument.
544         (adjust_automodify_address_1): New.
545         * expr.h (adjust_address, adjust_address_nv): Adjust.
546         (adjust_automodify_address, adjust_automodify_address_nv): Define.
547         (adjust_address_1): Update prototype.
548         (adjust_automodify_address_1): Add prototype.
549         * expr.c (move_by_pieces_1): Use adjust_automodify_address.
550         (store_by_pieces_2): Likewise.
551
552 Tue Nov 13 05:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
553
554         * Makefile.in (explow.o): Now depends on ggc.h.
555         * explow.c (ggc.h): Include.
556         (set_stack_check_libfunc): Mark stack_check_libfunc as ggc root.
557
558         * Makefile.in (expr.o): Depends on insn-attr.h.
559         * expr.c (insn-attr.h): New include.
560         (force_operand): If INSN_SCHEDULING, deal with paradoxical SUBREG
561         of MEM.
562         (highest_pow2_factor, case INTEGER_CST): Handle negative values.
563         (expand_expr): Remove unneeded mark_temp_addr_taken calls and
564         clean up related usage in ADDR_EXPR.
565         (expand_expr_unaligned): Likewise.
566
567         * emit-rtl.c (change_address): Fix typo in alias setting.
568
569 2001-11-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
570
571         * Makefile.in (cfgcleanup.o): Depend on insn-config.h
572
573 2001-11-12  Craig Rodrigues  <rodrigc@gcc.gnu.org>
574
575         PR bootstrap/3451
576         * c-pragma.c: Rename macros BAD, BAD2, BAD_ACTION to
577         GCC_BAD, GCC_BAD2, GCC_BAD_ACTION.
578
579 2001-11-12  David O'Brien  <obrien@FreeBSD.org>
580
581         * config.gcc (sparc-tti-*, sparc64-wrs-vxworks*, sparc-wrs-vxworks*,
582         sparclite-wrs-vxworks*, sparc-*-aout*, sparc-*-netbsd*,
583         sparc-*-chorusos*, sparc-*-linux*aout*, sparc-*-linux*libc1*,
584         sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtemsaout*, sparc-*-rtems*,
585         sparc-*-rtemself*, sparc-*-solaris2*, sparc-*-sunos3*, sparc-*-sysv4*,
586         sparc-*-vxsim*, sparclet-*-aout*, sparclite-*-coff*, sparclite-*-aout*,
587         sparc86x-*-aout*, sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*,
588         sparc64-*-linux*):  Include various CPU headers via tm_file.
589         * config/svr3.h (ASM_OUTPUT_IDENT): Undef before defining it.
590         (SELECT_SECTION): Likewise.
591         (SELECT_RTX_SECTION): Likewise.
592         * config/sparc/sparc_bi.h: New file.
593         * config/sparc/aout.h: Don't include sparc/sparc.h and aoutos.h.
594         * config/sparc/linux-aout.h: Likewise.
595         * config/sparc/linux.h: Don't include sparc/sysv4.h.
596         * config/sparc/linux64.h: Likewise.
597         (SPARC_BI_ARCH): Don't define.  sparc_bi.h will do it instead.
598         * config/sparc/lite.h:  Don't include sparc/sparc.h and gofast.h.
599         * config/sparc/litecoff.h: Don't include sparc/lite.h, svr3.h,
600         and dbxcoff.h
601         (ASM_OUTPUT_IDENT): Do not #undef.
602         (SELECT_SECTION): Likewise.
603         (SELECT_RTX_SECTION): Likewise.
604         * config/sparc/liteelf.h: Don't include gofast.h.
605         * config/sparc/lynx-ng.h: Don't include sparc/sparc.h and lynx-ng.h.
606         * config/sparc/lynx.h: Don't include sparc/sparc.h.
607         * config/sparc/pbd.h: Likewise.
608         * config/sparc/netbsd.h: Don't include sparc/sparc.h and netbsd.h.
609         * config/sparc/rtems.h: Don't include sparc/aout.h and rtems.h.
610         * config/sparc/rtemself.h: Don't include rtems.h.
611         * config/sparc/sol2-64.h: Don't include sparc/sol2-sld-64.h.
612         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Don't define, include
613         sparc_bi.h instead.
614         * config/sparc/sol2-sld.h: Don't include sparc/sol2.h.
615         * config/sparc/sol2.h: Include sparc/sparc.h directly.
616         * config/sparc/sp64-aout.h: Don't include sparc/sparc.h and aoutos.h.
617         * config/sparc/sp64-elf.h: Don't include sparc/sol2.h.
618         * config/sparc/sp86x-aout.h: Don't include sparc/sparc.h and gofast.h.
619         * config/sparc/sp86x-elf.h: Don't include gofast.h.
620         * config/sparc/splet.h: Don't include sparc/aout.h.
621         * config/sparc/sun4o3.h: Don't include sparc/sparc.h.
622         * config/sparc/sysv4.h: Don't include sparc/sparc.h directly.
623         * config/sparc/vxsim.h: Don't include sparc/sysv4.h.
624         * config/sparc/vxsparc.h: Don't include sparc/aout.h and gofast.h.
625         * config/sparc/vxsparc64.h: Don't include gofast.h.
626         (SPARC_BI_ARCH): Don't define.  sparc_bi.h will do it instead.
627
628 2001-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
629
630         * doc/standards.texi: Mention C99 TC1.
631
632 2001-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
633
634         * mips-protos.h (mips_output_conditional_branch): Const-ify.
635         * mips.c (mips_output_conditional_branch): Likewise.
636
637 2001-11-12  Kazu Hirata  <kazu@hxi.com>
638
639         * config/h8300/h8300.c (shift_alg_si): Use special code for
640         15-bit logical shifts and 31-bit logical shifts.
641         (get_shift_alg): Generate special code for 15-bit and 31-bit
642         logical shifts.
643
644 2001-11-12  Kazu Hirata  <kazu@hxi.com>
645
646         * config/h8300/h8300.c (shift_alg_qi): Use rotations when
647         doing 6-bit logical shifts on H8/S.
648         (shift_alg_qi): Use special code for 21-bit shifts on H8/S.
649         (get_shift_alg): Generate special code for 21-bit shifts on
650         H8/S.
651
652 2001-11-12  Kazu Hirata  <kazu@hxi.com>
653
654         * config/h8300/h8300.c (get_shift_alg): Remove a redundant
655         label.
656
657 Mon Nov 12 11:58:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
658
659         * alias.c (nonoverlapping_memrefs_p): Only update size from memref
660         if both size and offset known.
661
662 2001-11-12  David O'Brien  <obrien@FreeBSD.org>
663
664         * config/ia64/freebsd.h: Fix misspelling.
665
666 2001-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
667
668         * doc/gcc.texi: Move several chapters out to ...
669         * doc/configterms.texi, doc/fragments.texi, doc/hostconfig.texi,
670         doc/include/linux-and-gnu.texi, doc/interface.texi,
671         doc/makefile.texi, doc/passes.texi, doc/portability.texi:
672         ... here.  New files.
673         * doc/gcc.texi, doc/contrib.texi: Move section headings into
674         contrib.texi.
675         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
676
677 2001-11-12  Kazu Hirata  <kazu@hxi.com>
678
679         * config/alpha/alpha-interix.h: Fix comment formatting.
680         * config/alpha/alpha.c: Likewise.
681         * config/alpha/alpha.h: Likewise.
682         * config/alpha/alpha32.h: Likewise.
683         * config/alpha/freebsd.h: Likewise.
684         * config/alpha/unicosmk.h: Likewise.
685         * config/alpha/vms.h: Likewise.
686
687 2001-11-12  Kazu Hirata  <kazu@hxi.com>
688
689         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
690
691 2001-11-12  Jakub Jelinek  <jakub@redhat.com>
692
693         * dbxout.c (dbxout_symbol_location): Avoid emitting invalid register
694         numbers.
695
696 Mon Nov 12 05:18:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
697
698         * emit-rtl.c (set_mem_attributes): If making object, can set alignment
699         from type.
700         (replace_equiv_address): Call update_temp_slot_address.
701
702         * dwarf2out.c (loc_descriptor_from_tree, case COMPOUND_EXPR): New case.
703
704         * alias.c (nonoverlapping_memrefs_p): Handle DECL_RTL being a CONCAT.
705
706 2001-11-12  Kazu Hirata  <kazu@hxi.com>
707
708         * config/h8300/h8300.c (shift_alg_qi): New.
709         (shift_alg_hi): Likewise.
710         (shift_alg_si): Likewise.
711         (get_shift_alg): Change the type of count to unsigned int.
712         Use the tables.
713
714 2001-11-11  Alexandre Oliva  <aoliva@redhat.com>
715
716         * Makefile.in (c-lang.o): Depend on $(VARRAY_H).
717         * c-decl.c (c_expand_body): Take argument can_defer_p.  Use it
718         to decide whether to defer a function.
719         (finish_function): Adjust.
720         (c_expand_deferred_function): New function.
721         * c-lang.c (deferred_fns): New variable.
722         (c_init): Initialize it, and mark it as a root.
723         (defer_fn): New function.
724         (finish_file): Expand all deferred functions.
725         * c-tree.h (defer_fn): Declare.
726         (c_expand_deferred_function): Likewise.
727         * objc/Make-lang.in (objc-act.o): Depend on $(VARRAY_H).
728         * objc-act.c (deferred_fns): New variable.
729         (objc_init): Initialize it, and mark it as a root.
730         (defer_fn): New function.
731         (finish_file): Expand all deferred functions.
732
733 2001-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
734
735         * alpha.c (unicosmk_special_name): Prototype.
736         (unicosmk_ssib_name): Delete unused variable.
737         * alpha/unicosmk.h (common_section, ssib_section): Prototype.
738         * alpha/vms.h (PREFIX): Undef before defining.
739         * arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise.
740         * i370/i370.c (mvs_hash_alias): Prototype.  Wrap with macro
741         controlling usage.  Const-ify.
742         (alias_number): Delete unused variable.
743         * m32r/m32r.c (m32r_sched_init): Add missing argument.
744         (m32r_expand_block_move): Fix uninitialized warnings.
745         * mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is
746         always true' warnings.
747         * openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine.
748         * sh/sh.c: Include "integrate.h".
749         (output_far_jump): Fix uninitialized warning.
750         * final.c (shorten_branches): Avoid automatic aggregate
751         initialization.
752         * integrate.c (subst_constants): Likewise.
753
754 2001-11-11  Kazu Hirata  <kazu@hxi.com>
755
756         * config/h8300/h8300.c (shift_alg): Remove SHIFT_MAX.
757         (get_shift_alg): Remove redundant code.
758
759 2001-11-11  Kazu Hirata  <kazu@hxi.com>
760
761         * config/pa/milli64.S: Fix comment formatting.
762         * config/pa/pa-64.h: Likewise.
763         * config/pa/pa-linux.h: Likewise.
764         * config/pa/pa-protos.h: Likewise.
765         * config/pa/pa.c: Likewise.
766         * config/pa/pa.h: Likewise.
767         * config/pa/pa32-linux.h: Likewise.
768         * config/pa/pa32-regs.h: Likewise.
769         * config/pa/pa64-hpux.h: Likewise.
770         * config/pa/pa64-regs.h: Likewise.
771         * config/pa/som.h: Likewise.
772
773 2001-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
774
775         * doc/gcc.texi: Move several chapters out to ...
776         * doc/bugreport.texi, doc/contribute.texi, doc/frontends.texi,
777         doc/service.texi, doc/standards.texi, doc/trouble.texi,
778         doc/vms.texi: ... here.  New files.
779         * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
780
781 2001-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
782
783         * ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog,
784         cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c,
785         collect2.c, combine.c, config.in, configure, configure.in,
786         conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c,
787         genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c,
788         reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix
789         spelling errors.
790
791 Sun Nov 11 05:56:01 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
792
793         * config/rs6000/rs6000.c (rs6000_hash_constant, toc_hash_eq):
794         Adjust operand number in CONST_DOUBLE.
795
796         * expmed.c (extract_bit_field): No longer pass in alignment.
797         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
798         (store_bit_field, store_fixed_bit_field, store_split_bit_field):
799         Likewise.
800         * expr.c (store_constructor, store_constructor_field): Likewise.
801         (store_field, emit_group_load, emit_group_store): Likewise.
802         * expr.h (emit_group_load, emit_group_store): Delete ALIGN parm.
803         (store_bit_field, extract_bit_field): Likewise.
804         * calls.c, expr.c, function.c: Change calls to above functions.
805         * ifcvt.c, stmt.c: Likewise.
806
807         * alias.c (nonoverlapping_memrefs_p): Not overlapping if one base is
808         constant and one is on frame.
809         If know memref offset, adjust size from decl.
810
811 2001-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
812
813         * alpha/unicosmk.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Fix
814         format specifier warning.
815         * convex.h (ASM_OUTPUT_BYTE): Likewise.
816         * elfos.h (ALIGN_ASM_OP): Undef before defining.
817         * i386/att.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
818         warning.
819         * i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
820         * i386/gas.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
821         * i386-interix.h (gen_stdcall_suffix): Prototype.
822         * i386.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
823         * i386elf.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
824         ASM_OUTPUT_LONG_DOUBLE): Likewise.
825         * i386/interix.c (gen_stdcall_suffix): Const-ify.
826         * i386/next.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
827         ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Fix format
828         specifier warnings.
829         * i386/osfrose.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
830         * i386/ptx4-i.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
831         ASM_OUTPUT_LONG_DOUBLE): Likewise.
832         * i386/sco5.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
833         * i386/sequent.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
834         * i386/sun386.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
835         * i386/svr3dbx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
836         * m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE,
837         ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Likewise.
838         * m68k/altos3068.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
839         * m68k/amix.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
840         Likewise.
841         * m68k/atari.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
842         Likewise.
843         * m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Likewise.
844         * m68k/dpx2.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
845         ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, ASM_OUTPUT_FLOAT_OPERAND):
846         Likewise.
847         * m68k/hp320.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE):
848         Likewise.
849         * m68k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
850         Likewise.
851         * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Delete unused variable.
852         * m68k/mot3300.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
853         * m68k/news.h (PRINT_OPERAND): Likewise.
854         * m68k/next.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
855         ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
856         * m68k/next21.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
857         * m68k/plexus.h (ASM_SPEC): Insert space between macro name and
858         definition.
859         * m68k/sgs.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
860         ASM_OUTPUT_FLOAT, ASM_OUTPUT_ASCII, ASM_OUTPUT_FLOAT_OPERAND,
861         ASM_OUTPUT_DOUBLE_OPERAND): Fix format specifier warnings.
862         * m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
863         * m68k/tower-as.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_DOUBLE,
864         ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE,
865         PRINT_OPERAND): Likewise.
866         * m88k/m88k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
867         Likewise.
868         * mips/elf.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
869         * mips/elf64.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
870         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
871         * mips/linux.h (ASM_DECLARE_OBJECT_NAME): Likewise.
872         * mips.c (mips_output_external_libcall): Mark parameter with
873         ATTRIBUTE_UNUSED.
874         (mips_asm_file_start): Move variable into the scope where it's
875         used.
876         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
877         * mips/netbsd.h (ASM_DECLARE_OBJECT_NAME): Likewise.
878         * mips/sni-gas.h (PUT_SDB_SIZE): Likewise.
879         * ns32k/encore.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
880         * ns32k.c (print_operand): Likewise.
881         * pa.c (print_operand, output_div_insn): Likewise.
882         * pa.h (ASM_OUTPUT_MI_THUNK, ASM_GENERATE_INTERNAL_LABEL,
883         ASM_OUTPUT_BYTE, PRINT_OPERAND_ADDRESS): Likewise.
884         * pa/pa64-hpux.h (UNIQUE_SECTION): Const-ify.
885         * sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
886         specifier warnings.
887         * sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
888         * sparc/pbd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
889         (ASM_OUTPUT_SOURCE_LINE): Don't list macro arguments in undef.
890         * sparc/vxsim.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
891         specifier warnings.
892         * svr3.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
893
894         * sdbout.c (sdbout_end_epilogue): Mark parameter with
895         ATTRIBUTE_UNUSED.
896         * varasm.c (assemble_global): Likewise.
897
898 2001-11-11  H.J. Lu <hjl@gnu.org>
899
900         * config.gcc: Add "elfos.h svr4.h" to $tm_file for Linux/mips.
901
902 Sun Nov 11 01:26:00 CET 2001  Jan Hubicka  <jh@suse.cz>
903
904         * final.c (*_MAX_SKIP): Use *_max_skip variables.
905         * flags.h (align_loops_max_skip, align_jumps_max_skip,
906         align_labels_max_skip): New global variables.
907         * toplev.c (align_loops_max_skip, align_jumps_max_skip,
908         align_labels_max_skip): New global variables.
909         (toplev_main): Set new variables.
910         * i386.c (override_options): Set max_skip values.
911
912 2001-11-10  Geoffrey Keating  <geoffk@redhat.com>
913
914         * doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
915         * final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF.
916         * config/stormy16/stormy16.c (xstormy16_print_operand): For '%C',
917         don't print an @fptr for labels either.
918         (xstormy16_output_addr_vec): Don't print @fptr here.
919         * config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro.
920
921 Sat Nov 10 08:50:50 2001  Jeffrey A Law  (law@cygnus.com)
922
923         * ssa-ccp.c (examine_flow_edges): Use old-style definition, not
924         an ANSI/ISO definitino.
925         (ssa_const_prop): Likewise.
926
927 2001-11-10  Aldy Hernandez  <aldyh@redhat.com>
928
929         * config/rs6000/rs6000.c (rs6000_reg_names): Remove leading "v" or
930         altivec registers.
931
932 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
933
934         * cppexp.c (parse_number): Use ISXDIGIT/hex_value.
935         * cpplex.c (hex_digit_value): Use hex_p/hex_value.
936         * cppmain.c (general_init): Call hex_init.
937         * tradcif.y (parse_number): Use TOLOWER/ISXDIGIT/hex_value/hex_p.
938
939         * config.gcc (i[34567]86-dg-dgux*): Don't set `out_file'.
940
941         * i386/dgux.h (ASM_FILE_START): Set to the meaningful portions
942         of dgux.c:output_file_start().
943
944         * i386/dgux.c: Delete file.
945
946 2001-11-09  Richard Henderson  <rth@redhat.com>
947
948         * config/alpha/alpha.c (decl_in_text_section): New.
949         (current_file_function_operand): Use it.
950         (alpha_encode_section_info, alpha_end_function): Likewise.
951
952 2001-11-07  David O'Brien  <obrien@FreeBSD.org>
953
954         * config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers.
955         * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove,
956         they are OS specific.  Use CPP_CPU_SPEC rather than CPP_PREDEFINES,
957         so OS specific files and use CPP_PREDEFINES for their needs.
958         * config/i64/elf.h (TARGET_VERSION): Add.  Also, move inclusion of
959         target headers to tm_file.
960         * config/ia64/aix.h (TARGET_VERSION): Likewise.
961         * config/ia64/hpux.h (TARGET_VERSION): Likewise.
962         * config/ia64/linux.h (TARGET_VERSION): Likewise.
963         (FUNCTION_PROFILER): Remove.
964         * config/ia64/ia64.h (FUNCTION_PROFILER): Update defintion using the
965         version in config/ia64/linux.h.
966         * config/ia64/freebsd.h: New file.
967         * config/freebsd.h: Tidy up.
968         (_USING_CONFIG_FREEBSD): Define.
969         (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__.
970         (FBSD_CPP_SPEC): Define generic FreeBSD spec.
971         (FBSD_STARTFILE_SPEC): Likewise.
972         (FBSD_ENDFILE_SPEC): Likewise.
973         (FBSD_LIB_SPEC): Likewise.
974         (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed.
975         (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers
976         set an ELF-improper one.
977
978 2001-11-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
979
980         * pa.c (emit_move_sequence): Use cint_ok_for_move to check whether a
981         constant can be loaded in a single instruction to a register.  When
982         loading immediate constants, use PLUS instead of HIGH/LO_SUM.  Use
983         depdi for insertion of most significant 32-bits on 64-bit hosts.
984         * pa.h (LEGITIMATE_CONSTANT_P): Accept constants that can be built
985         with ldil/ldo/depdi instruction sequence on 64-bit hosts.
986         * pa.md: New addmove pattern for adding constant_int to HImode
987         register and moving result to HImode register.  Remove HImode HIGH
988         and LO_SUM patterns.
989
990 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
991
992         * Makefile.in: Update.
993         * c-decl.c (print_lang_decl, print_lang_type): Remove.
994         (print_lang_identifier): Rename c_print_identifier.
995         * c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
996         (print_lang_statistics, lang_print_xnode): Remove.
997         * c-parse.in (set_yydebug): Rename c_set_yydebug.
998         * c-tree.h (c_set_yydebug, c_print_identifier): New.
999         * langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New.
1000         LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
1001         LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
1002         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
1003         (LANG_HOOKS_INITIALIZER): Update.
1004         * langhooks.h (struct lang_hooks): New members.
1005         (lang_print_tree_hook): New.
1006         * langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New.
1007         * print-tree.c: Include langhooks.h.
1008         (print_node): Update.
1009         * toplev.c (decode_d_option): Update.
1010         * tree.c: Include langhooks.h.
1011         (dump_tree_statistics): Update.
1012         * tree.h (print_lang_statistics, print_lang_decl, print_lang_type,
1013         print_lang_identifier, set_yydebug, lang_print_xnode): Remove.
1014 objc:
1015         * objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER,
1016         LANG_HOOKS_SET_YYDEBUG): Override.
1017         (lang_print_xnode, print_lang_statistics): Remove.
1018
1019 2001-11-09  Richard Henderson  <rth@redhat.com>
1020
1021         * dwarf2asm.c (dw2_force_const_mem): Invoke STRIP_NAME_ENCODING
1022         on the symbol string.
1023
1024 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1025
1026         * pa/elf.h (ASM_DECLARE_FUNCTION_NAME,
1027         ASM_OUTPUT_EXTERNAL_LIBCALL): Undef before defining.
1028         * config.gcc (hppa1.1-*-rtems*): Remove duplicate clause.
1029
1030         * clipper.h (ASM_OUTPUT_REG_POP): Fix typo.
1031
1032         * tlink.c (recompile_files): Copy strings passed to `putenv'.
1033
1034 2001-11-09  Geoffrey Keating  <geoffk@redhat.com>
1035
1036         * tree.h (TYPE_VOLATILE): Trap use not on TYPEs.
1037         (TYPE_READONLY): Likewise.
1038
1039         * flow.c (insn_dead_p): Allow for AUTO_INC notes all the time.
1040
1041         * config/stormy16/stormy16.h (ASM_SPEC): Revert last change,
1042         don't pass --gdwarf2 to the assembler if the compiler will also
1043         provide debug info.
1044
1045         * config/stormy16/stormy16.c (xstormy16_expand_casesi):
1046         Don't change INDEX.
1047
1048 Fri Nov  9 17:51:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1049
1050         * alias.c (nonoverlapping_memrefs_p): New function.
1051         (true_dependence, canon_true_depenence, write_dependence_p): Call it.
1052
1053         * emit-rtl.c (set_mem_attributes): Get alignments for constants.
1054
1055 2001-11-09  Aldy Hernandez  <aldyh@redhat.com>
1056
1057         * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS.
1058         (CONDITIONAL_REGISTER_USAGE): Disable AltiVec registers unless
1059         generating altivec code.
1060         (FIXED_REGISTERS): VRSAVE is fixed.
1061         (CALL_USED_REGISTERS): VRSAVE is call used.
1062
1063 2001-11-09  Jason Eckhardt  <jle@rice.edu>
1064
1065         * config/mips/mips.c (mips_output_conditional_branch): Do not hard
1066         code the branch target as ".+16/.+12", but rather use labels.
1067
1068 Fri Nov  9 11:27:42 2001  Jeffrey A Law  (law@cygnus.com)
1069
1070         * config/pa/milli64.S: Use %r25 and %r0 instead of arg1 and r0
1071         to work around limitations of certain versions of GAS.
1072
1073         * pa.md (mulsi3): Remove PA64 hack to work around SUBREG issues.
1074         (muldi3): Update due to SUBREG_BYTE changes.
1075         (casesi): Similarly.
1076
1077 2001-11-09  Zack Weinberg  <zack@codesourcery.com>
1078
1079         * doc/invoke.texi: Remove comment referring to -xf77-version.
1080
1081 2001-11-09  Kazu Hirata  <kazu@hxi.com>
1082
1083         * config/convex/convex.c: Fix comment formatting.
1084         * config/convex/convex.h: Likewise.
1085
1086 2001-11-08  Zack Weinberg  <zack@codesourcery.com>
1087
1088         * Makefile.in (.po.pox): Look both in srcdir and builddir
1089         for $(PACKAGE).pot.
1090         (po/$(PACKAGE).pot): Don't move-if-change the new potfile over
1091         to the source directory.
1092
1093 2001-11-09 Ben Elliston  <bje@redhat.com>
1094            Michael Meissner  <meissner@redhat.com>
1095            Andrew MacLeod  <amacleod@redhat.com>
1096            Richard Henderson  <rth@redhat.com>
1097            Nick Clifton  <nickc@redhat.com>
1098            Catherine Moore  <clm@redhat.com>
1099
1100         * m32r.c: Add support for m32rx processor.
1101         * m32r.h: Ditto.
1102         * m32r.md: Ditto.
1103         * t-m32r: Ditto.
1104         * m32r-protos.h: Add prototypes for m32rx functions.
1105         * doc/invoke.texi: Document -m32rx option.
1106
1107 2001-11-09  Jakub Jelinek  <jakub@redhat.com>
1108
1109         * config/sparc/sparc.md (movdf): Avoid calling validize_mem during
1110         or after reload.
1111
1112 2001-11-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1113
1114         * doc/install.texi2html: Use $MAKEINFO --no-split.
1115
1116 2001-11-09  Andreas Schwab  <schwab@suse.de>
1117
1118         * Makefile.in ($(HOST_PREFIX_1)rtl.o,
1119         $(HOST_PREFIX_1)print-rtl.o, $(HOST_PREFIX_1)bitmap.o,
1120         $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o,
1121         $(HOST_PREFIX_1)strstr.o, $(HOST_PREFIX_1)errors.o,
1122         $(HOST_PREFIX_1)ggc-none.o): Update dependencies.
1123
1124 2001-11-09  H.J. Lu <hjl@gnu.org>
1125
1126         * config/mips/mips.c (mips_output_function_prologues): Cast
1127         `tsize' to long for output.
1128
1129 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1130
1131         * c-lang.c (LANG_HOOKS_NAME): New.
1132         (lang_hooks): Constify.
1133         (c_init_options): Update.
1134         (lang_identify): Remove.
1135         * c-parse.in (language_string): Remove.
1136         * dbxout.c: Include langhooks.h.
1137         (dbxout_symbol_location): Update.
1138         * dwarf2out.c: Include langhooks.h.
1139         (gen_compile_unit_die): Update.
1140         * dwarfout.c: Include langhooks.h.
1141         (prototyped_attribute, output_compile_unit_die): Update.
1142         * langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New.
1143         (LANG_HOOKS_INITIALIZER): Update.
1144         * langhooks.h (struct lang_hooks): New members.  Constify.
1145         * stringpool.c: Don't include toplev.h.
1146         (set_identifier_size): Remove.
1147         * toplev.c (toplev_main): Initialize identifier size.
1148         (print_version): Update.
1149         * tree.h (language_string, init_lex, lang_identify,
1150         set_identifier_size): Remove.
1151         * Makefile.in: Update dependencies.
1152         * config/darwin.c: Include langhooks.h.
1153         (func_name_maybe_scoped): Update.
1154         * config/darwin.h (ASM_END_FILE): Update.
1155         * config/nextstep.h (ASM_END_FILE): Update.
1156         * config/nextstep21.h (ASM_END_FILE): Update.
1157         * config/i386/sun386.h (ASM_END_FILE): Update.
1158         * config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h.
1159         (rs6000_output_function_epilogue): Update.
1160 objc:
1161         * objc-act.c (LANG_HOOKS_NAME): Override.
1162         (struct lang_hooks): Constify.
1163         (objc_init_options): Update.
1164         (lang_identify): Remove.
1165
1166 Fri Nov  9 00:25:18 EST 2001  John Wehle  (john@feith.com)
1167
1168         * fold-const.c (lshift_double): Honor PREC.
1169         (rshift_double): Likewise.
1170
1171 2001-11-08  Kazu Hirata  <kazu@hxi.com>
1172
1173         * config/1750a/1750a.c: Fix comment formatting.
1174         * config/1750a/1750a.h: Likewise.
1175
1176 2001-11-08  Phil Edwards  <pedwards@disaster.jaj.com>
1177
1178         * configure.in (--enable-languages): Be more permissive about
1179         syntax.  Check for empty lists better.  Warn about $LANGUAGES.
1180         * configure: Regenerated.
1181
1182 2001-11-08  Richard Henderson  <rth@redhat.com>
1183
1184         * dwarf2asm.c (dw2_force_const_mem): Fix typo.
1185
1186 2001-11-08  Geoffrey Keating  <geoffk@redhat.com>
1187
1188         * config.gcc: Rename stormy16 to xstormy16.
1189         * config/stormy16/stormy-abi: Likewise.
1190         * config/stormy16/stormy16-protos.h: Likewise.
1191         * config/stormy16/stormy16.c: Likewise.
1192         * config/stormy16/stormy16.h: Likewise.
1193         * config/stormy16/stormy16.md: Likewise.
1194
1195 2001-11-06  Geoffrey Keating  <geoffk@redhat.com>
1196
1197         * tree.h (TYPE_VOLATILE): Add enable-checking code.
1198         (TYPE_READONLY): Likewise.
1199
1200 Thu Nov  8 18:00:55 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1201
1202         * reload1.c (reload): Don't delete equiv insn if can throw.
1203
1204         * expr.c (emit_block_move): If X is readonly emit CLOBBER for it.
1205         (clear_storage): Likewise, for OBJECT.
1206
1207 Thu Nov  8 16:23:51 2001  Jeffrey A Law  (law@cygnus.com)
1208
1209         * pa.c (emit_move_sequence): Fix SUBREG expression to
1210         use proper byte offset when extending a constant from
1211         SImode to DImode.
1212
1213 2001-11-09  Jakub Jelinek  <jakub@redhat.com>
1214
1215         * cfgrtl.c (purge_dead_edges): Remove REG_EH_REGION note for insns
1216         which cannot throw.
1217
1218 Thu Nov  8 18:00:55 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1219
1220         * explow.c (convert_memory_address, case SUBREG): Only return
1221         inner object if SUBREG_PROMOTED_VAR_P or known to be pointer.
1222
1223 2001-11-08  Richard Henderson  <rth@redhat.com>
1224
1225         * Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include.
1226         (CROSS_SYSTEM_HEADER_DIR): Use build_tooldir not tooldir.
1227         (ORDINARY_FLAGS_TO_PASS, stmp-fixinc): Likewise.
1228
1229 2001-11-08  Aldy Hernandez  <aldyh@redhat.com>
1230
1231         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec.
1232
1233 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
1234
1235         * dwarf2out.c (debug_str_hash): New.
1236         (struct indirect_string_node): New.
1237         (struct dw_val_struct): Change type of val_str to it.
1238         (DEBUG_STR_SECTION_FLAGS): Define.
1239         (add_AT_string): Push string into hashtable, increment reference
1240         counter.
1241         (AT_string): Return string from ht_identifier.
1242         (AT_string_form): New.
1243         (free_AT): For dw_val_class_str, just decrement reference counter.
1244         (size_of_string): Remove.
1245         (size_of_die): Use AT_string_form to decide what size the string
1246         occupies in DIE.
1247         (size_of_pubnames): Use strlen instead of size_of_string.
1248         (value_format): Use AT_string_form for dw_val_class_str.
1249         (output_die): Output DW_FORM_strp strings using
1250         dw2_asm_output_offset.
1251         (indirect_string_alloc, output_indirect_string): New.
1252         (dwarf2out_finish): Emit .debug_str strings if there are any.
1253
1254 2001-11-08  Andreas Franck  <afranck@gmx.de>
1255
1256         * configure.in: Add AC_ARG_PROGRAM to support program name
1257         transformation with --program-prefix, --program-suffix and
1258         --program-transform-name.
1259         * configure: Regenerated.
1260         * Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME,
1261         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
1262         GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME,
1263         PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle
1264         program_transform_name the way suggested by autoconf.
1265         (GCC_TARGET_INSTALL_NAME): Define.
1266         (install-driver): Use the transformed target alias name.
1267
1268 2001-11-08  Richard Henderson  <rth@redhat.com>
1269
1270         * config/mips/mips.c (save_restore_insns): Remove GP from the
1271         restore registers mask early instead of special casing it inside
1272         the loop.
1273
1274 2001-11-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1275
1276         * cp/decl.c (shadow_warning): New function.
1277         (pushdecl): Improve -Wshadow warnings.  Don't give both a warning
1278         and an error when a block scope decl shadows a parameter.
1279
1280 2001-11-08  Richard Henderson  <rth@redhat.com>
1281
1282         * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST
1283         case as well.
1284
1285 2001-11-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1286
1287         * pa.md (negdf2, negsf2): Use multiplication rather than subtraction
1288         to implement floating negation on processors prior to PA 2.0.
1289
1290 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
1291
1292         * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New.
1293         (USE_LINKONCE_INDIRECT): Define.
1294         (dw2_output_indirect_constant_1): Try to output indirect constants
1295         into linkonce sections if possible.
1296         (dw2_force_const_mem): Likewise.  Register indirect_pool with GGC.
1297         (dw2_output_indirect_constants): Likewise.
1298
1299 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
1300
1301         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave.
1302
1303 2001-11-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1304
1305         * c-decl.c (pushdecl): Remove file and line.
1306         * c-typeck.c (pop_init_level): Remove size.
1307
1308 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
1309
1310         * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec
1311         for rs6000.
1312
1313         * config/rs6000/rs6000.h (MASK_ALTIVEC): New.
1314         (TARGET_ALTIVEC): New.
1315         (TARGET_SWITCHES): Add altivec.
1316         (FIRST_PSEUDO_REGISTER): Change to 109.
1317         (CALL_USED_REGISTERS): Same.
1318         (FIRST_ALTIVEC_REGNO): New.
1319         (LAST_ALTIVEC_REGNO): New.
1320         (ALTIVEC_REGNO_P): New.
1321         (UNITS_PER_ALTIVEC_WORD): New.
1322         (ALTIVEC_VECTOR_MODE): New.
1323         (FIXED_REGISTERS): Add altivec registers.
1324         (REG_ALLOC_ORDER): Same.
1325         (HARD_REGNO_NREGS): Adjust for altivec registers.
1326         (HARD_REGNO_MODE_OK): Same.
1327         (MODES_TIEABLE_P): Same.
1328         (REGISTER_MOVE_COST): Same.
1329         (REGNO_REG_CLASS): Same.
1330         (reg_class): Add ALTIVEC_REGS.
1331         (REG_CLASS_NAMES): Same.
1332         (REG_CLASS_CONTENTS): Same.
1333         (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS.
1334         (ALTIVEC_ARG_RETURN): New.
1335         (FUNCTION_VALUE): Handle VECTOR_TYPE.
1336         (LIBCALL_VALUE): Handle altivec vector modes.
1337         (VECTOR_MODE_SUPPORTED_P): New.
1338         (ALTIVEC_ARG_MIN_REG): New.
1339         (ALTIVEC_ARG_MAX_REG): New.
1340         (ALTIVEC_ARG_NUM_REG): New.
1341         (FUNCTION_VALUE_REGNO_P): Return true for altivec return register.
1342         (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers.
1343         (REGISTER_NAMES): Add altivec regs.
1344         (DEBUG_REGISTER_NAMES): Same.
1345         (ADDITIONAL_REGISTER_NAMES): Same.
1346         (rs6000_builtins): New.
1347         (MD_EXPAND_BUILTIN): New.
1348         (MD_INIT_BUILTINS): New.
1349         (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid
1350         for AltiVec instructions.
1351         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
1352         (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec
1353         registers.
1354         (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes.
1355         (TARGET_SWITCHES): Add no-altivec.
1356         (DATA_ALIGNMENT): Align vectors to 128 bits.
1357         (TARGET_OPTIONS): Add abi= option.
1358         Add rs6000_abi_string extern.
1359         (LOCAL_ALIGNMENT): New.
1360         (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec.
1361         (MASK_ALTIVEC_ABI): New.
1362         (TARGET_ALTIVEC_ABI): New.
1363         (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to
1364         call-saved.
1365         (STACK_BOUNDARY): Adjust for altivec.
1366         (BIGGEST_ALIGNMENT): Same.
1367         (rs6000_args): Add vregno.
1368         (USE_ALTIVEC_FOR_ARG_P): New.
1369         (FIXED_REGISTERS): Add vrsave register.
1370         (CALL_USED_REGISTERS): Same.
1371         (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info.
1372         (VRSAVE_REGNO): New.
1373         (reg_class): Add VRSAVE_REGS.
1374         (REG_CLASS_NAMES): Same.
1375         (REG_CLASS_CONTENTS): Same.
1376         (REGNO_REG_CLASS): Same.
1377
1378         * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec.
1379         (ABI_STACK_BOUNDARY): Same.
1380         (BIGGEST_ALIGNMENT): Same.
1381         (ADJUST_FIELD_ALIGN): Remove undef.  Define anew.
1382         (ROUND_TYPE_ALIGN): Same.
1383
1384         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1385         to 64.
1386
1387         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1388         to 64.
1389
1390         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
1391         to 64.
1392
1393         * config/rs6000/rs6000.c (rs6000_expand_builtin): New.
1394         (altivec_expand_builtin): New.
1395         (altivec_init_builtins): New.
1396         (TARGET_EXPAND_BUILTIN): New.
1397         (TARGET_INIT_BUILTINS): New.
1398         (rs6000_init_builtins): New.
1399         (struct builtin_description): New.
1400         (bdesc_2arg): New.
1401         (rs6000_reg_names): Add altivec registers.
1402         (alt_reg_names): Same.
1403         (secondary_reload_class): Altivec regs can hold altivec regs and
1404         memory.
1405         (rs6000_emit_move): Force constants into memory for AltiVec moves.
1406         (print_operand): Add 'y' case for printing altivec memory
1407         operands.
1408         (rs6000_legitimize_address): Legitimize vector addresses into
1409         [REG+REG] or [REG].
1410         (altivec_expand_binop_builtin): New.
1411         New string rs6000_current_abi.
1412         (rs6000_override_options): Call rs6000_parse_abi_options.
1413         (rs6000_parse_abi_options): New.
1414         (function_arg_boundary): Vector arguments must be 16
1415         byte aligned.
1416         (function_arg_advance): Handle vector arguments.
1417         (function_arg_partial_nregs): Same.
1418         (init_cumulative_args): Same.
1419         (function_arg): Same.
1420
1421         * config/rs6000/rs6000.md (altivec_lvx): New.
1422         (type): Add altivec attribute.
1423         (movv4si): New.
1424         (*movv4si_internal): New.
1425         (movv16qi): New.
1426         (*movv16qi_internal): New.
1427         (movv8hi): New.
1428         (*movv8hi_internal1): New.
1429         (movv4sf): New.
1430         (*movv4sf_internal1): New.
1431         (altivec_stvx): New.
1432         (vaddubm): New.
1433         (vadduhm): New.
1434         (vadduwm): New.
1435         (vaddfp): New.
1436         (vaddcuw): New.
1437         (vaddubs): New.
1438         (vaddsbs): New.
1439         (vadduhs): New.
1440         (vaddshs): New.
1441         (vadduws): New.
1442         (vaddsws): New.
1443         (vand): New.
1444         (vandc): New.
1445         (vavgub): New.
1446         (vavgsb): New.
1447         (vavguh): New.
1448         (vavgsh): New.
1449         (vavguw): New.
1450         (vavgsw): New.
1451         (vcmpbfp): New.
1452         (vcmpequb): New.
1453         (vcmpequh): New.
1454         (vcmpequw): New.
1455         (vcmpeqfp): New.
1456         (vcmpgefp): New.
1457         (vcmpgtub): New.
1458         (vcmpgtsb): New.
1459         (vcmpgtuh): New.
1460         (vcmpgtsh): New.
1461         (vcmpgtuw): New.
1462         (vcmpgtsw): New.
1463         (vcmpgtfp): New.
1464         (vcmpgefp): New.
1465         (vcmpgtub): New.
1466         (vcmpgtsb): New.
1467         (vcmpgtuh): New.
1468         (vcmpgtsh): New.
1469         (vcmpgtuw): New.
1470         (vcmpgtsw): New.
1471         (vcmpgtfp): New.
1472         (vmaxub): New.
1473         (vmaxsb): New.
1474         (vmaxuh): New.
1475         (vmaxsh): New.
1476         (vmaxuw): New.
1477         (vmaxsw): New.
1478         (vmaxfp): New.
1479         (vmrghb): New.
1480         (vmrghh): New.
1481         (vmrghw): New.
1482         (vmrglb): New.
1483         (vmrglh): New.
1484         (vmrglw): New.
1485         (vminub): New.
1486         (vminsb): New.
1487         (vminuh): New.
1488         (vminsh): New.
1489         (vminuw): New.
1490         (vminsw): New.
1491         (vminfp): New.
1492         (vmuleub): New.
1493         (vmulesb): New.
1494         (vmuleuh): New.
1495         (vmulesh): New.
1496         (vmuloub): New.
1497         (vmulosb): New.
1498         (vmulouh): New.
1499         (vmulosh): New.
1500         (vnor): New.
1501         (vor): New.
1502         (vpkuhum): New.
1503         (vpkuwum): New.
1504         (vpkpx): New.
1505         (vpkuhss): New.
1506         (vpkshss): New.
1507         (vpkuwss): New.
1508         (vpkswss): New.
1509         (vpkuhus): New.
1510         (vpkshus): New.
1511         (vpkuwus): New.
1512         (vpkswus): New.
1513         (vrlb): New.
1514         (vrlh): New.
1515         (vrlw): New.
1516         (vslb): New.
1517         (vslh): New.
1518         (vslw): New.
1519         (vsl): New.
1520         (vslo): New.
1521         (vsrb): New.
1522         (vrsh): New.
1523         (vrsw): New.
1524         (vsrab): New.
1525         (vsrah): New.
1526         (vsraw): New.
1527         (vsr): New.
1528         (vsro): New.
1529         (vsububm): New.
1530         (vsubuhm): New.
1531         (vsubuwm): New.
1532         (vsubfp): New.
1533         (vsubcuw): New.
1534         (vsububs): New.
1535         (vsubsbs): New.
1536         (vsubuhs): New.
1537         (vsubshs): New.
1538         (vsubuws): New.
1539         (vsubsws): New.
1540         (vsum4ubs): New.
1541         (vsum4sbs): New.
1542         (vsum4shs): New.
1543         (vsum2sws): New.
1544         (vsumsws): New.
1545         (vxor): New.
1546
1547 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
1548
1549         * Makefile.in (df.o): Add fibheap.h to dependencies.
1550
1551         * df.h: Add prototypes for transfer functions, iterative_dataflow
1552         functions.
1553         (enum df_flow_dir): New enum.
1554         (enum df_confluence_op): New enum.
1555         (struct df): Add inverse_rts_map.
1556
1557         * df.c: Add sbitmap.h to the list of includes.
1558         (df_rd_global_compute): Removed.
1559         (df_ru_global_compute): Removed.
1560         (df_lr_global_compute): Removed.
1561         (df_rd_transfer_function): New function.
1562         (df_ru_transfer_function): New function.
1563         (df_lr_transfer_function): New function.
1564         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
1565         Use iterative_dataflow_bitmap instead of df_*_global_compute.
1566         (iterative_dataflow_sbitmap): New function.
1567         (iterative_dataflow_bitmap): New function.
1568
1569 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1570
1571         * doc/gcc.texi: Move terminology and spelling conventions to
1572         htdocs/codingconventions.html.
1573
1574 2001-11-07  Graham Stott  <grahams@redhat.com>
1575
1576         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
1577
1578 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
1579
1580         * expmed.c (expand_mult): Force operand to register before computing
1581         cost.
1582         * i386.c (x86_decompose_lea): New global vairable.
1583         * i386.h (x86_decompose_lea): Declare.
1584         (TARGET_DECOMPOSE_LEA): New macro.
1585         (RTX_COST): Handle leas properly.
1586
1587 2001-11-06  Richard Henderson  <rth@redhat.com>
1588
1589         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
1590         defined for a CONSTRUCTOR; don't check it.
1591
1592 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
1593
1594         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
1595         test for absolute pathnames.
1596
1597 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
1598
1599         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
1600         instructions up to the target pc inclusive.
1601
1602 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
1603
1604         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
1605
1606 2001-11-06  Eric Christopher  <echristo@redhat.com>
1607
1608         * config/mips/mips.md(movdf_internal2): Add constraints for float
1609         to general register move.
1610         * config/mips/elf64.h: Add default ABI.
1611
1612 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1613
1614         * alias.c:: Include langhooks.h.
1615         * emit-rtl.c: Similarly.
1616         * toplev.c: Similarly.
1617         * tree-inline.c: Similarly.
1618         * langhooks-def.h: New, the old langhooks.h.  Give the default
1619         hooks a common prefix.
1620         * langhooks.h: Contents extracted from toplev.h.
1621         * toplev.h: Move langhook stuff to langhooks.h.
1622         * langhooks.c: Give default hooks a common prefix.
1623
1624         * c-lang.c: Include langhooks-def.h.
1625         * objc/objc-act.c: Similarly.
1626         * Makefile.in: Update.
1627         * objc/Make-lang.in: Update.
1628
1629 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1630
1631         * doc/install.texi: Document that configure options not listed in
1632         this file are unsupported.  Document --with-system-zlib.
1633
1634 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1635
1636         * rtl.h (mem_for_const_double): New declaration.
1637         * varasm.c (mem_for_const_double): New function.
1638         * config/convex/convex.md (movdf): Use it.
1639         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
1640         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
1641         * config/m68k/m68kv4.h: Likewise.
1642
1643         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
1644         of new GP reg classes.
1645
1646         * expr.c (store_field): When making temp object for unaligned
1647         component, set it to alias set 0.
1648
1649 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1650
1651         * c-common.c (c_expand_expr_stmt): Apply default conversions to
1652         non-lvalue arrays if C99.
1653         * c-typeck.c (default_conversion): Split out code handling
1654         array-to-pointer and function-to-pointer conversions into a
1655         separate default_function_array_conversion function.
1656         (default_function_array_conversion): New function.  Keep track of
1657         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
1658         arrays unchanged outside C99 mode instead of giving an error for
1659         them.
1660         (build_component_ref): Use pedantic_non_lvalue when handling
1661         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
1662         (convert_arguments): Use default_function_array_conversion.
1663         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
1664         non-lvalues are OK.
1665         (unary_complex_lvalue): Likewise.
1666         (internal_build_compound_expr): Use
1667         default_function_array_conversion.  Apply default conversions to
1668         function in compound expression.
1669         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
1670         Use default_function_array_conversion.
1671         * doc/extend.texi: Update documentation of subscripting non-lvalue
1672         arrays.
1673         Fixes PR c/461.
1674
1675 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
1676
1677         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
1678         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
1679         corresponding to the complete set of .po and .gmo files in
1680         the source directory's po subdir, modified by LINGUAS.  Don't
1681         look at ALL_LINGUAS.
1682         * configure.in: Don't set ALL_LINGUAS.
1683         * configure: Regenerate.
1684
1685         * Makefile.in (.po.gmo): Don't move into source directory.
1686         (.po.pox): Clarify comments.
1687         (install-po): Look for .gmo files in both srcdir and objdir;
1688         don't fail if a file is totally missing.
1689         (distclean): rmdir ada subdirectory too.
1690
1691 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
1692
1693         * config/rs6000/rs6000.c (rs6000_select_section): Handle
1694         CONSTRUCTORs _correctly_.
1695
1696 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1697
1698         * c-decl.c (delete_block): Remove.
1699         * c-tree.h (delete_block): Remove.
1700
1701 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1702
1703         * cppexp.c (lex, parse_defined): Update warning about defined.
1704
1705 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
1706
1707         * config/rs6000/rs6000.c (rs6000_select_section): Handle
1708         CONSTRUCTORs too.
1709
1710 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
1711
1712         * config/arm/arm.c (arm_return_in_memory): Cope with
1713         int_size_in_bytes returning -1.
1714
1715         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
1716         DECL being NULL.
1717
1718 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
1719
1720         * Makefile.in (bb-reoder.o): Add dependency on cfglayout.h;
1721         remove unneeded dependencies;
1722         (cfglayout.o): New.
1723         * cfglayout.c, cfglayout.h: New files; break out from ...
1724         * bb-reorder.c: ... here; Remove unneeded includes;
1725
1726 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
1727
1728         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
1729
1730 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
1731
1732         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
1733         mode as well.  Do not explicitly create intermediate regs.
1734
1735 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1736
1737         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
1738         (common_section): Delete unused variable.
1739         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
1740         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1741         * arm-protos.h (arm_poke_function_name, aof_add_import,
1742         aof_delete_import): Const-ify.
1743         * arm.c (legitimize_pic_address): Wrap variables in the macro
1744         controlling their usage.
1745         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
1746         (arm_poke_function_name, pic_chain, import, aof_add_import,
1747         aof_delete_import): Const-ify.
1748         * i386.c (ix86_osf_output_function_prologue): Const-ify.
1749         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
1750         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
1751         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
1752         * i860/sysv3.h: Add missing comment closure.
1753         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
1754         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
1755         to symbolic_operand.
1756
1757         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
1758         (i960-*-*): Set tmake_file.
1759         (sparc86x-*-elf*): Fix typo in header name.
1760
1761         * sched-rgn.c (schedule_insns): Delete unused variable.
1762
1763 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1764
1765         PR c/2820
1766         * c-typeck.c (lookup_field): Rework to return a chain down to
1767         the looked-up field.
1768         (build_component_ref): Use the new lookup_field to handle
1769         nested anonymous entities correctly.
1770
1771 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1772
1773         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
1774         Change parameters to gen_rtx_CONST_DOUBLE.
1775         (GEN_INT64, sparc_emit_set_const64): Likewise.
1776         * config/sparc/sparc.md (movdf split): Likewise.
1777
1778 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
1779
1780         * unroll.c (calculate_giv_inc): Use find_last_value rather
1781         than just hoping the last instruction is the right SET.
1782         [Fixes 990604-1.c on stormy16.]
1783
1784         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
1785         library at all if -T is used.
1786
1787         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
1788         some uses of uninitialized variables in error cases.
1789
1790         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
1791         look at 'temp' if we won't be using it.
1792
1793         * config/stormy16/stormy16.h (CONST_COSTS): Define.
1794         (RTX_COSTS): Define.
1795         (ADDRESS_COST): Define.
1796         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
1797
1798         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
1799
1800         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
1801         stormy16_asm_output_mi_thunk.
1802         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
1803         function.
1804         * config/stormy16/stormy16-protos.h
1805         (stormy16_asm_output_mi_thunk): New prototype.
1806
1807 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1808
1809         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
1810         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
1811         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
1812         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
1813         sched-int.h, toplev.c, config/alpha/alpha.c,
1814         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
1815         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
1816         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
1817         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
1818         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
1819         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
1820         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
1821
1822 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1823
1824         * Makefile.in (dbxout.o): Depend on function.h.
1825         * collect2.c (is_in_list): Hide unused function.
1826         * dbxout.c: Include function.h.
1827         (source_label_number, dbxout_source_line, dbxout_source_file,
1828         dbxout_function_end, dbxout_begin_function): Wrap/move inside
1829         macros controlling usage.
1830         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
1831         * output.h (exports_section): Prototype.
1832
1833         * convex.c (convex_output_function_prologue): Fix format specifier
1834         warning.
1835         (asm_declare_function_name): Fix signed/unsigned warning.
1836         (print_operand): Fix format specifier warning.
1837         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
1838         * dsp16xx-protos.h (uns_comparison_operator,
1839         num_1600_core_shifts): Prototype.
1840         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
1841         (frame_size, frame_pointer_offset): Delete.
1842         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
1843         Make static.  Fix format specifier warnings.
1844         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
1845         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
1846         * dsp16xx.md: Add default case in switches.
1847         * fr30.h (IN_RANGE): Delete.
1848         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1849         * mcore-protos.h (mcore_output_cmov): Const-ify.
1850         * mcore.c (mcore_output_cmov): Likewise.
1851         * mcore.h (switch_to_section): Make static and prototype.
1852         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
1853         unsigned>=0 warnings.
1854         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
1855         * rs6000-protos.h (read_only_data_section,
1856         read_only_private_data_section): Prototype.
1857         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
1858         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
1859         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
1860
1861 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1862
1863         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
1864         ATTRIBUTE_UNUSED.
1865         * final.c (final_scan_insn): Add brackets around body of if-stmt.
1866         * gcc.c (convert_filename): Add static prototype.  Const-ify.
1867         Wrap variable in macros controlling its use.
1868         * output.h (sdata_section): Add prototype.
1869
1870         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
1871         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
1872         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
1873         (ASM_FILE_START): Const-ify.
1874         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
1875         specifier warning.
1876         * c4x.md: Don't use the 'U' integer suffix.
1877         * clipper.md (clipper_movstr): Delete declaration.
1878         * d30v-protos.h (d30v_move_2words): Const-ify.
1879         (debug_stack_info): Add prototype.
1880         * d30v.c: Include "integrate.h".
1881         (d30v_function_arg_boundary, d30v_function_arg,
1882         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
1883         signed/unsigned warnings.
1884         (d30v_print_operand_memory_reference, d30v_move_2words):
1885         Const-ify.
1886         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
1887         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
1888         * fr30.md: Const-ify.
1889         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
1890         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
1891         (mvs_get_label_page): Hide unused static function.
1892         * i860.c (current_function_original_name): Const-ify.
1893         * i860/sysv3.h (current_function_original_name): Likewise.
1894         * i860/sysv4.h (current_function_original_name): Likewise.
1895         * i960.md: Add default case in switches.  Remove unused variable.
1896         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
1897         * m32r.md: Const-ify.
1898         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
1899         * m68hc11.c: Include "reload.h".
1900         (static_chain_reg, print_options, m68hc11_asm_file_start):
1901         Const-ify.
1902         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
1903         around & in comparison.
1904         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
1905         * mn10200.c (shift_mode): Remove trailing comma.
1906         * mn10300-protos.h (output_tst): Const-ify.
1907         * mn10300.c (output_tst): Likewise.
1908         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
1909         warnings.
1910         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
1911         * pa.c (output_ascii): Likewise.
1912         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
1913         * pdp11.md (expand_unop): Delete declarations.
1914         * pj-protos.h (pj_output_addsi3): Const-ify.
1915         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
1916         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
1917         unique_src_operand): Add prototypes.
1918         (pj_output_store_into_lval): Make definition static.
1919         (pj_function_incoming_arg): Don't use unary plus.
1920         (pj_output_addsi3): Const-ify.
1921         * romp.md (get_symref): Delete declarations.
1922         * v850-c.c (mark_current_function_as_interrupt): Don't return
1923         value from void function.
1924         * v850.c: Include "integrate.h".
1925         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
1926         * vax-protos.h (const_section): Add prototype.
1927
1928 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
1929
1930         * machmode.def: Add documentation for the seventh argument in
1931         vector modes.
1932
1933 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
1934
1935         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
1936         consistently.
1937         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
1938         <-melf>: Don't have markup for ELF acronym.
1939
1940 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
1941
1942         * config.gcc (mmix-*-*): New target.
1943         * doc/invoke.texi: Document MMIX options.
1944         * doc/contrib.texi: Add note about MMIX port to my entry.
1945         * config/mmix/t-mmix: New file.
1946         * config/mmix/mmix.h: New file.
1947         * config/mmix/mmix-protos.h: New file.
1948         * config/mmix/mmix.c: New file.
1949         * config/mmix/mmix.md: New file.
1950         * config/mmix/crti.asm: New file.
1951         * config/mmix/crtn.asm: New file.
1952
1953 2001-11-03  Kazu Hirata  <kazu@hxi.com>
1954
1955         * config/sparc/linux-aout.h: Fix comment formatting.
1956         * config/sparc/linux.h: Likewise.
1957         * config/sparc/linux64.h: Likewise.
1958         * config/sparc/lynx.h: Likewise.
1959         * config/sparc/pbd.h: Likewise.
1960         * config/sparc/sol2-sld-64.h: Likewise.
1961         * config/sparc/sol2.h: Likewise.
1962         * config/sparc/sparc.c: Likewise.
1963         * config/sparc/sparc.h: Likewise.
1964         * config/sparc/sparc.md: Likewise.
1965         * config/sparc/sunos4.h: Likewise.
1966         * config/sparc/vxsim.h: Likewise.
1967         * config/sparc/vxsparc.h: Likewise.
1968         * config/sparc/vxsparc64.h: Likewise.
1969
1970 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1971
1972         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
1973         reference to CONST_DOUBLE_MEM in comment.
1974         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
1975         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
1976         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
1977         * function.c (pop_function_context_from): Don't call
1978         restore_varasm_status.
1979         * function.h (restore_varasm_status): Delete declaration.
1980         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
1981         * rtl.c: Likewise.
1982         * rtl.def (CONST_DOUBLE): Update comment.
1983         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
1984         (CONST_DOUBLE_CHAIN): Likewise.
1985         (CONST_DOUBLE_MEM): Delete.
1986         (gen_rtx_CONST_DOUBLE): Update parameters.
1987         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
1988         Remove reference to CONST_DOUBLE_MEM.
1989         (const_alias_set): New variable.
1990         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
1991         (immed_real_const_1): Adjust tests for 0, 1, and 2.
1992         Don't set CONST_DOUBLE_MEM.
1993         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
1994         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
1995         Put constant in const_alias_set.
1996         (struct pool_constant): ALIGN now unsigned.
1997         OFFSET now HOST_WIDE_INT.
1998         Delete LABEL.
1999         (restore_varasm_status): Deleted.
2000         (mark_pool_constant): Mark desc->rtl.
2001         (force_const_mem): Rework to store rtl in hash table,
2002         not CONST_DOUBLE_MEM.
2003         Put constant in const_alias_set.
2004         (find_pool_constant): Check desc->rtl.
2005         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
2006         (init_varasm_once): Initialize const_alias_set.
2007
2008         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
2009         force_const_mem.
2010
2011         * reload.c (combine_reloads): Don't combine an output reload if there
2012         are other reloads around for part of the output.
2013
2014         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
2015         constant expression.
2016         (set_mem_decl): New function.
2017         * expr.h (set_mem_decl): New declaration.
2018         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
2019         (output_asm_operand_names): Add tab.
2020         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
2021
2022         * builtins.c (get_memory_rtx): Properly set MEM alias set and
2023         attributes.
2024
2025 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2026
2027         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
2028         Use "invalid" instead of "illegal".  Use @r in comments in
2029         examples.
2030
2031 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2032
2033         * c-decl.c (pushdecl): Move block inside if conditional to remove
2034         possibility of a segfault.  Lookup block-level extern
2035         variables in enclosing scopes correctly.
2036
2037         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
2038
2039 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
2040
2041         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
2042         SUBREG so we avoid SUBREGing memory.
2043
2044         * expmed.c (store_bit_field): Same.
2045
2046 2001-11-02  DJ Delorie  <dj@redhat.com>
2047
2048         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
2049         using FP registers for DImode mem-mem moves is acceptable.
2050
2051 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
2052
2053         * builtins.c (apply_args_size): Handle vector arguments.
2054         (apply_result_size): Same.
2055
2056         * machmode.def: Set WIDER mode field for all vector entries.
2057
2058 2001-11-02  Graham Stott  <grahams@redhat.com>
2059
2060         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
2061
2062 2001-11-01  Eric Christopher  <echristo@redhat.com>
2063
2064         * config.gcc: Revert part of earlier patch.
2065         * config/mips/linux.h: Ditto.
2066         * df.c: Include tm_p.h to avoid warnings.
2067         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
2068         #if/#endif.
2069         * config/mips/mips.c: Define mips_abi regardless.
2070         (mips_output_function_prologues): Add long casts for .frame
2071         output.
2072         (override_options): Allow use of ABI_32.
2073
2074 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2075
2076         * config/m68hc11/m68hc11.c: Fix comment formatting.
2077         * config/m68hc11/m68hc11.h: Likewise.
2078         * config/m68hc11/m68hc11.md: Likewise.
2079
2080 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2081
2082         * c-typeck.c (default_conversion): Retain the original expression
2083         codes.
2084         * gcc.dg/Wparentheses.c: New tests.
2085
2086 2001-11-01  David S. Miller  <davem@redhat.com>
2087
2088         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
2089         64-bit Sparc description more in line with reality.
2090
2091 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2092
2093         * Makefile.in (GCOV_OBJS): Add version.o.
2094         * gcov.c: Include "version.h" and <getopt.h>.
2095         (gcov_version_string): Remove.
2096         (print_usage): Take a parameter to determine whether this is a
2097         call from --help or an error message.  Give fuller output that
2098         follows the GNU Coding Standards for --help.
2099         (print_version): New function.
2100         (options): New.
2101         (process_args): Use getopt_long.  Support long options.  Follow
2102         GNU Coding Standards for --help and --version.
2103         * doc/gcov.texi: Document long options.
2104         Addresses part of PR other/704.
2105
2106 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2107
2108         * pa.c (output_move_double): Fix typo in double load.
2109
2110 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2111
2112         * config/h8300/h8300.c (h8300_encode_label): Compute a string
2113         before passing it to ggc_alloc_string.
2114
2115 2001-11-01  Kazu Hirata  <kazu@hxi.com>
2116
2117         * config/m68k/3b1.h: Fix comment formatting.
2118         * config/m68k/3b1g.h: Likewise.
2119         * config/m68k/a-ux.h: Likewise.
2120         * config/m68k/amix.h: Likewise.
2121         * config/m68k/apollo68.h: Likewise.
2122         * config/m68k/atari.h: Likewise.
2123         * config/m68k/aux-exit.c: Likewise.
2124         * config/m68k/ccur-GAS.h: Likewise.
2125         * config/m68k/crds.h: Likewise.
2126         * config/m68k/dpx2.h: Likewise.
2127         * config/m68k/dpx2g.h: Likewise.
2128         * config/m68k/hp310.h: Likewise.
2129         * config/m68k/hp320.h: Likewise.
2130         * config/m68k/isi.h: Likewise.
2131         * config/m68k/linux.h: Likewise.
2132         * config/m68k/lynx.h: Likewise.
2133         * config/m68k/m68k-psos.h: Likewise.
2134         * config/m68k/m68k.c: Likewise.
2135         * config/m68k/m68k.h: Likewise.
2136         * config/m68k/m68k.md: Likewise.
2137         * config/m68k/m68kelf.h: Likewise.
2138         * config/m68k/m68kv4.h: Likewise.
2139         * config/m68k/mot3300.h: Likewise.
2140         * config/m68k/news.h: Likewise.
2141         * config/m68k/next.h: Likewise.
2142         * config/m68k/pbb.h: Likewise.
2143         * config/m68k/plexus.h: Likewise.
2144         * config/m68k/sgs.h: Likewise.
2145         * config/m68k/sun3.h: Likewise.
2146         * config/m68k/tower.h: Likewise.
2147         * config/m68k/vxm68k.h: Likewise.
2148
2149 2001-10-31  DJ Delorie  <dj@redhat.com>
2150
2151         * config/mips/mips.h (mips_cache_flush_func): Prototype.
2152         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
2153         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
2154         * config/mips/mips.c (mips_cache_flush_func): New.
2155         * doc/invoke.texi: Document the new options.
2156
2157 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
2158
2159         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
2160         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
2161
2162         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
2163
2164         * config/cris/cris.c: Include output.h after tree.h but before
2165         target.h.
2166
2167 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
2168
2169         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
2170         (INTL_SUBDIRS): Just intl.
2171         (.SUFFIXES): Add .gmo .po .pox.
2172         (native): Also depend on build-@POSUB@.
2173         (intl.all, intl.install): Depend on config.h and things it includes.
2174         (po-generated): New target; depend on c-parse.c and tradcif.c.
2175         (install-normal): Also depend on install-@POSUB@.
2176         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
2177         (build-, install-, build-po, update-po, install-po,
2178         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
2179
2180         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
2181         * configure.in: Don't munge XGETTEXT.  Don't generate
2182         po/Makefile.in.
2183         * configure: Regenerate.
2184
2185         * exgettext: Delete.
2186         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
2187         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2188
2189 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2190
2191         * config/h8300/h8300.md (two anonymous patterns): New.
2192
2193 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
2194
2195         * tree.h (tree_index): Add support for V16QI and V8HI.
2196         (V8HI_type_node): New.
2197         (V16QI_type_node): New.
2198
2199         * tree.c (build_common_tree_nodes_2): Same.
2200
2201         * c-common.c (type_for_mode): Same.
2202
2203 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2204
2205         * config/i386/att.h: Fix comment formatting.
2206         * config/i386/beos-elf.h: Likewise.
2207         * config/i386/bsd.h: Likewise.
2208         * config/i386/bsd386.h: Likewise.
2209         * config/i386/crtdll.h: Likewise.
2210         * config/i386/cygwin.asm: Likewise.
2211         * config/i386/cygwin.h: Likewise.
2212         * config/i386/djgpp.h: Likewise.
2213         * config/i386/freebsd-aout.h: Likewise.
2214         * config/i386/freebsd.h: Likewise.
2215         * config/i386/gas.h: Likewise.
2216         * config/i386/i386-interix.h: Likewise.
2217         * config/i386/i386-protos.h: Likewise.
2218         * config/i386/i386.c: Likewise.
2219         * config/i386/i386.h: Likewise.
2220         * config/i386/i386.md: Likewise.
2221         * config/i386/i386elf.h: Likewise.
2222         * config/i386/interix.c: Likewise.
2223         * config/i386/isc.h: Likewise.
2224         * config/i386/isccoff.h: Likewise.
2225         * config/i386/iscdbx.h: Likewise.
2226         * config/i386/linux.h: Likewise.
2227         * config/i386/lynx.h: Likewise.
2228         * config/i386/mingw32.h: Likewise.
2229         * config/i386/netbsd-elf.h: Likewise.
2230         * config/i386/next.h: Likewise.
2231         * config/i386/osf1elf.h: Likewise.
2232         * config/i386/osfrose.h: Likewise.
2233         * config/i386/sco5.h: Likewise.
2234         * config/i386/seq-gas.h: Likewise.
2235         * config/i386/seq-sysv3.h: Likewise.
2236         * config/i386/sequent.h: Likewise.
2237         * config/i386/sol2.h: Likewise.
2238         * config/i386/sun386.h: Likewise.
2239         * config/i386/uwin.asm: Likewise.
2240         * config/i386/uwin.h: Likewise.
2241         * config/i386/vxi386.h: Likewise.
2242         * config/i386/win32.h: Likewise.
2243         * config/i386/winnt.c: Likewise.
2244         * config/i386/xm-cygwin.h: Likewise.
2245         * config/i386/xm-mingw32.h: Likewise.
2246
2247 2001-10-31  Kazu Hirata  <kazu@hxi.com>
2248
2249         * builtins.def: Fix comment typos.
2250         * config/alpha.c: Likewise.
2251         * config/arm/arm.c: Likewise.
2252         * config/avr/avr.h: Likewise.
2253         * config/d30v/d30v.c: Likewise.
2254         * config/d30v/d30v.h: Likewise.
2255         * config/d30v/d30v.md: Likewise.
2256         * config/dsp16xx/dsp16xx.c: Likewise.
2257         * config/fr30/fr30.c: Likewise.
2258         * config/fr30/fr30.md: Likewise.
2259         * config/i386/i386.c: Likewise.
2260         * config/i860/i860.c: Likewise.
2261         * config/i960/i960.c: Likewise.
2262         * config/ia64/ia64.c: Likewise.
2263         * config/mips/mips.c: Likewise.
2264         * config/pa/pa.c: Likewise.
2265         * config/rs6000/rs6000.c: Likewise.
2266         * config/s390/s390.c: Likewise.
2267         * config/sparc/sparc.c: Likewise.
2268
2269 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2270
2271         * config/mips/elf.h: Fix comment formatting.
2272         * config/mips/elf64.h: Likewise.
2273         * config/mips/iris5.h: Likewise.
2274         * config/mips/iris5gas.h: Likewise.
2275         * config/mips/iris6.h: Likewise.
2276         * config/mips/isa3264.h: Likewise.
2277         * config/mips/linux.h: Likewise.
2278         * config/mips/mips.c: Likewise.
2279         * config/mips/mips.h: Likewise.
2280         * config/mips/mips.md: Likewise.
2281         * config/mips/mips16.S: Likewise.
2282         * config/mips/netbsd.h: Likewise.
2283         * config/mips/osfrose.h: Likewise.
2284         * config/mips/r3900.h: Likewise.
2285         * config/mips/sni-svr4.h: Likewise.
2286         * config/mips/svr4-t.h: Likewise.
2287         * config/mips/ultrix.h: Likewise.
2288
2289 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
2290
2291         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
2292         when we update head->current.
2293
2294 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
2295
2296         * tree.c (id_string_size): Remove.
2297         (dump_tree_statistics): Update.
2298         * toplev.c (compile_file): If dumping stats, dump tree stats too.
2299
2300 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
2301
2302         * sched-rgn.c (schedule_insns): Fix comment.
2303
2304 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
2305
2306         * configure.in: Correct previous change: don't assume that
2307         gas's version number _isn't_ the last thing on the line, or
2308         isn't the only number on the line, either.
2309         * configure: Regenerate.
2310
2311 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2312
2313         * cfgcleanup.c: Fix a comment typo.
2314
2315 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2316
2317         * alias.c: Fix comment formatting.
2318         * recog.c: Likewise.
2319         * config/cris/cris.c: Likewise.
2320         * config/cris/cris.h: Likewise.
2321         * config/i960/i960.c: Likewise.
2322         * config/i960/i960.h: Likewise.
2323
2324 2001-10-30  Kazu Hirata  <kazu@hxi.com>
2325
2326         * config/arm/arm.c: Fix a comment typo.
2327         * config/arm/arm.h: Likewise.
2328         * config/ia64/ia64.c: Likewise.
2329
2330 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
2331
2332         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
2333         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
2334         * rtl.h (set_unique_reg_note): Change return value.
2335         * gcse.c (try_replace_reg): Use set_unique_reg_note.
2336         * cse.c (cse_insn): Likewise.
2337         * expr.c (emit_move_insn): Likewise.
2338         * explow.c (force_reg): Likewise.
2339         * local-alloc (update_equiv_regs): Likewise.
2340         * loop.c (move_moveables, load_mems): Likewise.
2341         * reload (find_reloads): Likewise.
2342
2343 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
2344
2345         Localization fixes.
2346         * c-decl.c (parmlist_tags_warning, start_struct,
2347         check_for_loop_decls): Separate messages for struct, union and
2348         enum cases to allow for languages in which they have different
2349         genders.
2350         * c-format.c (scanf_flag_specs): Separate short and long name of
2351         the assignment suppression feature.
2352         (check_format_types): Localize "pointer" and "different types"
2353         strings.
2354         * c-lex.c (lex_number): Localize "an unsigned long int" and
2355         related strings.
2356         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
2357         warning message.
2358         * c-typeck.c (build_unary_up): Separate messages for increment and
2359         decrement cases to allow for languages in which they use different
2360         articles.  Localize the strings "increment" and "decrement" in one
2361         case.
2362
2363 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
2364
2365         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
2366         when no changes has been made.
2367
2368         * gcse.c (reg_set_bitmap): Turn into reg_set.
2369         (modify_mem_list_set, canon_modify_mem_list_set)
2370         (clear_modify_mem_tables, free_modify_mem_tables): New.
2371         (gcse_main); Use free_modify_mem_tables.
2372         (free_gcse_mem): Likewise; free the bitmaps.
2373         (alloc_gcse_main): Initialize the bitmaps.
2374         (canon_list_insert): Set canon_modify_mem_list_set.
2375         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
2376         (compute_hash_table): Use clear_modify_mem_tables.
2377         (reset_opr_set_tables): Likewise.
2378         (oprs_not_set_p): reg_set_bitmap is regset.
2379         (mark_set, mark_clobber): Likewise.
2380
2381         * df.h (DF_EQUIV_NOTES): New constant.
2382         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
2383         when asked for.
2384
2385         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
2386         (init_regions, schedule_insns): Conditionalize the checking
2387         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
2388
2389 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
2390
2391         * i386.md (movti_rex64 splitter): Fix condition.
2392
2393 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
2394
2395         * configure.in: Do not assume that gas's version number is the
2396         last thing on the first line of as --version output.
2397         * configure: Regenerate.
2398
2399         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
2400         MT_WARNING, MT_ERROR, MT_FATAL.
2401         (main): Call gcc_init_libintl.
2402         (v_message): Call gettext on msgid and "warning: "
2403         * tradcif.y: Include intl.h.
2404         (yyerror): Make parameter definition consistent with
2405         prototype.  Call gettext on msgid argument.
2406
2407 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2408
2409         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
2410         warnings.
2411
2412         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
2413
2414 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2415
2416         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
2417         before referencing it.
2418
2419 2001-10-26  DJ Delorie  <dj@redhat.com>
2420
2421         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
2422         override -G, and force -G0.
2423
2424 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2425
2426         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
2427         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
2428         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
2429         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
2430
2431         * loop.h (struct induction): Rename ext_dependant to
2432         ext_dependent.
2433         * loop.c: Change all uses.
2434         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
2435         All callers changed.
2436         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
2437
2438 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2439
2440         * c-parse.in (expr_no_commas, primary), c-typeck.c
2441         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
2442
2443 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
2444
2445         Undo assemble_name change in earlier patch.
2446
2447 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
2448
2449         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
2450         determining the type of the receiver, do not check that TREE_CODE
2451         of receiver is CALL_EXPR before calling receiver_is_class_object().
2452         (receiver_is_class_object): For the GNU runtime: recognize
2453         the case that the receiver is self in a class method context.
2454         Check that TREE_CODE of receiver is CALL_EXPR when checking that
2455         the receiver is a call to objc_get_class.
2456
2457 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2458
2459         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
2460
2461 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2462
2463         * Makefile.in (OBJS): Put all files in alphabetical order.
2464
2465         * dwarf2out.c (add_const_value_attribute): Fix error in last
2466         change.
2467
2468 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
2469
2470         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
2471         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
2472         fix warning.
2473         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
2474         (life_analysis): call purge_all_dead_edges after deleting noops.
2475         (delete_noop_move): Do not purge CFG.
2476         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
2477
2478 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
2479
2480         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
2481         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
2482         (ASM_GLOBALIZE_LABEL): Use assemble_name.
2483         (ASM_OUTPUT_COMMON): Likewise.
2484         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
2485         (rs6000_output_function_epilogue): Likewise.
2486         (output_mi_thunk): Fix typo.
2487         (rs6000_output_symbol_ref): Use assemble_name.
2488         (output_toc): Likewise.
2489         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
2490         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
2491         assemble_name calls STRIP_NAME_ENCODING.
2492         (ASM_OUTPUT_LABEL): Use assemble_name.
2493         (ASM_GLOBALIZE_LABEL): Likewise.
2494         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2495         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
2496         (ASM_OUTPUT_LOCAL): Likewise.
2497
2498 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2499
2500         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
2501         (expand_builtin_apply, expand_builtin_return): Likewise.
2502         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
2503
2504 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2505
2506         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
2507         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
2508         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
2509         configure, configure.in, except.c, except.h, flow.c, function.c,
2510         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
2511         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
2512         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
2513         unroll.c: Fix spelling errors.
2514
2515         * doc/extend.texi, doc/invoke.texi: Fix spelling.
2516
2517         * doc/gcc.texi: Document use of "dependent" and American spelling.
2518
2519 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
2520
2521         * expr.c (emit_group_load): Support CONCATs by storing them to memory
2522         and reloading.
2523
2524 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2525
2526         * expr.c (store_constructor_field): Only call adjust_address on MEM.
2527
2528 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
2529
2530         * genrecog.c (write_switch):  Output if before switch for
2531         DT_elt_zero_wide_safe.
2532
2533 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2534
2535         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
2536         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
2537         (FUNCTION_PROFILER): Const-ify.
2538         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
2539         (eliminate_constant_term, assemble_name, output_addr_const):
2540         Remove declarations.
2541         (ptr_half_pic_address_p, half_pic_hash): Prototype.
2542         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
2543         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
2544         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
2545         (half_pic_declare, half_pic_external): Const-ify.
2546         * toplev.c: Include "halfpic.h".
2547
2548 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2549
2550         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
2551         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
2552         config/i386/i386.c, config/i386/i386-interix.h,
2553         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
2554         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
2555         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
2556         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
2557         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
2558         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
2559         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
2560         spelling errors.
2561
2562         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
2563         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
2564         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
2565         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
2566         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
2567         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
2568         system.h, toplev.c: Fix spelling errors.
2569
2570 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2571
2572         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
2573
2574         * dwarf2out.c (reg_number): Abort if pseudo.
2575         (reg_loc_descriptor): Return 0 if pseudo.
2576         (is_based_loc): Return 0 if pseudo.
2577         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
2578         recursive calls.
2579         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
2580         (loc_descriptor): Return 0 if can't find location and handle 0
2581         return from recursive calls.
2582         (loc_descriptor_from_tree): Likewise.
2583         Fix handling of indirect.
2584         Also return 0 for PLACEHOLDER_EXPR.
2585         Clean up COMPONENT_REF cases.
2586         (add_AT_location_descriptor): Simplify, but handle 0 return from
2587         loc_descriptor.
2588         (add_const_value_attribute): Avoid shift count warning.
2589         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
2590         Set comp_unit_die as context if not in function.
2591
2592         * config/mips/mips-protos.h: Break up long lines.
2593         Remove needless #ifdef/#endif blocks.
2594         Don't declare functions declared in file made by genpreds or recog.h.
2595         * config/mips/mips.c (mips_output_function_prologue): TSIZE
2596         is now HOST_WIDE_INT; delete unneeded casts.
2597         * config/mips/mips.h: Don't use #elif.
2598
2599         * expr.c (stor_constructor_field): Always call adjust_address.
2600         Copy TARGET before changing its alias set.
2601         (store_field): Likewise, for TO_RTX.
2602         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
2603         replacement.
2604         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
2605         (find_placeholder): Return 0 if can't find object.
2606         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
2607         returns 0.
2608
2609 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
2610
2611         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
2612
2613 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
2614
2615         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
2616         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
2617         (merge_blocks): Properly udpate life after making edge nonfallthru.
2618         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
2619
2620 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2621
2622         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
2623
2624 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2625
2626         * c-typeck.c (convert_arguments): When comparing for enumeral
2627         type equality, use TYPE_MAIN_VARIANT.
2628         * gcc.dg/Wconversion.c: New tests.
2629
2630 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2631
2632         * s390/s390.c: Fix comment typos.
2633         * s390/s390.h: Likewise.
2634         * s390/s390.md: Likewise.
2635
2636 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2637
2638         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
2639         (walk_tree): Use it for tail calls where appropriate.
2640
2641 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2642
2643         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
2644         non-local label_refs.
2645
2646 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2647
2648         * config/h8300/h8300.md (4 anonymous patterns): New.
2649
2650 2001-10-26  Kazu Hirata  <kazu@hxi.com>
2651
2652         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
2653         algorithm through the shift_info structure.
2654         (emit_a_shift): Update the use of get_shift_alg.
2655
2656 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
2657
2658         * sched-rgn.c: Remove bitset typedef.
2659         Change bitset to sbitmap in prototypes / variable types.
2660         Remove bbset_size.
2661         Remove edgeset_bits.
2662         Remove edgeset_size.
2663         s/BITSET_ADD/SET_BIT/g
2664         s/BITSET_INVERT/sbitmap_ones/g
2665         s/BITSET_INTER/sbitmap_a_and_b/g
2666         s/BITSET_UNION/sbitmap_a_or_b/g
2667         s/BITSET_DIFFER/sbitmap_difference/g
2668         s/bitset_member/TEST_BIT/g
2669         (BITSET_*): Removed.
2670         (bitset_member): Removed.
2671         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
2672         EXECUTE_IF_SET_IN_SBITMAP.
2673         (split_edges): Rewrite, use sbitmap functions instead of bitset
2674         operations.
2675         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
2676
2677 2001-10-26  Andreas Schwab  <schwab@suse.de>
2678
2679         * reload1.c (emit_input_reload_insns): Fix parens in last
2680         (undocumented) change that was supposed to change only whitespace.
2681
2682 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2683
2684         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
2685
2686         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
2687         ASM_OPERANDS.
2688
2689 2001-10-26  Andreas Jaeger  <aj@suse.de>
2690
2691         * flow.c (clear_log_links): Remove unused variable.
2692         * cfgcleanup.c (cleanup_cfg): Likewise.
2693
2694 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
2695
2696         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
2697         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
2698
2699 2001-10-26  Richard Henderson  <rth@redhat.com>
2700
2701         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
2702         rename PV_REG to R27_REG.
2703         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
2704         (REG_CLASS_FROM_LETTER): Update.
2705         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
2706         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
2707         (udivsi3, modsi3, umodsi3): Likewise.
2708         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
2709
2710 2001-10-26  Richard Henderson  <rth@redhat.com>
2711
2712         * cfg.c (clear_aux_for_blocks): Split out of ...
2713         (free_aux_for_blocks): here.
2714         (clear_aux_for_edges): Split from ...
2715         (free_aux_for_edges): here.
2716         * basic-block.h: Declare them.
2717         * lcm.c (compute_antinout_edge): Use them.
2718         (compute_laterin, compute_available, compute_nearerout): Likewise.
2719         (optimize_mode_switching): Likewise.
2720
2721 2001-10-26  Richard Henderson  <rth@redhat.com>
2722
2723         * Makefile.in (unstage*): Remove as, ld, collect-ld before
2724         moving everything back to the main build directory.
2725
2726 2001-10-26  Christopher Faylor  <cgf@redhat.com>
2727
2728         * config/i386/cygwin.h: Search target specific include directory, if
2729         appropriate.
2730
2731 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2732
2733         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
2734         of macro guards. Fix #endif comment.
2735
2736         * output.h (default_exception_section, default_eh_frame_section):
2737         Move prototypes outside of macro guard.
2738
2739         * crtstuff.c: Fix #endif comment.
2740
2741 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
2742
2743         * doc/md.texi (movMM): Clarify semantics of storing into a
2744         non-paradoxical SUBREG.
2745
2746 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
2747
2748         * langhooks.c (lang_hook_default_clear_binding_stack): New.
2749         (lang_hook_default_get_alias_set): Move next to other alias
2750         hooks.
2751         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
2752         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
2753         (LANG_HOOKS_INITIALIZER): Add it.
2754         * toplev.h (struct lang_hooks): Add clear_binding_stack.
2755         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
2756         instead of a loop calling poplevel.
2757
2758 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
2759
2760         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
2761         occurrences of #elif with #if...#endif.
2762
2763 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2764
2765         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
2766
2767 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2768
2769         * alias.c (can_address_p): No longer static.
2770         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
2771         Return 0 if all parameters are default values.
2772         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
2773         (adjust_address_1): Try harder to compute a size.
2774         * expr.c (expand_assignment, store_constructor): If can't address,
2775         set MEM_KEEP_ALIAS_SET_P.
2776         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
2777         (store_field): Likewise.
2778         (store_constructor): Simplify call to store_constructor_field.
2779         * expr.h (can_address_p): New declaration.
2780         * gensupport.c (gen_rtx_CONST_INT): New function.
2781         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
2782         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
2783         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
2784
2785         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
2786
2787 2001-10-24  Christopher Faylor  <cgf@redhat.com>
2788
2789         * config/i386/cygwin.h: Use proper path for mingw crt files when
2790         -mno-cygwin.
2791
2792 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2793
2794         * dwarf2out.c (file_info_cmp): Always return consistent results.
2795
2796 2001-10-24  Roger Sayle <roger@eyesopen.com>
2797
2798         * stmt.c (expand_end_case): Index jumptables from zero for
2799         suitably small values of minval.
2800
2801 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
2802
2803         * stor-layout.c (place_union_field): If any field was aligned with
2804         attribute aligned, set record type's TYPE_USER_ALIGN.
2805         (place_field): Likewise.
2806         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
2807         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
2808
2809 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
2810
2811         * c-common.h (struct c_common_identifier): Remove rid_code field.
2812         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
2813
2814         * c-typeck.c (constructor_designated): New local flag.
2815         (struct constructor_stack): Add "designated" field to match.
2816         (start_init): Clear it.
2817         (really_start_incremental_init, push_init_level): Push and
2818         clear it.
2819         (pop_init_level): Pop it.
2820         (set_designator): Set it.
2821
2822         (pop_init_level): Suppress "missing initializer" warnings if
2823         constructor_designated is true.
2824         (process_init_element): Suppress warning about union
2825         initialization under traditional C, if constructor_designated
2826         is true.
2827
2828 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2829
2830         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
2831         change.
2832
2833 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
2834
2835         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
2836
2837 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
2838
2839         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
2840         the node was already a set to a constant.
2841
2842 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2843
2844         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
2845         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
2846
2847 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2848
2849         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
2850         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
2851         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
2852         * s390.c (s390_final_chunkify): Don't use string concatenation.
2853         (s390_function_prologue, s390_function_epilogue): Const-ify.
2854         * s390.h (FUNCTION_PROFILER): Remove unused variable.
2855
2856 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
2857
2858         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
2859         prototypes.
2860
2861 2001-10-23  Stan Shebs  <shebs@apple.com>
2862
2863         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
2864         -traditional-cpp in first-stage compilation.
2865
2866 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2867
2868         * gensupport.c (target_flags): Add.
2869
2870 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
2871
2872         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
2873         if needed.
2874         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
2875         * except.c (expand_builtin_frob_return_addr): Likewise.
2876         (expand_builtin_eh_return): Likewise.
2877         * stmt.c (expand_computed_goto): Likewise.
2878         * explow.c (memory_address): Likewise.
2879         (allocate_dynamic_stack_space): Clean up predicate testing.
2880         (probe_stack_range): Convert SIZE to Pmode.
2881         * calls.c (rtx_for_function_call): Only call convert_memory_address
2882         if needed.
2883         Pass function call operand as ptr_mode, not Pmode.
2884         * expr.c (expand_assignment): Clean up calls to convert_memory
2885         address by only doing so when needed and making offsets Pmode.
2886         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
2887         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
2888         is in Pmode, not ptr_mode.
2889
2890 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2891
2892         * darwin-protos.h (constructor_section, destructor_section,
2893         mod_init_section, mod_term_section): Prototype.
2894         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
2895         Const-ify.
2896         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
2897         Likewise.
2898         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
2899         objc_section_init declaration.
2900         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
2901         (objc_section_init, try_section_alias): Make static.
2902         (alias_section): Make static and hide unused function.
2903         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
2904
2905 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2906
2907         * alias.c (can_address_p): Compnonents are not addressable if
2908         the containing type has alias set 0.
2909         (get_alias_set): Rework to use STRIP_NOPS.
2910         Only call front-end routine on object, type, or object with
2911         NOPs stripped, not inner values.
2912         Use language hook to call front-end routine.
2913         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
2914         (expand_builtin_apply): Call set_mem_align on MEMs we make.
2915         Don't pass alignment to emit_block_move.
2916         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
2917         (expand_builtin_memset): Likewise, but for clear_storage.
2918         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
2919         and remove C++ specific parts.
2920         * c-common.h (c_common_get_alias_set): Add declaration.
2921         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
2922         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
2923         (save_fixed_argument_area): Call set_mem_align.
2924         Remove alignment in call to emit_block_move.
2925         (emit_library_call_value_1, store_one_arg): Likewise.
2926         (target_for_arg): Remove; disabled long ago.
2927         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
2928         once and similar cleanups.
2929         (offset_address): Use proper introductory comment.
2930         * expr.c (emit_block_move): Use alignment from that of MEM args, not
2931         from explicit operand; all callers changed.
2932         (clear_storage): Likewise.
2933         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
2934         (store_field): Remove kludge on alias set used for to_rtx.
2935         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
2936         (expand_expr_unaligned): Call set_mem_attributes instead of
2937         set_mem_alias_set.
2938         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
2939         * function.c (assign_stack_temp_for_type): Set MEM alignment.
2940         (expand_function_end): Track MEM attributes of trampolines.
2941         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
2942         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
2943         attributes from original.
2944         * langhooks.c (lang_hook_default_get_alias_set): New function.
2945         (hook_get_alias_set_0): New function.
2946         * langhooks.h (hook_get_alias_set_0): New declaration.
2947         (lang_hook_default_get_alias_set): Likewise.
2948         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
2949         * reload1.c (alter_reg): Use adjust_address_nv.
2950         * rtl.c (get_mode_alignment): Moved to here.
2951         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
2952         change default if unknown from 1 to BITS_PER_UNIT.
2953         * stor-layout.c (get_mode_alignment): Remove from here.
2954         * toplev.h (struct lang_hoks): Add get_alias_set field.
2955         * tree.h (lang_get_alias_set): Delete declaration.
2956         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
2957         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
2958         (ix86_va_arg): Likewise.
2959         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
2960         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
2961         * config/sparc/sparc.c (sparc_va_arg): Likewise.
2962         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
2963         (expand_block_move_mem): Remove dead code.
2964
2965 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2966
2967         * c-common.c (warn_div_by_zero): New.
2968         * c-common.h (warn_div_by_zero): New.
2969         * c-decl.c (c_decode_option): Take it on the command line.
2970         * c-typeck.c (build_binary_op): Warn about division by zero.
2971         * doc/invoke.texi: Document the new command line option, fix
2972         documentation of -Wmultichar.
2973         * testsuite/gcc.dg/divbyzero.c: New tests.
2974         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
2975
2976 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
2977
2978         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
2979
2980         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
2981         to avoid update_life_info call.
2982         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
2983         * cfgcleanup.c (bb_flags): New enum.
2984         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
2985         (notice_new_block, update_forwarder_flag): New functions.
2986         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
2987         (try_forward_edges): Likewise; update flags.
2988         (merge_blocks): Likewise.
2989         (outgoing_edges_match): Likewise.
2990         (try_crossjump_to_edge): Likewise.
2991         (try_optimize_cfg): Likewise; initialize and clear the flags;
2992         recompute life info if needed.
2993         (cleanup_cfg): No need to clear aux pointers.
2994
2995 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
2996
2997         * config/i386/i386.c (override_options): Default to minimum
2998         stack alignment when optimizing for code size.
2999         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
3000         change.
3001
3002         * config/i386/i386.c (override_options): Set upper limit of
3003         -mpreferred-stack-boundary to 12.
3004
3005 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
3006
3007         * recog.c (peephole2_optimize): Add default case to switch.
3008
3009 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
3010
3011         * doc/gcc.texi (Sending Patches): Remove.
3012
3013 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
3014
3015         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
3016         fields when comparing.
3017
3018 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3019
3020         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
3021         * arm.c (HOST_INT, HOST_UINT): Likewise.
3022
3023 2001-10-22  Stan Shebs  <shebs@apple.com>
3024
3025         * config/darwin-protos.h (darwin_exception_section): Declare.
3026         (darwin_eh_frame_section): Declare.
3027
3028 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
3029
3030         * i386.md (movti_rex64): Fix mode.
3031
3032 2001-10-22  Stan Shebs  <shebs@apple.com>
3033
3034         * target.h (struct gcc_target): Add asm_out.exception_section,
3035         asm_out.eh_frame_section.
3036         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
3037         (TARGET_ASM_EH_FRAME_SECTION): New.
3038         (TARGET_INITIALIZER): Update.
3039         * output.h (default_exception_section): Declare.
3040         (default_eh_frame_section): Declare.
3041         * dwarf2out.c: Include target.h.
3042         (output_call_frame_info): Call target hook for eh frames.
3043         (default_eh_frame_section): New function.
3044         * except.c: Include target.h.
3045         (output_function_exception_table): Call target hook for exception
3046         section.
3047         * varasm.c (default_exception_section): Rename from
3048         exception_section, remove EXCEPTION_SECTION macro.
3049
3050         * config/darwin.h (darwin_eh_frame_section): New function.
3051         (EXCEPTION_SECTION): Remove.
3052         (TARGET_ASM_EXCEPTION_SECTION): Define.
3053         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
3054         (nextstep_exception_section): New function.
3055         (nextstep_eh_frame_section): New function.
3056         (TARGET_ASM_EXCEPTION_SECTION): Define.
3057         (TARGET_ASM_EH_FRAME_SECTION): Define.
3058
3059         * config/pa/som.h (EXCEPTION_SECTION): Remove.
3060         (TARGET_ASM_EXCEPTION_SECTION): Define.
3061         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
3062         (EXCEPTION_SECTION): Remove.
3063         (TARGET_ASM_EXCEPTION_SECTION): Define.
3064         * config/stormy16/stormy16.h: Remove comments referencing
3065         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
3066
3067         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
3068         TARGET_ASM_EH_FRAME_SECTION.
3069
3070 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
3071
3072         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
3073         terms.
3074
3075         * c-format.c: Fix spelling typo in comment.
3076
3077         * sched-int.h: Fix typo in GCC preamble.
3078
3079 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3080
3081         PR debug/4252
3082         * doc/invoke.texi: Remove references to -fdump-translation-unit.
3083
3084 2001-10-22  Richard Henderson  <rth@redhat.com>
3085
3086         * config/i386/i386.c (ix86_expand_clear): New.
3087         * config/i386/i386-protos.h: Declare it.
3088         * config/i386/i386.md (setcc peep2s): Use it.
3089         (movsi_xor): Unexport.
3090
3091 2001-10-22  Richard Henderson  <rth@redhat.com>
3092
3093         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
3094         free_EXPR_LIST_list for LOG_LINKS.
3095
3096 2001-10-21  Robert Lipe  <robertlipe@usa.net>
3097
3098         * config/i386/i386.c (sco_asm_named_section): Delete.
3099         (sco_asm_out_constructor): Delete.
3100         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
3101         (ASM_OUTPUT_DOUBLE_INT): Likewise.
3102         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
3103         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
3104         (EXCEPTION_SECTION): Delete EH scn renaming hack.
3105
3106 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3107
3108         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
3109         and/or fold extra calls into fewer ones.
3110         * collect2.c (dump_file): Likewise.
3111         * cppexp.c (parse_number): Likewise.
3112         * cpplex.c (_cpp_lex_direct): Likewise.
3113         * final.c (output_asm_insn, asm_fprintf): Likewise.
3114         * fix-header.c (inf_scan_ident, main): Likewise.
3115         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
3116         Likewise.
3117         * fold-const.c (real_hex_to_f): Likewise.
3118         * gen-protos.c (parse_fn_proto): Likewise.
3119         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
3120         * genrecog.c (change_state, write_action): Likewise.
3121         * gensupport.c (shift_output_template): Likewise.
3122         * local-alloc.c (requires_inout): Likewise.
3123         * mips-tfile.c (IS_ASM_IDENT): Likewise.
3124         * protoize.c (is_id_char, main): Likewise.
3125         * real.c (asctoeg): Likewise.
3126         * recog.c (asm_operand_ok): Likewise.
3127         * reload.c (find_reloads): Likewise.
3128         * scan.c (scan_identget_token): Likewise.
3129         * sched-vis.c (print_value): Likewise.
3130         * stringpool.c (ggc_alloc_string): Likewise.
3131         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
3132         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
3133         * tradcpp.c (rescan): Likewise.
3134         * tree.c (clean_symbol_name): Likewise.
3135         * varasm.c (decode_reg_name): Likewise.
3136
3137         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
3138         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
3139         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
3140         * m88k.c (output_ascii): Likewise.
3141         * m88k.h (OVERRIDE_OPTIONS): Likewise.
3142         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
3143         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
3144         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
3145
3146 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3147
3148         * langhooks.c (lang_hook_default_do_nothing,
3149         lang_hook_default_decode_option): New defaults.
3150         * langhooks.h: Make hooks unconditional and non-NULL.
3151         * toplev.c (compile_file, toplev_main): Update.
3152         * toplev.h: Update comments.
3153         * objc/objc-act.c (lang_hooks): Update to new paradigm.
3154
3155 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3156
3157         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
3158
3159         * system.h (IN_RANGE): New macro.
3160
3161 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
3162
3163         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
3164         INTLDEPS variable, which does not include $LIBICONV.
3165         * Makefile.in: Use INTLDEPS in LIBDEPS.
3166         * configure: Regenerate.
3167
3168 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3169
3170         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
3171         * cpplex.c (lex_percent, lex_dot): Remove.
3172         (get_effective_char, skip_block_comment, skip_line_comment,
3173         parse_identifier_slow, parse_number, parse_string, save_comment,
3174         _cpp_lex_direct): Update to do lookback freely.
3175         (IF_NEXT_IS, BACKUP): New macros.
3176         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
3177         * cppmacro.c (paste_tokens): Update.
3178
3179 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
3180
3181         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
3182
3183 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
3184
3185         * reload1.c (reload): Check CONSTANT_P before calling
3186         LEGITIMATE_PIC_OPERAND_P.
3187         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
3188         workaround of 2001-10-13.
3189
3190 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
3191
3192         * i386.c (split_di): Handle splitting of DFmode.
3193
3194 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3195
3196         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
3197         (adjust_address_1, offset_address): Likewise.
3198
3199         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
3200         (output_asm_insn): Call it for each line output.
3201         Don't record an operand more than once.
3202
3203         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
3204         * main.c: Include config.h and system.h, but not ansidecl.h.
3205         * Makefile.in (main.o): Update accordingly.
3206
3207 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
3208
3209         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
3210
3211 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
3212
3213         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
3214         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
3215         Break out from ...
3216         (find_sub_basic_blocks): ... here;
3217         (find_many_sub_basic_blocks): New.
3218         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
3219
3220         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
3221
3222         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
3223
3224         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
3225
3226         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
3227         * flow.c (update_life_info): Measure time.
3228         * c-decl.c: Include timevar.h
3229         (c_expand_body): Measure time.
3230         * toplev.c (rest_of_compilation): Measure time of mode switching
3231         separately.
3232         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
3233
3234         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
3235         (lang_independent_options): Add asynchronous-unwind-tables
3236         (toplev_main): flag_asynchronous_unwind_tables implies
3237         flag_unwind_tables.
3238         * flags.h (flag_asynchronous_unwind_tables): Declare.
3239         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
3240         flag_asynchronous_unwind_tables.
3241         (output_call_frame_info): Likewise.
3242         * invoke.texi (-fasynchronous-unwind-tables): Document.
3243         * i386.c (optimization_options): Enable
3244         flag_asynchronous_unwind_tables.
3245
3246         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
3247         * i386.md (s* expanders): Destination is QImode.
3248
3249         * toplev.c (rest_of_compilation): Do not call clear_log_links.
3250         * rtl.h (clear_log_links): Kill.
3251         * flow.c (clear_log_links): Make static; accept blocks parameter;
3252         do no clear life info.
3253         (update_life_info): Call clear_log_links.
3254
3255         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
3256
3257 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3258
3259         * cpplex.c (handle_newline, skip_escaped_newlines,
3260         get_effective_char, skip_block_comment, skip_line_comment,
3261         parse_identifier_slow, parse_number, parse_string,
3262         _cpp_lex_direct): Update to do more stepping back.
3263         (trigraph_ok): Similarly.  Rename trigraph_p.
3264         (SAVE_STATE, RESTORE_STATE): Remove.
3265         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
3266
3267         * cpplib.c (destringize): Rename destringize_and_run, and
3268         call run_directive directly.
3269         (_cpp_do__Pragma): Simplify.
3270
3271 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3272
3273         * pe.c (arm_pe_unique_section): Const-ify.
3274         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
3275         (switch_to_section): Add static prototype.
3276
3277         * output.h (drectve_section): Prototype.
3278
3279 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3280
3281         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
3282         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
3283         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
3284         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
3285         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3286         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
3287         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
3288         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
3289         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
3290         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
3291         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
3292         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
3293         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
3294         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
3295         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
3296         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
3297         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
3298         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
3299         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
3300         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
3301         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
3302         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
3303         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
3304         cris-*-none, cris-*-linux*: Update ${tmfile} list.
3305         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
3306         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
3307         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
3308         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
3309         v850-*-*): Delete superflous ${cpu_type} setting.
3310         * config/linux.h: Delete svr4.h include.
3311         (SET_ASM_OP): Delete.
3312         * config/netware.h (INT_ASM_OP): Undef before define.
3313         * config/ptx4.h: Delete elfos.h include.
3314         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
3315         * config/svr4.h: Delete elfos.h include. Update commentary.
3316         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
3317         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
3318         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
3319         config/v850/v850.h: Delete svr4.h include.
3320         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
3321         config/m68k/m68kv4.h, config/m88k/sysv4.h,
3322         config/sparc/sysv4.h: Update includes.
3323         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
3324         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
3325         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
3326         config/m88k/dguxbcs.h: Delete includes.
3327         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
3328         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
3329         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
3330         it.
3331         * config/m88k/dgux.h: Delete include.
3332         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
3333         defining it.
3334         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
3335         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
3336         * config/sh/elf.h: Update include.
3337         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3338         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
3339
3340 2001-10-19  Catherine Moore  <clm@redhat.com>
3341
3342         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
3343         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
3344         base and count fields.
3345         (stormy16_expand_builtin_va_start):  last_reg_count changed to
3346         size_of_reg_args.  Use count + size in first comparison.
3347
3348 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3349
3350         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
3351         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
3352         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
3353         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
3354         Set alignment from type if INDIRECT_REF.
3355         (adjust_address_1, offset_address): Simplify alignment compuitation.
3356         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
3357         here; done by set_mem_attributes.
3358
3359 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3360
3361         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
3362         * arm-protos.h (rdata_section, zero_init_section, common_section):
3363         Prototype.
3364         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
3365         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
3366         traditional mode stringification.
3367         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
3368         in macros controling its use.
3369         * rtlanal.c: Include tm_p.h.
3370         * varasm.c (asm_output_aligned_bss): Mark parameter with
3371         ATTRIBUTE_UNUSED.
3372         (assemble_constant_align, assemble_start_function, assemble_align,
3373         assemble_variable, assemble_trampoline_template,
3374         output_constant_def_contents): Wrap potentially empty if-stmt body
3375         in brackets.
3376
3377 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3378
3379         * a29k-protos.h (literal_section): Prototype.
3380         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
3381         * a29k.md: Ensure function pointers are prototyped.
3382         * genattrtab.c (write_eligible_delay): Mark parameter with
3383         ATTRIBUTE_UNUSED.
3384
3385 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3386
3387         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
3388         * 1750a.c (print_operand): Fix format specifier warning.
3389         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
3390         * 1750a.md: Likewise.
3391         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
3392         * genemit.c (output_add_clobbers): Mark parameter with
3393         ATTRIBUTE_UNUSED.
3394         * genrecog.c (write_subroutine): Likewise.
3395         * integrate.c (expand_inline_function): Delete unused variable.
3396         * varasm.c (remove_from_pending_weak_list): Wrap with
3397         ASM_WEAKEN_LABEL.
3398
3399 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
3400
3401         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
3402         field is different to previous argument's neg field.
3403
3404         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
3405
3406 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3407
3408         * final.c (get_decl_from_op): New function.
3409         (output_asm_insn): Call it; write "*" when item with decl is address.
3410
3411 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
3412
3413         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
3414         about 64-bit support from the 3.0_branch version.
3415
3416 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
3417
3418         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
3419         USE_INCLUDED_LIBINTL when appropriate.
3420         * configure, config.in: Regenerate.
3421         * Makefile.in (datadir): Set to @datadir@.
3422         (intl.o): Also depend on $(CONFIG_H) and system.h.
3423
3424         * intl.c: Factor out common gettext initialization sequence.
3425         (gcc_init_libintl):  New function.
3426         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
3427         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
3428         off NLS.  Add multiple include guard.  No need to #ifdef-guard
3429         an #undef.  Prototype gcc_init_libintl here.
3430
3431         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
3432         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
3433         Use gcc_init_libintl.
3434
3435 2001-10-19  Catherine Moore  <clm@redhat.com>
3436
3437         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
3438
3439         * config/stormy16/stormy16.c (stormy16_split_move):  Make
3440         sure that REG_INC notes are present for auto_inc operands.
3441
3442 2001-10-19  Andreas Jaeger  <aj@suse.de>
3443
3444         * configure: Regenerated.
3445         * configure.in: Add x86_64 to switch statements.
3446
3447 2001-10-18  Richard Henderson  <rth@redhat.com>
3448
3449         * config/alpha/alpha.md (sibcall_osf_1): Load destination
3450         address into $27 explicitly.
3451         (sibcall_value_osf_1): Likewise.
3452
3453 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3454
3455         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
3456         (offset_address): New function.
3457         (free_emit_status): Free regno_decl.
3458         (init_emit): Pass proper number of elements to xcalloc.
3459         Allocate regno_decl.
3460         (mark_emit_status): Mark regno_decl values.
3461         * expr.c (highest_pow2_factor): New function.
3462         (expand_assigment): Use it and offset_address.
3463         Properly handle ptr_mode vs. Pmode in offset calculation.
3464         (store_constructor, expand_expr_unaligned): Likewise.
3465         (expand_expr, case COMPONENT_EXPR): Likewise.
3466         * expr.h (offset_address): New decl.
3467         * function.h (struct emit_status): Add regno_decl.
3468         (REGNO_DECL): New macro.
3469         * final.c (output_asm_name): Move in file and don't conditionalize
3470         on flag_print_asm_name.
3471         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
3472         Output names of operands, if known.
3473         * function.c (assign_parms): Set REGNO_DECL.
3474         * integrate.c (integrate_decl_tree): Likewise.
3475         * stmt.c (expand_decl): Likewise.
3476         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
3477
3478 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
3479
3480         * attribs.c (handle_noinline_attribute): New function.
3481         (handle_used_attribute): Likewise.
3482         (c_common_attribute_table): Added noinline and used.
3483         * doc/extend.texi (Function Attributes): Document them.
3484         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
3485         Warn when merging inline with attribute noinline.
3486         (start_decl, start_function): Warn if inline and attribute
3487         noinline appear in the same declaration.
3488
3489 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3490
3491         * config.gcc: Update c4x and i370 for C front end-specific
3492         dependencies.
3493         * config/c4x/c4x-c.c: New.
3494         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
3495         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
3496         New declarations.
3497         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
3498         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
3499         Make extern.
3500         (c4x_init_pragma): Remove.
3501         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
3502         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
3503         c4x_pr_ignored): Move to c4x-c.c.
3504         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
3505         * config/c4x/t-c4x: Update.
3506         * config/i370/i370-c.c: New.
3507         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
3508         (i370_pr_map): Move to i370-c.c.
3509         * config/i370/t-i370: New.
3510
3511         * doc/tm.texi: Update.
3512
3513 2001-10-17  Stan Shebs  <shebs@apple.com>
3514
3515         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
3516         typo fixes throughout.
3517         (machopic_output_stub): Remove some dead code.
3518
3519 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
3520
3521         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
3522         leak.
3523
3524 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3525
3526         * Makefile.in (print-rtl.o): Depend on TREE_H.
3527         * alias.c (get_alias_set): Make two passes over objects to first
3528         see if inner object is access via restricted pointer.
3529         Defer allocating alias set for restricted pointer until here.
3530         Call find_placeholder with second arg nonzero.
3531         Minor cleanups.
3532         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
3533         set for restricted pointer types.
3534         * emit-rtl.c (set_mem_attributes): Set more attributes.
3535         (set_mem_align, change_address, adjust_address_1): New functions.
3536         (change_address_1): Now static.
3537         (adjust_address, adjust_address_nv): Deleted.
3538         (replace_equiv_address): Call change_address_1.
3539         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
3540         (find_placeholder): Get starting point from PLIST arg.
3541         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
3542         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
3543         (adjust_address, adjust_address_nv): New macros.
3544         * print-rtl.c (tree.h): New include.
3545         (print_rtx, case MEM): Print all memory attributes.
3546
3547 2001-10-17  Richard Henderson  <rth@redhat.com>
3548
3549         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
3550
3551 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3552
3553         * c-tree.texi: Eliminate duplicated word.
3554         * cpp.texi: Likewise.
3555         * install.texi: Likewise.
3556         * invoke.texi: Likewise.
3557         * tm.texi: Likewise.
3558
3559 2001-10-17  Michael Collison  <collison@isisinc.net>
3560
3561         * dsp16xx.c: Fix comment formatting to match GNU standards.
3562         (dsp16xx_output_function_prologue): Change type of 'size'
3563         parameter from 'int' to HOST_WIDE_INT.
3564         (dsp16xx_output_function_epilogue): Change type of 'size'
3565         parameter from 'int' to HOST_WIDE_INT.
3566
3567 2001-10-16  Richard Henderson  <rth@redhat.com>
3568
3569         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
3570         * configure, config.in: Rebuild.
3571
3572         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
3573         (ix86_output_addr_diff_elt): New.
3574         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
3575         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3576         (JUMP_TABLES_IN_TEXT_SECTION): New.
3577         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
3578         * config/i386/i386-protos.h: Update.
3579
3580         * config/i386/386bsd.h, config/i386/beos-elf.h,
3581         config/i386/freebsd-aout.h, config/i386/freebsd.h,
3582         config/i386/i386-interix.h, config/i386/i386elf.h,
3583         config/i386/linux.h, config/i386/netbsd-elf.h,
3584         config/i386/netbsd.h, config/i386/openbsd.h,
3585         config/i386/ptx4-i.h, config/i386/rtemself.h,
3586         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
3587         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
3588
3589 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
3590
3591         * stmt.c (expand_asm_operands): Update commentary.
3592
3593 2001-10-16  Stan Shebs  <shebs@apple.com>
3594
3595         * config/darwin.h (GCC_NAME): Remove, no longer used.
3596         (NO_MATH_LIBRARY): Ditto.
3597         (MATH_LIBRARY): Define to emptiness.
3598         (DWARF2_DEBUGGING_INFO): Define.
3599         (PREFERRED_DEBUGGING_TYPE): Define.
3600         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
3601         (EXCEPTION_SECTION): Define.
3602         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3603         * config/darwin.c (darwin_encode_section_info): Handle case of
3604         DECL_INITIAL being error_mark_node.
3605
3606 2001-10-16  Richard Henderson  <rth@redhat.com>
3607
3608         * alpha.c (current_file_function_operand): Don't fail for profiling.
3609         (direct_call_operand): New.
3610         * alpha-protos.h: Declare it.
3611         * alpha.h (EXTRA_CONSTRAINT): Use it.
3612         (PREDICATE_CODES): Add it.
3613         (ASM_OUTPUT_MI_THUNK): Remove.
3614         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
3615         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
3616
3617 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
3618
3619         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
3620         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3621
3622 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
3623
3624         * cfg.c (free_edge): Break out from ....
3625         (remove_edge): ... here.
3626         (clear_edges): Use free_edge.
3627
3628         * att.h (ASM_QUAD): Add comment.
3629         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
3630
3631 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
3632
3633         * i386.c (split_ti): New function.
3634         (ix86_split_to_parts): Support TImodes.
3635         * i386.h (VALID_INT_MODE_P): Add TImode.
3636         * i386.md (movdi splitter): Fix.
3637         (movti): Support 64bit integer registers.
3638         (movti_rex64): New function and splitter.
3639
3640         * i386.c (*_cost): Add movsx/movzx cost.
3641         * i386.h (struct processor_costs): Add movsx/movzx fields.
3642         (RTX_COSTS): Handle zero/sign extend + avoid believing that
3643         64bit operations require split on 64bit machine.
3644         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
3645
3646         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
3647         (ix86_expand_move): Avoid pushes of memory if size does not match;
3648         move long constants to register.
3649         (x86_initialize_trampoline): Fix mode.
3650         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
3651         Use ASM_QUAD on 64bit.
3652         * i386.md (test pattern): Disallow impossible constants.
3653         (tablejump PIC expander): Fix emitting of sum.
3654         (movdicc_rex64): Rename to movdicc.
3655         * linux64.h (LINK_SPEC): Add missing '%'.
3656
3657 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
3658
3659         * tree-inline.c (inlinable_function_p): Leave it up to the
3660         front-end to turn -finline-functions into DECL_INLINE set for all
3661         functions.
3662
3663 2001-10-16  Stan Shebs  <shebs@apple.com>
3664
3665         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
3666
3667 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
3668
3669         * recog.c: Formatting and comment typo fixes.
3670
3671         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
3672         version in single tree build.
3673         * configure: Regenerate.
3674
3675 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
3676
3677         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
3678         MODE arguments to gen_rtx and compare operand with const0_rtx.
3679
3680 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3681
3682         * system.h: Poison old unused target macros.
3683         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
3684         * config/stormy16/stormy16.c: Update references to obsolete macros.
3685         * config/stormy16/stormy16.h: Similarly.
3686         * config/stormy16/stormy16.md: Similarly.
3687         * config/cris/cris.h: Similarly.
3688
3689 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3690
3691         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
3692         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
3693         cpp_register_pragma): Update accordingly.
3694
3695 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3696
3697         * c-pragma.h (cpp_register_pragma_space): Remove.
3698         * cpplib.h (cpp_register_pragma_space): Remove.
3699         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
3700         (cpp_register_pragma_space): Remove.
3701         (cpp_register_pragma): Simplify using lookup_pragma_entry,
3702         add sanity checks.
3703         (do_pragma): Similarly.
3704         (_cpp_init_internal_pragmas): Don't register namespaces.
3705
3706         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
3707         Don't register namespaces.
3708         * cp/lex.c (init_cp_pragma): Similarly.
3709         * doc/tm.texi: Update.
3710
3711 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3712
3713         PR c/4157
3714         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
3715
3716 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
3717
3718         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
3719         add scheduling support.
3720         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
3721         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
3722         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
3723
3724
3725 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
3726
3727         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
3728         missing CONSTANT_P test in core GCC.
3729
3730 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3731
3732         * cppmain.c (struct printer): New member source.
3733         (scan_translation_unit): Fix spacing at start of lines.
3734         (cb_line_change): Update.
3735
3736         * gcc.dg/cpp/spacing2.c: New test.
3737
3738 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
3739
3740         * config/cris/arit.c: Use __builtin_labs, not abs.
3741
3742         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
3743
3744         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
3745         misplaced sprintf and fprintf argument.
3746
3747 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
3748
3749         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
3750         * configure.in, Makefile.in: Take out obsolete check-po logic.
3751         * configure, config.in: Regenerate.
3752
3753 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
3754
3755         * objc/objc-act.c (finish_objc): Correct precondition for emitting
3756         symtab declarations.
3757
3758 2001-10-12  Stan Shebs  <shebs@apple.com>
3759
3760         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
3761         declarations of arguments and local variables.
3762
3763 2001-10-12  Christopher Faylor  <cgf@redhat.com>
3764
3765         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
3766         ENDFILE_SPEC definition.
3767
3768 2001-10-12  Kazu Hirata  <kazu@hxi.com>
3769
3770         * gthr-dce.h: Fix comment formatting.
3771         * gthr-posix.h: Likewise.
3772         * gthr-single.h: Likewise.
3773         * gthr-solaris.h: Likewise.
3774         * gthr-vxworks.h: Likewise.
3775         * gthr-win32.h: Likewise.
3776
3777 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
3778
3779         * final.c (output_asm_insn): Make sure assembly dialects are
3780         terminated, not nested.  Output `|' and `}' characters if they
3781         don't appear inside assembly dialect selection.
3782         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
3783         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
3784         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
3785         strsetsi_rex_1): Add {} braces.
3786
3787 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
3788
3789         * toplev.c (compile_file): Ignore return value from yyparse.
3790         Always pop any nested binding levels after yyparse returns.
3791
3792 2001-10-11  Richard Henderson  <rth@redhat.com>
3793
3794         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
3795
3796 2001-10-11  Richard Henderson  <rth@redhat.com>
3797
3798         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
3799         fall back to add_AT_long_long for large CONST_INT.
3800
3801 2001-10-11  Richard Henderson  <rth@redhat.com>
3802
3803         * config/i386/i386.md (setcc splitters): Add four splitters to
3804         simplify compound compares that simplify_comparison can't handle.
3805
3806 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
3807
3808         * cpplex.c (digraph_spellings, token_spellings): Make static.
3809
3810 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3811
3812         * unroll.c (loop_iterations): Fixup last patch.
3813
3814 2001-10-11  Richard Henderson  <rth@redhat.com>
3815
3816         * rtl.h (REG_VTABLE_REF): New.
3817         * rtl.c (reg_note_name): Add it.
3818         * combine.c (distribute_notes): Handle it.
3819         * final.c (final_scan_insn): Handle it.
3820         * tree.def (VTABLE_REF): New.
3821         * expr.c (expand_expr): Handle it.
3822         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
3823         * output.h: Declare them.
3824
3825 2001-10-11  Richard Henderson  <rth@redhat.com>
3826
3827         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
3828         for a DECL_INITIAL.
3829
3830 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
3831
3832         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
3833         available in 64-bit mode.
3834
3835 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
3836
3837         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
3838         cris-*-linux* cases.
3839         * config/cris/cris-protos.h: New file.
3840         * config/cris/cris.c: New file.
3841         * config/cris/cris.h: New file.
3842         * config/cris/cris.md: New file.
3843         * config/cris/linux.h: New file.
3844         * config/cris/aout.h: New file.
3845         * config/cris/arit.c: New file.
3846         * config/cris/cris_abi_symbol.c: New file.
3847         * config/cris/mulsi3.asm: New file.
3848         * config/cris/t-aout: New file.
3849         * config/cris/t-cris: New file.
3850         * config/cris/t-elfmulti: New file.
3851         * config/cris/t-linux: New file.
3852         * doc/invoke.texi: Add CRIS options.
3853         * doc/install.texi (Specific): Add blurb for CRIS.
3854
3855 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
3856
3857         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
3858         before using it.
3859         * config/float/i32.h: Likewise.
3860         * config/float-i386.h: Likewise.
3861         * config/float-i64.h: Likewise.
3862         * config/float-m68k.h: Likewise.
3863         * config/float-sh.h: Likewise.
3864         * config/float-sparc.h: Likewise.
3865
3866 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
3867
3868         * doc/contrib.texi: Add note about CRIS port to my entry.
3869
3870 2001-10-11  Kazu Hirata  <kazu@hxi.com>
3871
3872         * basic-block.h: Fix formatting.
3873         * bitmap.h: Likewise.
3874         * cpplib.h: Likewise.
3875         * c-tree.h: Likewise.
3876         * diagnostic.h: Likewise.
3877         * flags.h: Likewise.
3878         * ggc.h: Likewise.
3879         * longlong.h: Likewise.
3880         * real.h: Likewise.
3881         * reload.h: Likewise.
3882         * rtl.h: Likewise.
3883         * tree.h: Likewise.
3884
3885 2001-10-10  Richard Henderson  <rth@redhat.com>
3886
3887         * c-parse.in (asm_operand): Allow named operands.
3888         * genconfig.c (max_recog_operands): Set to 29.
3889         * local-alloc.c (requires_inout): Skip multiple digits.
3890         * recog.c (asm_operand_ok): Likewise.
3891         (preprocess_constraints): Use strtoul for matching constraints.
3892         (constrain_operands): Likewise.
3893         * regmove.c (find_matches): Likewise.
3894         * reload.c (find_reloads): Likewise.
3895         * stmt.c (parse_output_constraint): Don't reject in-out
3896         constraint on operands > 9.  Reject '[' in constraint.
3897         (expand_asm_operands): Handle named operands.  Use strtoul
3898         for matching constraints.
3899         (check_operand_nalternatives): Split out from expand_asm_operands.
3900         (check_unique_operand_names): New.
3901         (resolve_operand_names, resolve_operand_name_1): New.
3902
3903         * doc/extend.texi (Extended Asm): Document named operands.
3904         * doc/md.texi (Simple Constraints): Document matching constraints
3905         on operands > 9.
3906
3907 2001-10-10  Richard Henderson  <rth@redhat.com>
3908
3909         * combine.c (try_combine): Handle a SEQUENCE of one insn.
3910
3911         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
3912         (jcc splitters): Add two splitters to simplify compound compares
3913         that simplify_comparison can't handle.
3914
3915 2001-10-10  Richard Henderson  <rth@redhat.com>
3916
3917         * langhooks.c: Include langhooks.h.
3918         * Makefile.in (langhooks.o): Depend on it.
3919
3920 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
3921
3922         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
3923         should not be considered as a no-op.
3924         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
3925
3926 2001-10-10  Stan Shebs  <shebs@apple.com>
3927
3928         * alias.c: Remove uses of "register" specifier in declarations
3929         of arguments and local variables.
3930         * c-common.c: Ditto.
3931         * c-convert.c: Ditto.
3932         * c-decl.c: Ditto.
3933         * c-format.c: Ditto.
3934         * c-semantics.c: Ditto.
3935         * c-typeck.c: Ditto.
3936         * caller-save.c: Ditto.
3937         * calls.c: Ditto.
3938         * cfg.c: Ditto.
3939         * cfgbuild.c: Ditto.
3940         * cfgrtl.c: Ditto.
3941         * collect2.c: Ditto.
3942         * combine.c: Ditto.
3943         * convert.c: Ditto.
3944         * cppexp.c: Ditto.
3945         * cppfiles.c: Ditto.
3946         * cse.c: Ditto.
3947         * dbxout.c: Ditto.
3948         * defaults.h: Ditto.
3949         * df.c: Ditto.
3950         * dwarf2out.c: Ditto.
3951         * dwarfout.c: Ditto.
3952         * emit-rtl.c: Ditto.
3953         * explow.c: Ditto.
3954         * expmed.c: Ditto.
3955         * expr.c: Ditto.
3956         * final.c: Ditto.
3957         * fix-header.c: Ditto.
3958         * floatlib.c: Ditto.
3959         * flow.c: Ditto.
3960         * fold-const.c: Ditto.
3961         * function.c: Ditto.
3962         * gcc.c: Ditto.
3963         * gcse.c: Ditto.
3964         * gen-protos.c: Ditto.
3965         * genattrtab.c: Ditto.
3966         * gencheck.c: Ditto.
3967         * genconfig.c: Ditto.
3968         * genemit.c: Ditto.
3969         * genextract.c: Ditto.
3970         * genflags.c: Ditto.
3971         * gengenrtl.c: Ditto.
3972         * genoutput.c: Ditto.
3973         * genpeep.c: Ditto.
3974         * genrecog.c: Ditto.
3975         * gensupport.c: Ditto.
3976         * global.c: Ditto.
3977         * gmon.c: Ditto.
3978         * graph.c: Ditto.
3979         * haifa-sched.c: Ditto.
3980         * hard-reg-set.h: Ditto.
3981         * hash.c: Ditto.
3982         * integrate.c: Ditto.
3983         * jump.c: Ditto.
3984         * lists.c: Ditto.
3985         * local-alloc.c: Ditto.
3986         * loop.c: Ditto.
3987         * mips-tdump.c: Ditto.
3988         * mips-tfile.c: Ditto.
3989         * optabs.c: Ditto.
3990         * prefix.c: Ditto.
3991         * print-rtl.c: Ditto.
3992         * read-rtl.c: Ditto.
3993         * real.c: Ditto.
3994         * recog.c: Ditto.
3995         * reg-stack.c: Ditto.
3996         * regclass.c: Ditto.
3997         * regmove.c: Ditto.
3998         * reload.c: Ditto.
3999         * reload1.c: Ditto.
4000         * reorg.c: Ditto.
4001         * resource.c: Ditto.
4002         * rtl.c: Ditto.
4003         * rtlanal.c: Ditto.
4004         * scan.c: Ditto.
4005         * sched-deps.c: Ditto.
4006         * sched-rgn.c: Ditto.
4007         * sdbout.c: Ditto.
4008         * simplify-rtx.c: Ditto.
4009         * stmt.c: Ditto.
4010         * stor-layout.c: Ditto.
4011         * toplev.c: Ditto.
4012         * tradcif.y: Ditto.
4013         * tradcpp.c: Ditto.
4014         * tree.c: Ditto.
4015         * unroll.c: Ditto.
4016         * varasm.c: Ditto.
4017         * xcoffout.c: Ditto.
4018
4019 2001-10-10  Richard Henderson  <rth@redhat.com>
4020
4021         * rtl.h (can_reverse_comparison_p): Remove.
4022
4023 2001-10-10  Christopher Faylor <cgf@redhat.com>
4024
4025         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
4026         used.
4027
4028 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4029
4030         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
4031         (Thanks to Chris Faylor for suggesting macro name).
4032         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
4033         WIN32 defines.
4034         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
4035         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
4036         (MATH_LIBRARY): Undef before definition.
4037         (OUTPUT_QUOTED_STRING): Likewise.
4038         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
4039
4040 2001-10-10  Richard Henderson  <rth@redhat.com>
4041
4042         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
4043         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
4044         a tristate comparison value.
4045         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
4046
4047 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4048
4049         PR c++/4512
4050         * unroll.c (loop_iterations): Ignore insns generated by loop
4051         unrolling.
4052
4053         * config.gcc (mips*-*-gnu*): Delete support.
4054         * config/mips/gnu.h: Remove.
4055
4056 2001-10-10  Kazu Hirata  <kazu@hxi.com>
4057
4058         * calls.c: Fix formatting.
4059         * c-decl.c: Likewise.
4060         * cfgcleanup.c: Likewise.
4061         * combine.c: Likewise.
4062         * cppfiles.c: Likewise.
4063         * cpplib.c: Likewise.
4064         * cppmacro.c: Likewise.
4065         * crtstuff.c: Likewise.
4066         * cse.c: Likewise.
4067         * dwarf2out.c: Likewise.
4068         * expmed.c: Likewise.
4069         * expr.c: Likewise.
4070         * fold-const.c: Likewise.
4071         * function.c: Likewise.
4072         * gcse.c: Likewise.
4073         * genattrtab.c: Likewise.
4074         * ggc-page.c: Likewise.
4075         * integrate.c: Likewise.
4076         * libgcc2.c: Likewise.
4077         * loop.c: Likewise.
4078         * optabs.c: Likewise.
4079         * profile.c: Likewise.
4080         * protoize.c: Likewise.
4081         * real.c: Likewise.
4082         * recog.c: Likewise.
4083         * reload1.c: Likewise.
4084         * reload.c: Likewise.
4085         * reorg.c: Likewise.
4086         * resource.c: Likewise.
4087         * sched-rgn.c: Likewise.
4088         * sdbout.c: Likewise.
4089         * stmt.c: Likewise.
4090         * toplev.c: Likewise.
4091         * varasm.c: Likewise.
4092
4093 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
4094
4095         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
4096         * Makefile.in (langhooks.o): Add dependencies.
4097
4098 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
4099
4100         * rs6000.c (rs6000_emit_load_toc_table): Don't
4101         strdup the toc label.
4102         (create_TOC_reference): Likewise.
4103
4104 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4105
4106         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
4107         version default.
4108
4109 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
4110
4111         * config/i386/i386.c (ix86_attribute_table): Correct
4112         min_len, max_len fields for dllimport, dllexport and shared.
4113
4114 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
4115
4116         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
4117         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
4118         Consistently use "nonzero" instead of "non-zero".
4119
4120 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4121
4122         * acconfig.h: Fix comment formatting.
4123         * c-dump.h: Likewise.
4124         * c-tree.h: Likewise.
4125         * conditions.h: Likewise.
4126         * expr.h: Likewise.
4127         * function.h: Likewise.
4128         * gthr.h: Likewise.
4129         * hwint.h: Likewise.
4130         * integrate.h: Likewise.
4131         * intl.h: Likewise.
4132         * loop.h: Likewise.
4133         * optabs.h: Likewise.
4134
4135 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4136
4137         * c-common.h: Fix comment formatting.
4138         * c-dump.c: Likewise.
4139         * cfg.c: Likewise.
4140         * diagnostic.h: Likewise.
4141         * except.c: Likewise.
4142         * gcc.h: Likewise.
4143         * gcov-io.h: Likewise.
4144         * genattrtab.c: Likewise.
4145         * output.h: Likewise.
4146         * predict.h: Likewise.
4147         * reload1.c: Likewise.
4148         * reload.h: Likewise.
4149         * resource.h: Likewise.
4150         * scan.h: Likewise.
4151         * system.h: Likewise.
4152         * tree.h: Likewise.
4153         * tree-inline.c: Likewise.
4154         * tsystem.h: Likewise.
4155         * varasm.c: Likewise.
4156         * xcoffout.h: Likewise.
4157
4158 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4159
4160         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
4161
4162 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4163
4164         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
4165         config/i386/i386elf.h, config/i386/netbsd-elf.h,
4166         config/i386/netware.h, config/mcore/gfloat.h,
4167         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
4168         config/netware.h, gccbug.in: Update FSF address.
4169
4170 2001-10-09  Kazu Hirata  <kazu@hxi.com>
4171
4172         * c-common.c: Fix comment typos.
4173         * cfgrtl.c: Likewise.
4174         * collect2.c: Likewise.
4175         * cpplex.c: Likewise.
4176         * doloop.c: Likewise.
4177         * dwarf2out.c: Likewise.
4178         * dwarfout.c: Likewise.
4179         * expr.c: Likewise.
4180         * fold-const.c: Likewise.
4181         * gcc.c: Likewise.
4182         * gcov.c: Likewise.
4183         * gcse.c: Likewise.
4184         * global.c: Likewise.
4185         * ifcvt.c: Likewise.
4186         * loop.c: Likewise.
4187         * optabs.c: Likewise.
4188         * protoize.c: Likewise.
4189         * regclass.c: Likewise.
4190         * reorg.c: Likewise.
4191         * rtl.h: Likewise.
4192         * stmt.c: Likewise.
4193         * tree.h: Likewise.
4194         * doc/cpp.texi: Likewise.
4195         * doc/c-tree.texi: Likewise.
4196         * doc/extend.texi: Likewise.
4197         * doc/invoke.texi: Likewise.
4198         * doc/objc.texi: Likewise.
4199         * doc/tm.texi: Likewise.
4200
4201 2001-10-08  Richard Henderson  <rth@redhat.com>
4202
4203         * varasm.c (set_named_section_flags): Initialize "declared".
4204
4205 2001-10-08  Robert Lipe  <robertlipe@usa.net>
4206
4207         * varasm.c (struct in_named_entry): Add declared.
4208         (named_section_first_declaration): New function.
4209         (default_elf_asm_named_section): Use it.
4210         * output.h (named_section_first_declaration): New.
4211
4212 2001-10-08  Richard Henderson  <rth@redhat.com>
4213
4214         * i386.md (movsi_xor): Export.
4215         (setcc peep2): Use it when available; add an alternative to
4216         match zero_extendhisi2_and.
4217
4218 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4219
4220         * romp-protos.h (romp_initialize_trampoline): New function.
4221         * romp.c (romp_initialize_trampoline): Likewise.
4222         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
4223         romp_initialize_trampoline.
4224
4225 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4226
4227         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
4228         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4229         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4230         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
4231
4232 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4233
4234         * unroll.c (loop_iterations): Extend check for multiple back edges.
4235
4236 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
4237
4238         * langhooks.h: New file.
4239         * Makefile.in (OBJS): Added langhooks.o.
4240         (c-lang.o): Depend on langhooks.h.
4241         (c-common.o): Don't depend on tree-inline.h.
4242         (tree-inline.o): Depend on toplev.h.
4243         (langhooks.o): New rule.
4244         * c-common.c: Don't include tree-inline.h.
4245         (c_mark_lang_decl): Mark argument c as unused.
4246         (c_common_lang_init): Don't initialize hooks here.
4247         * c-lang.c: Include langhooks.h, then override some macros.
4248         (lang_hooks): Initialize with macros in langhooks.h.
4249         (c_init): Don't initialize hooks here.
4250         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
4251         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
4252         * tree-inline.c: Include toplev.h.  Don't define hook variables.
4253         * tree-inline.h: Don't define hook types nor declare hook
4254         variables.  Move macros to...
4255         * langhooks.c: ... new file, as functions.  Adjust all callers.
4256
4257 2001-10-08  Jeffrey A Law  <law@cygnus.com>
4258
4259         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
4260         purge_mem_unchanging_flag on all instructions, not just on those
4261         before NOTE_INSN_FUNCTION_BEG.
4262
4263 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4264
4265         * cppmacro.c (_cpp_create_definition): Leave comments off.
4266
4267         * doc/cpp.texi: Update.
4268
4269 2001-10-08  DJ Delorie  <dj@redhat.com>
4270
4271         * c-decl.c (grokfield): Make sure the only unnamed fields
4272         we're allowing are either structs or unions.
4273         * doc/extend.texi: Add documentation for the unnamed field
4274         extension.
4275
4276 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
4277
4278         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
4279         * configure.in: Use it.
4280         * configure: Regenerated.
4281         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
4282         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
4283
4284 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4285
4286         * cppfiles.c (open_file): Don't mark zero-length files
4287         never-reread here.  Don't output diagnostics here either.
4288         (stack_include_file): Mark them never-reread here.
4289         (_cpp_read_file): Update.
4290
4291 2001-10-08  Richard Henderson  <rth@redhat.com>
4292
4293         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
4294
4295 2001-10-08  Richard Henderson  <rth@redhat.com>
4296
4297         * expr.c (store_expr): When converting a CONST_INT for storage
4298         in a SUBREG, convert it to both SUBREG modes before stripping
4299         the SUBREG.
4300
4301 2001-10-08  Richard Henderson  <rth@redhat.com>
4302
4303         * varasm.c (restore_varasm_status): New.
4304         * function.h: Declare it.
4305         * function.c (pop_function_context_from): Call it.
4306
4307 2001-10-08  Richard Henderson  <rth@redhat.com>
4308
4309         * c-common.h (struct c_lang_decl): Add declared_inline.
4310         * c-tree.h (DECL_DECLARED_INLINE_P): New.
4311         * c-lang.c (c_disregard_inline_limits): Use it.
4312         * c-decl.c (duplicate_decls): Likewise.
4313         (pushdecl, redeclaration_error_message): Likewise.
4314         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
4315         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
4316         Set DECL_INLINE if -finline-functions.
4317         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
4318
4319 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4320
4321         * cppmacro.c (funlike_invocation_p): Move some logic to caller
4322         in enter_macro_context.  Create a padding token in its own context
4323         if necessary when the search for '(' fails.
4324         (enter_macro_context): Update.
4325
4326 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4327
4328         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
4329         genmultilib, toplev.c: Fix spelling errors of "separate" as
4330         "seperate", and corresponding spelling errors of related words.
4331
4332 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4333
4334         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
4335         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
4336         Likewise.
4337         * c-dump.c (dump_option_value_info): Likewise.
4338         * c-format.c (format_length_info, format_char_info,
4339         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
4340         * collect2.c (names): Likewise.
4341         * cppdefault.h (default_include): Likewise.
4342         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
4343         * flow.c (life_analysis): Likewise.
4344         * gcc.c (dir_separator_str, modify_target, option_map,
4345         target_option_translations, spec_list_1, extra_specs_1,
4346         init_spec): Likewise.
4347         * gcov.c (gcov_version_string): Likewise.
4348         * genattr.c (write_units): Likewise.
4349         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
4350         * gengenrtl.c (rtx_definition, defs): Likewise.
4351         * genrecog.c (pred_table): Likewise.
4352         * global.c (global_alloc): Likewise.
4353         * lcm.c (optimize_mode_switching): Likewise.
4354         * local-alloc.c (find_free_reg): Likewise.
4355         * params.h (param_info): Likewise.
4356         * predict.c (predictor_info): Likewise.
4357         * protoize.c (unexpansion_struct): Likewise.
4358         * real.c (bmask): Likewise.
4359         * recog.h (insn_operand_data, insn_data): Likewise.
4360         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
4361         * stmt.c (expand_nl_goto_receiver): Likewise.
4362         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
4363         target_switches, target_options): Likewise.
4364         * tradcif.y (token, tokentab2, yylex): Likewise.
4365         * tree.h (attribute_spec): Likewise.
4366
4367         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
4368         Likewise.
4369         * arc.c (arc_output_function_epilogue): Likewise.
4370         * arm.c (processors, all_cores, all_architectures,
4371         arm_override_options, isr_attribute_arg, isr_attribute_args,
4372         arm_isr_value): Likewise.
4373         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
4374         Likewise.
4375         * c4x.c (c4x_int_reglist): Likewise.
4376         * d30v.c (override_options): Likewise.
4377         * h8300.c (shift_insn): Likewise.
4378         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
4379         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
4380         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
4381         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
4382         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
4383         * i386.h (processor_costs, ix86_cost): Likewise.
4384         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
4385         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
4386         * m68k.c (codes_68881, codes_FPA): Likewise.
4387         * m88k.c (mode_from_align, max_from_align, all_from_align,
4388         best_from_align, m_options): Likewise.
4389         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
4390         * mcore.c (mode_from_align): Likewise.
4391         * mips/elf64.h (UNIQUE_SECTION): Likewise.
4392         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
4393         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
4394         * mips.h (mips_regno_to_class): Likewise.
4395         * ns32k.c (scales): Likewise.
4396         * pa.c (import_string, magic_milli): Likewise.
4397         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
4398         * sparc.c (leaf_reg_remap, sparc_override_options,
4399         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
4400         Likewise.
4401         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
4402
4403 2001-10-07  Dale Johannesen  <dalej@apple.com>
4404
4405         * reload1.c (reload_reg_free_p): Teach register interference
4406         checking that multiple output reloads are emitted in
4407         reverse order.
4408         reload1.c (reload_reg_reaches_end_p):  Ditto.
4409         reload1.c (reloads_conflict):  Ditto.
4410
4411 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4412
4413         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
4414         NULL_TREE inside @code.
4415
4416 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4417
4418         * doc/gcc.texi: Document consistent style of "32-bit",
4419         "Objective-C", and "@code{NULL}".
4420
4421 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
4422
4423         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
4424         (cpp_token_len, cpp_spell_token, cpp_output_token,
4425         _cpp_equiv_tokens): Handle it.
4426         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
4427         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
4428         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
4429         error messages.
4430
4431 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4432
4433         * gcc.c (default_compilers): Remove .ada.
4434
4435 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
4436
4437         * doc/cppinternals.texi: Update.
4438
4439 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
4440
4441         * gcc.c (main): Set this_file_error if the appropriate
4442         compiler for a language has not been installed.
4443
4444 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4445
4446         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
4447
4448 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4449
4450         * gccbug.in (CATEGORIES): Add ada.
4451
4452 2001-10-05  Catherine Moore  <clm@redhat.com>
4453
4454         * config/stormy16/stormy-abi:  Document abi changes.
4455         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
4456         (ICALL_REGS): New register class.
4457         (NUM_ARGUMENT_REGISTERS): Now 6.
4458         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
4459         in registers.
4460         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
4461         * config/stormy16.md (call_internal, call_value_internal,
4462         indirect_jump): Use new 'z' constraint.
4463
4464 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4465
4466         * doc/cppinternals.texi: Update.
4467
4468 2001-10-05  Richard Henderson  <rth@redhat.com>
4469
4470         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
4471         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
4472         the gas section-name-as-label feature.
4473
4474 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4475
4476         * doc/cppinternals.texi: Update.
4477
4478 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4479
4480         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
4481         to ensure valid SImode constants.
4482
4483 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
4484
4485         * Makefile.in (c-decl.o): Depend on tree-inline.h.
4486         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
4487         * c-decl.c: Include tree-inline.h.
4488         (c_expand_body): Call optimize_inline_calls. Determine whether
4489         a function is inlinable upfront, and only clear
4490         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
4491         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
4492         (c_disregard_inline_limits): New function.
4493         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
4494         (c_post_options): Enable tree inlining if inlining is enabled.
4495         Don't inline trees when instrumenting functions.
4496         (c_init): Initialize lang_disregard_inline_limits and
4497         lang_cannot_inline_tree_fn.
4498         * tree-inline.c (initialize_inlined_parameters): Handle calls
4499         with fewer arguments than declared parameters, and fewer
4500         parameters than passed arguments.  Don't assume value is a
4501         DECL.
4502         (declare_return_variable): Convert return value back to the
4503         original type, if it was promoted.
4504         (tree_inlinable_function_p): New function.
4505         (inlinable_function_p): Don't look at DECL_INLINE if we're
4506         inlining all functions.  Make it work with a NULL id.
4507         Re-check DECL_UNINLINABLE after language-specific checks.
4508         * tree-inline.h (tree_inlinable_function_p): Declare it.
4509         * integrate.c (save_for_inline): Don't bother to prepare argvec
4510         when not inlining.
4511         * cse.c (check_for_label_ref): Don't check deleted labels.
4512
4513         * Makefile.in (tree-inline.o): Depend on newly-included headers.
4514         * tree-inline.c: Include headers needed for the functions moved in.
4515         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
4516         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
4517         (copy_body, initialize_inlined_parameters): Likewise.
4518         (declare_return_variable, inlinable_function_p): Likewise.
4519         (expand_call_inline, expand_calls_inline): Likewise.
4520         (optimize_inline_calls, clone_body): Likewise.
4521         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
4522         (copy_tree_r, remap_save_expr): Likewise.
4523
4524 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
4525
4526         * Makefile.in (OBJS): Added tree-inline.o.
4527         (c-common.o): Depend on tree-inline.h.
4528         (tree-inline.o): New target.
4529         * c-common.c: Include tree-inline.h.
4530         (c_mark_lang_decl): Don't mark saved_tree.
4531         (c_common_lang_init): Set lang_anon_aggr_type_p.
4532         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
4533         (struct c_lang_decl): Moved saved_tree to tree_decl.
4534         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
4535         * integrate.h (function_attribute_inlinable_p): Declare it.
4536         * integrate.c (function_attribute_inlinable_p): Export it.
4537         * tree-inline.c: New file.  Define variables declared in...
4538         * tree-inline.h: New file.  Declare functions to be moved to
4539         tree-inline.c.  Define macros and declare types and hooks for
4540         language-specific tree inlining.
4541         (flag_inline_trees): Moved definition from cp/decl2.c.
4542         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
4543         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
4544         (struct tree_decl): Moved saved_tree from c_lang_decl and
4545         inlined_fns from C++'s lang_decl.
4546
4547 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
4548
4549         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
4550         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
4551
4552 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4553
4554         * doc/cppinternals.texi: Update.
4555
4556 2001-10-04  Eric Christopher  <echristo@redhat.com>
4557
4558         * config/mips/mips.c (init_cumulative_args): Remember to set
4559         cum->prototype.
4560         * config.gcc: Redo linux configuration. Add target_cpu_default
4561         of soft-float to all mipsisa32 combinations and tx39.
4562         * config/mips/linux.h: Remove include of mips.h.
4563
4564 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
4565
4566         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
4567         HOST_LDFLAGS and HOST_CPPFLAGS.
4568
4569 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
4570
4571         * c-parse.in (objc_inherit_code, objc_pq_context,
4572         objc_public_flag): Make static.
4573         (objc_interface_context, objc_implementation_context,
4574         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
4575         global tree array in objc/objc-act.[ch].
4576         (methoddef): Remove unnecessary code.
4577
4578         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
4579         Hoist struct definitions to objc-act.h.
4580         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
4581         cat_count): Place declaration in objc-act.h.
4582         (objc_tree_index): Move enumeration to objc-act.h.
4583         (objc_global_trees): Place declaration and macro accessors in
4584         objc-act.h.
4585         (implementation_context): Remove duplicate; use
4586         objc_implementation_context instead:
4587         (method_context): Remove duplicate; use objc_method_context
4588         instead.
4589         (objc_ellipsis_node, objc_method_prototype_template,
4590         implemented_classes, function_type): Move global vars to
4591         objc_global_trees.
4592         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
4593         (build_message_expr): Move actual construction of ObjC message
4594         send nodes to finish_message_expr.
4595         (finish_message_expr): New routine, contains code formerly in
4596         build_message_expr.
4597         * objc/objc-act.h (finish_message_expr): New prototype.
4598         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
4599         declarations; these vars are now part of objc_global_trees.
4600         (objc_tree_index, objc_global_trees): Move definitions from
4601         objc-act.c.
4602         * objc/objc-tree.def: Update copyright info.
4603
4604 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
4605
4606         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
4607         op is NULL.
4608         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
4609         only if TARGET_ARCH64.
4610
4611 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
4612
4613         * doc/extend.texi: Fix some problems with previous checkin.
4614         * doc/invoke.texi: Likewise.
4615
4616 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4617
4618         * cpphash.h: Update comments.
4619         (cpp_context): Update.
4620         (spec_nodes): Remove n__Pragma.
4621         * cppinit.c (cpp_create_reader): Update.
4622         (builtin_array): Add _Pragma.
4623         * cpplib.h: Update comments.
4624         (NODE_DISABLED, BT_PRAGMA): New.
4625         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
4626         * cppmacro.c (struct cpp_macro): Remove disabled.
4627         (builtin_macro): Return int, handle _Pragma, push the new token
4628         on the context stack.
4629         (funlike_invocation_p): Unconstify, update.
4630         (enter_macro_context): Handle builtins here.
4631         (replace_args, push_token_context, push_ptoken_context):
4632         Update for prototype changes.
4633         (_cpp_pop_context): Update.
4634         (cpp_get_token): Don't handle buitins, nor _Pragma here.
4635         (cpp_sys_macro_p): Update.
4636         (_cpp_free_definition): Clear disabled flag.
4637         (_cpp_create_definition): Upate.
4638         * cppmain.c: Update comments.
4639
4640 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
4641                                 Andreas Jaeger <aj@suse.de>,
4642                                 Jan Hubicka    <jh@suse.cz>
4643
4644         * doc/invoke.texi (i386 Options): Document x86-64 options.
4645         (i386 and x86-64 Options): Rename i386 options section.
4646
4647         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
4648         (TARGET_SWITCHES): Add -munwind-info.
4649         (MASK_NO_UNWIND_INFO): New.
4650         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
4651         biarch compilation.
4652         (ASM_OUTPUT_DOUBLE_INT): New.
4653
4654         * config/i386/linux64.h: New spec file for Linux x86-64 support.
4655         * config.gcc: Fix tm_file settings for x86-64.
4656         * config/i386/x86-64.h: New file with OS independent x86-64
4657         definitions.
4658         * config/i386/biarch64.h: New file used to configure compiler
4659         to biarch/64bit compilation.
4660
4661         * config/i386/i386.c: (override_options): Set flags default
4662         for 64bit compilation.
4663
4664 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
4665
4666         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
4667         (ix86_expand_int_movcc): Optimize DImode conditional moves with
4668         constants on x86_64.
4669         (ix86_attr_length_immediate_default): Support MODE_DI.
4670         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
4671         condition.
4672         (indirect_jump, tablejump): Turn into expander.
4673
4674 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4675
4676         * c-common.c (c_format_attribute_table): Make format and
4677         format_arg attributes apply to function types rather than to
4678         decls.
4679         (is_valid_printf_arglist): Construct an attribute list and pass
4680         that to check_function_format rather than a name.
4681         * c-common.h (check_function_format): Adjust prototype.
4682         * c-decl.c (duplicate_decls): Preserve attributes from type of
4683         built-in decl when allowing for harmless conflict in types.
4684         * c-format.c (record_function_format,
4685         record_international_format, function_format_list,
4686         international_format_info, international_format_list): Remove.
4687         (function_format_info): Remove next, name and assembler_name.
4688         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
4689         (decode_format_attr): New.
4690         (handle_format_attribute): Handle receiving a type rather than a
4691         decl.  Call decode_format_attr.  Store format information in a
4692         function_format_info.
4693         (handle_format_arg_attribute): Correct comment.  Handle receiving
4694         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
4695         arg_num.
4696         (check_format_info_recurse, check_format_info_main): Take argument
4697         numbers as unsigned HOST_WIDE_INT.
4698         (check_function_format): Take a list of attributes from the
4699         function type rather than a name or assembler name.  Check for
4700         format attributes in that list and the attributes on the type of
4701         the current function rather than looking through
4702         function_format_list.
4703         (check_format_info): Use unsigned HOST_WIDE_INT for argument
4704         numbers.
4705         (check_format_info_recurse): Take format_arg attributes from the
4706         type of the function calls rather than using
4707         international_format_list.  Allow for multiple format_arg
4708         attributes.
4709         * c-typeck.c (build_function_call): Pass type attributes to
4710         check_function_format rather than name or assembler name.  Don't
4711         require there to be a name or assembler name to check formats.
4712
4713 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4714
4715         * attribs.c (decl_attributes): Possibly call
4716         insert_default_attributes to insert default attributes on
4717         functions in a lazy manner.
4718         * builtin-attrs.def: New file; define the default format and
4719         format_arg attributes.
4720         * c-common.c (c_format_attribute_table): Move to earlier in the
4721         file.
4722         (c_common_nodes_and_builtins): Initialize format_attribute_table.
4723         (enum built_in_attribute, built_in_attributes,
4724         c_attrs_initialized, c_init_attributes,
4725         c_common_insert_default_attributes): New.
4726         (c_common_lang_init): Don't initialize format_attribute_table.  Do
4727         call c_init_attributes.
4728         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
4729         * c-common.h (init_function_format_info): Don't declare.
4730         (c_common_insert_default_attributes): Declare.
4731         * c-decl.c (implicitly_declare, builtin_function): Call
4732         decl_attributes.
4733         (init_decl_processing): Don't call init_function_format_info.
4734         (insert_default_attributes): New.
4735         * c-format.c (handle_format_attribute,
4736         handle_format_arg_attribute): Be quiet about inappropriate
4737         declaration when applying default attributes.
4738         (init_function_format_info): Remove.
4739         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
4740         (insert_default_attributes): Declare.
4741
4742 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4743
4744         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
4745
4746 2001-10-01  Jim Wilson  <wilson@redhat.com>
4747
4748         * sched-deps.c (add_dependence): When elide conditional dependence,
4749         check that insn doesn't modify cond2.
4750
4751 2001-10-01  Dale Johannesen  <dalej@apple.com>
4752
4753         * config/rs6000/rs6000.h (enum processor_type): Add support
4754         for 7400 (G4) and 7450.
4755         (RTX_COSTS): Ditto.
4756         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
4757         (rs6000_issue_rate): Ditto.
4758         (rs6000_adjust_cost): Fix cycle counts for compares.
4759         (debug_stack_info):  Fix an obvious typo.
4760         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
4761         * doc/invoke.texi: Document.
4762         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
4763         for Darwin.
4764         (PROCESSOR_DEFAULT): Ditto.
4765
4766 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
4767
4768         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
4769         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
4770         later recursive make invocation.
4771
4772 2001-10-01  Hans Boehm  <boehm@acm.org>
4773
4774         * optabs.c (emit_libcall_block): When using non-call exceptions,
4775         don't add REG_LIBCALL reg notes to trapping calls.
4776
4777 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
4778
4779         * flow.c (propagate_block_delete_libcall): Remove unused first arg
4780         (propagate_one_insn):  Update for above change
4781
4782 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
4783
4784         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
4785         _Unwind_GetTextRelBase): Argument is unused.
4786
4787 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4788
4789         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
4790         Loop through NOPs, placeholders, and components.
4791         Don't go through NOPs if change mode.
4792         (record_alias_subset): Do nothing if SUBSET and SET are the same.
4793         * emit-rtl.c (set_mem_alias_set): Enable check.
4794         * expr.c (find_placeholder): New function.
4795         (expand_expr, case PLACEHOLDER_EXPR): Use it.
4796         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
4797         to modify it and avoid unneeded copies.
4798         * expr.h (expand_expr): Always define.
4799         (find_placeholder): New declaration.
4800
4801 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4802
4803         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
4804         operand 2 is the stack pointer.
4805         ("addr-peephole"): Fix address computation peephole when operand 2
4806         is the stack pointer.
4807
4808 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4809
4810         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
4811         (ix86_setup_incoming_varargs): Likewise.
4812
4813 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
4814
4815         * stor-layout.c (layout_type): Don't complain about too-large
4816         array here.
4817
4818 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4819
4820         * function.c (keep_stack_depressed): Don't use delete_insn.
4821
4822         * expr.h (set_mem_alias_set): Move decl to here.
4823         * rtl.h (mem_attrs): New typedef and struct.
4824         (union rtunion_def): Add field for mem_attrs.
4825         (X0MEMATTR, MEM_ATTRS): New macros.
4826         (MEM_ALIAS_SET): Use MEM_ATTRS.
4827         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
4828         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
4829         (set_mem_alias_set): Delete decl from here.
4830
4831         * alias.c (set_mem_alias_set): Delete from here.
4832         * emit-rtl.c (mem_attrs_htab): New variable.
4833         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
4834         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
4835         (mem_attrs_mark, get_mem_attrs): Likewise.
4836         (gen_rtx_MEM): Clear MEM_ATTRS.
4837         (set_mem_attributes): Move to here.
4838         (set_mem_alias_set): Likewise, and call get_mem_attrs.
4839         (init_emit_once): const_int_htab now deletable htab.
4840         Initialize mem_attrs_htab.
4841         * explow.c (set_mem_attributes): Delete from here.
4842         * function.c (put_var_into_stack): Clear MEM_ATTRS.
4843         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
4844         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
4845         * reload1.c (reload): Rework changing REG to MEM.
4846
4847 2001-09-30  H.J. Lu <hjl@gnu.org>
4848
4849         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
4850         * config.in: Rebuild.
4851
4852 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4853
4854         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
4855         ("tsthi_1"): Avoid allocation in register y.
4856         ("*movqi_68hc12"): Reorganize and fix constraints.
4857         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
4858         ("addqi3"): Likewise.
4859         ("addhi3"): Fix constraints.
4860         ("*logicalhi3_zexthi"): Disparage soft registers.
4861
4862 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4863
4864         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
4865         to tmp reg.
4866
4867 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4868
4869         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
4870         that we use setjmp/longjmp exceptions.
4871
4872 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
4873
4874         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
4875         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
4876         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
4877         _cpp_pool_alloc, _cpp_next_chunk): Remove.
4878         (_cpp_extend_buff, BUFF_ROOM): Update.
4879         (_cpp_append_extend_buff): New.
4880         (struct cpp_reader): Remove macro_pool, add a_buff.
4881         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
4882         macro_pool.
4883         (cpp_destroy): Free a_buff instead of macro_pool.
4884         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
4885         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
4886         _cpp_pool_alloc, ): Remove.
4887         (parse_number, parse_string): Update use of _cpp_extend_buff.
4888         (_cpp_extend_buff): Update.
4889         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
4890         * cpplib.c (glue_header_name, parse_answer):
4891         Update use of _cpp_extend_buff.
4892         (cpp_register_pragma, cpp_register_pragma_space): Use
4893         _cpp_aligned_alloc.
4894         (do_assert, do_unassert): Check for EOL, update.
4895         * cppmacro.c (stringify_arg, collect_args): Update to use
4896         _cpp_extend_buff and _cpp_append_extend_buff.
4897         (save_parameter, parse_params, alloc_expansion_token,
4898         _cpp_create_definition): Rework memory management.
4899
4900 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
4901
4902         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
4903         update md_exec_prefix.
4904         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
4905         to string constant.
4906
4907 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4908
4909         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
4910         (SELECT_CC_MODE): Use s390_select_ccmode.
4911         * config/s390/s390-protos.h (s390_select_ccmode): Add.
4912         * config/s390/s390.c (s390_select_ccmode): New.
4913         (s390_match_ccmode): Add CCLmode.
4914         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
4915         (output_branch_condition, output_inverse_branch_condition): Removed.
4916         (print_operand): Use s390_branch_condition_mnemonic.
4917         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
4918         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
4919         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
4920
4921         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
4922         when converting conditional branches to far branches.
4923         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
4924         cmpint_di): Use CCSmode instead of CCUmode.
4925
4926         * config/s390/s390.c (legitimate_la_operand_p): New.
4927         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
4928         * config/s390/s390.md (movsi): Convert load address patterns to
4929         arithmetic operations when necessary.
4930         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
4931         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
4932         (*do_la_reg_0): Don't use before reload.
4933
4934         * config/s390/s390.c (legitimize_address): Make more efficient
4935         use of two-register addressing mode.
4936
4937         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
4938         with -mno-backchain in some corner cases.
4939
4940         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
4941
4942 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
4943
4944         * reload.c (find_reloads): Mark new USE insns with QImode.
4945         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
4946         find_reloads_subreg_address): Likewise.
4947         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
4948         encountered.
4949         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
4950         CLOBBERs.
4951         (reload): Make sure there are no USEs with mode other than
4952         VOIDmode.  At the end, remove those marked with QImode.
4953
4954 2001-09-29  Per Bothner  <per@bothner.com>
4955
4956         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
4957         * Makefile.in (includedir):  Rename to local_includedir.
4958         (includedir):  Define as $(prefix)/include.
4959         * config.in (PREFIX_INCLUDE_DIR):  New variable.
4960         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
4961
4962 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
4963
4964         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
4965         storehps builtins.
4966         * doc/extend.texi (Vector Extensions): New node.
4967         * doc/invoke.texi (Machine Dependent Options): Add documentation for
4968         i386 -mmmx, -msse, -m3dnow.
4969
4970 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
4971
4972         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
4973
4974 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
4975
4976         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
4977
4978         * doc/invoke.texi (Optimize Options): Delete spurious @table.
4979
4980 2001-09-28  Richard Henderson  <rth@redhat.com>
4981
4982         * varasm.c (assemble_integer): Bound alignment check by
4983         BIGGEST_ALIGNMENT.
4984
4985         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
4986
4987 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4988
4989         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
4990
4991 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
4992
4993         Mostly from Graham Stott  <grahams@redhat.com>
4994         * c-common.c (type_for_mode): Add support for V2SFmode.
4995         * tree.c (build_common_tree_nodes_2): Likewise.
4996         * tree.h (enum tree_index, global_trees): Likewise.
4997         * config/i386/i386.c (x86_3dnow_a): New variable.
4998         (override_options): Support 3Dnow extensions.
4999         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
5000         Athlon's version of 3Dnow.
5001         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
5002         (ix86_expand_builtin): Handle them.
5003         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
5004         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
5005         TARGET_3DNOW_A): New macros.
5006         (TARGET_SWITCHES): Add 3Dnow switches.
5007         (VALID_MMX_REG_MODE_3DNOW): New macro.
5008         (VECTOR_MODE_SUPPORTED_P): Use it.
5009         (enum ix86_builtins): Add entries for 3Dnow builtins.
5010         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
5011         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
5012         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
5013         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
5014         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
5015         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
5016         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
5017         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
5018         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
5019         sfence_insn, prefetch): Make these available if TARGET_SSE or
5020         TARGET_3DNOW_A.
5021
5022 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
5023
5024         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
5025         ix86_va_start, ix86_build_va_list): Declare.
5026         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
5027         ix86_va_start, ix86_build_va_list): New global functions.
5028         * i386.md (sse_prologue_save_insn): New insn.
5029         (sse_prologue_save): New expander.
5030         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
5031         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
5032
5033 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5034
5035         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
5036         Use size_t everywhere, make definitions consistent with
5037         prototypes.
5038
5039 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
5040
5041         * gcse.c (replace_store_insn): Use delete_insn.
5042         * loop.c (move_movables): Likewise; avoid delete_insn
5043         from clobbering notes moved elsewhere.
5044         (check_dbra_loop): Use delete_insn.
5045         * ssa.c (convert_from_ssa): Likewise.
5046         * cse.c (cse_insn): Use delete_insn.
5047
5048 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5049
5050         * cpphash.h (struct cpp_buff): Make unsigned.
5051         (_cpp_get_buff): Take length of size_t.
5052         (_cpp_unaligned_alloc): New.
5053         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
5054         (struct cpp_reader): Remove ident_pool.  Add u_buff.
5055         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
5056         (cpp_destroy): Destroy u_buff, not ident_pool.
5057         * cpplex.c (parse_number, parse_string, save_comment,
5058         cpp_token_as_text): Update to use the unaligned buffer.
5059         (new_buff): Make unsigned.
5060         (_cpp_unaligned_alloc): New.
5061         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
5062         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
5063         Similarly.
5064         (collect_args): Make unsigned.
5065
5066 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
5067
5068         * cpplex.c (cpp_output_token): Use a putc loop for
5069         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
5070
5071         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
5072         * configure, config.in: Regenerate.
5073         * system.h: Replace fwrite and fprintf with their unlocked
5074         variants if available.
5075
5076 2001-09-27  Richard Henderson  <rth@redhat.com>
5077
5078         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
5079         in favour of .eh_frame.
5080
5081 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
5082
5083         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
5084         to macros.
5085         (LIBCALL_VALUE): Likewise.
5086
5087 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5088
5089         * cpphash.h: Update comment.
5090         * cpplex.c: Update comments.
5091         (_cpp_can_paste): Remove.
5092         * cpplib.h (_cpp_can_paste): Remove.
5093         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
5094         lexer rather than _cpp_can_paste.
5095
5096 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5097
5098         * doc/cppinternals.texi: Update.
5099
5100 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5101
5102         * cpphash.h (struct cpp_pool): Remove locks and locked.
5103         (struct cpp_context): Add member buff.
5104         (struct cpp_reader): Remove member argument_pool.
5105         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
5106         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
5107         * cpplex.c (chunk_suitable): Remove pool argument.
5108         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
5109         (new_buff, _cpp_extend_buff): Update.
5110         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
5111         which buffer is returned.
5112         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
5113         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
5114         * cppmacro.c (lock_pools, unlock_pools): Remove.
5115         (push_ptoken_context): Take a _cpp_buff.
5116         (enter_macro_context): Pool locking removed.
5117         (replace_args): Use a _cpp_buff for the replacement list with
5118         arguments replaced.
5119         (push_token_context): Clear buff.
5120         (expand_arg): Use _cpp_pop_context.
5121         (_cpp_pop_context): Free a context's buffer, if any.
5122
5123 2001-09-26  DJ Delorie  <dj@redhat.com>
5124
5125         * c-typeck.c (digest_init): Check for sizeless arrays.
5126
5127 2001-09-26  Richard Henderson  <rth@redhat.com>
5128
5129         * optabs.c (init_one_libfunc): Create a dummy function type
5130         instead of using error_mark_node.
5131
5132 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5133
5134         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
5135         _cpp_extend_buff, _cpp_free_buff): New.
5136         (struct cpp_reader): New member free_buffs.
5137         * cppinit.c (cpp_destroy): Free buffers.
5138         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
5139         _cpp_extend_buff, _cpp_free_buff): New.
5140         * cpplib.h (struct cpp_options): Remove unused member.
5141         * cppmacro.c (collect_args): New.  Combines the old parse_arg
5142         and parse_args.  Use _cpp_buff for memory allocation.
5143         (funlike_invocation_p, replace_args): Update.
5144
5145 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
5146
5147         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
5148
5149 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
5150
5151         * except.c (sjlj_mark_call_sites): Change address inside sequence.
5152
5153 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
5154
5155         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
5156         glibc.
5157
5158 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
5159             Jim Wilson  <wilson@redhat.com>
5160
5161         * doc/install.texi (Specific, ia64-*-linux): Document.
5162
5163 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
5164
5165         * Makefile.in (cfgrtl.o): Add.
5166         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
5167         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
5168         free_aux_for_edge): Declare.
5169         * cfg.c
5170         (HAVE_return): Undefine.
5171         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
5172         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
5173         free_aux_for_edge): New global functions.
5174         (first_delete_block): New static variable.
5175         (init_flow): Clear first_delete_block.
5176         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
5177          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
5178          try_redirect_by_replacing_jump, last_loop_beg_note,
5179          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
5180          delete_insn, delete_insn_chain, create_basic_block_structure,
5181          create_basic_block, flow_delete_block, compute_bb_for_insn,
5182          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
5183          set_block_for_new_insns, split_block, merge_blocks_nomove,
5184          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
5185          redirect_edge_and_branch, force_nonfallthru_and_redirect,
5186          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
5187          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
5188          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
5189          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
5190          purge_all_dead_edges): Move to ....
5191         * cfgrtl.c: New file; .... Here.
5192
5193         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
5194         (reroder_basic_block): Use alloc_aux_for_blocks.
5195         * predict.c (estimate_bb_frequencies): Likewise; use
5196         alloc_aux_for_edges.
5197         * profile.c (compute_branch_probabilities): Likewise.
5198         (branch_prob): Likewise.
5199         * reg-stack.c (reg_to_stack): Likewise.
5200
5201         * emit-rtl.c (emit_insns_after): Never return NULL.
5202
5203         * basic-block.h (set_block_for_new_insns): Delete.
5204         * cfgrtl.c (set_block_for_new_insns): Delete.
5205
5206         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
5207         calls when crossjumping.
5208
5209         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
5210         * unroll.c (copy_loop_body): Use delete_insn.
5211
5212         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
5213         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
5214         keep_stack_depressed): Likewise.
5215         * gcse.c (cprop_cc0_jump): Likewise.
5216         * local-alloc.c (update_equiv_regs): Likewise.
5217         * loop.c (scan_loop, loop_delete_insns): Likewise.
5218         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
5219         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
5220         delete_output_reload, delete_address_reloads_1,
5221         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
5222         Likewise.
5223         * sibcall.c (replace_call_placeholder): Likewise.
5224         * cse.c (cse_insn): Likewise.
5225
5226 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
5227
5228         From Graham Stott  <grahams@redhat.com>
5229         (def_builtin): Only define builtins appropriate for target_flags.  All
5230         callers changed.
5231         (builtin_decsription): Add new field mask which is used to determine
5232         when to define the builtin via the macro def_builtin.
5233
5234         (bdesc_comi): Initialise new mask fields.
5235         (bdesc_2srg): Likewise.
5236         (bdesc_1arg): Likewise.
5237
5238         * config/i386/i386.c (ix86_init_builtins): Correct return type
5239         building v4hi_ftype_v4hi_int_int tree node.
5240         (ix86_expand_sse_comi): Fix typo swapping operands.
5241         Don't swap comparision condition, it is already swapped.
5242         (ix86_expand_sse_compare): Before swapping operands
5243         move operand 1 into new rtx and not the target rtx.
5244         Don't swap comparison condition, it is already swapped.
5245         Always check whether we need to create a new TARGET.
5246
5247         * config/i386/i386.md: (sse_comi) Fix typos.
5248         (sse_ucomi): Likewise.
5249         (cvtss2si): Fix operand 0 contraint.
5250         (cvttss2si): Likewise.
5251         (sse_unpckhps): Fix mode for operand 2.
5252         (sse_unpcklps): Likewise.
5253
5254 2001-09-25  Graham Stott  <grahams@redhat.com>
5255
5256         * sibcall.c (skip_copy_to_return_value): Tighten return value
5257         copy check.
5258
5259 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
5260
5261         * rs6000.c (lwa_operand): Address must be word aligned.
5262
5263 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5264
5265         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
5266         number has been set.
5267         (type_hash_mark): Mark type itself.
5268
5269 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5270
5271         * c-lex.c (cb_def_pragma): Update.
5272         (c_lex): Update, and skip padding.
5273         * cppexp.c (lex, parse_defined): Update, remove unused variable.
5274         * cpphash.h (struct toklist): Delete.
5275         (union utoken): New.
5276         (struct cpp_context): Update.
5277         (struct cpp_reader): New members eof, avoid_paste.
5278         (_cpp_temp_token): New.
5279         * cppinit.c (cpp_create_reader): Update.
5280         * cpplex.c (_cpp_temp_token): New.
5281         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
5282         (cpp_output_token): Don't print leading whitespace.
5283         (cpp_output_line): Update.
5284         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
5285         do_include_common, do_line, do_ident, do_pragma,
5286         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
5287         parse_assertion): Update.
5288         (get_token_no_padding): New.
5289         * cpplib.h (CPP_PADDING): New.
5290         (AVOID_LPASTE): Delete.
5291         (struct cpp_token): New union member source.
5292         (cpp_get_token): Update.
5293         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
5294         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
5295         replace_args, quote_string, stringify_arg, parse_arg, next_context,
5296         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
5297         _cpp_backup_tokens, _cpp_create_definition): Update.
5298         (push_arg_context): Delete.
5299         (padding_token, push_token_context, push_ptoken_context): New.
5300         (make_string_token, make_number_token): Update, rename.
5301         (cpp_get_token): Update to handle tokens as pointers to const,
5302         and insert padding appropriately.
5303         * cppmain.c (struct printer): New member prev.
5304         (check_multiline_token): Constify.
5305         (do_preprocessing, cb_line_change): Update.
5306         (scan_translation_unit): Update to handle spacing.
5307         * scan-decls.c (get_a_token): New.
5308         (skip_to_closing_brace, scan_decls): Update.
5309         * fix-header.c (read_scan_file): Update.
5310
5311         * doc/cpp.texi: Update.
5312
5313 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5314
5315         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
5316         leak by passing malloc'ed pointer to reconcat, not concat.
5317
5318 2001-09-24  DJ Delorie  <dj@redhat.com>
5319
5320         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
5321
5322 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
5323
5324         * flow.c (delete_dead_jumptables): Delete jumptable if the only
5325         reference is from the literal pool.
5326
5327 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
5328
5329         * doc/install.texi (Final install): Request additional information
5330         in mail about successful builds.
5331
5332 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5333
5334         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
5335         initial value of return pointer register instead of value in frame-20.
5336         Revise comments.
5337
5338 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5339
5340         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
5341         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
5342         the libcall if there isn't a referenced identifier for the symbol.
5343
5344 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5345
5346         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
5347         non 64-bit machines.  Use these as a plabel for the trampoline.
5348         (TRAMPOLINE_SIZE): Adjust size for new words.
5349         (INITIALIZE_TRAMPOLINE): Initialize new words.
5350         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
5351         pointer to the plabel in the trampoline.
5352
5353 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5354
5355         * pa.c (function_arg): Pass floating arguments in both general and
5356         floating registers in indirect (dynamic) calls when generating code
5357         for the 32 bit ABI and the HP assembler.
5358
5359 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5360
5361         * doc/install.texi: Markup fixes.
5362         Use Solaris 2, SunOS 4 as appropriate.
5363         (Specific, *-*-solaris2*): Explain this.
5364         Unconditionally warn against /usr/ucb tools.
5365         Remove Sun as warning, obsolete.
5366         Move X11 header bug workaround here, update patches.
5367         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
5368         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
5369
5370 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
5371
5372         * errors.h (warning, error, fatal, internal_error): Don't mark
5373         with ATTRIBUTE_PRINTF_n.
5374         * toplev.h (internal_error, fatal_io_error, warning, error,
5375         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
5376         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
5377         Likewise.
5378
5379 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5380
5381         * function.c (pop_function_context_from): var_refs_queue
5382         and temp slots now in GC memory.
5383         (mark_function_status, free_after_compilation): Likewise;
5384         also struct function now in GC memory.
5385         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
5386         (combine_temp_slots): Likewise.
5387         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
5388         (prepare_function_start): Use GC memory for struct function.
5389         (mark_temp_slot): Deleted.
5390         (gcc_mark_struct_function): struct function now in GC memory.
5391
5392         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
5393         code for division, not modulus.
5394
5395         * rtl.def (MEM): Remove obsolete part of comment.
5396
5397 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
5398
5399         * c-format.c (init_function_format_info): Check __builtin_printf
5400         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
5401         in gnu89 mode.
5402
5403 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5404
5405         * c-common.c (format_attribute_table): Remove decl.
5406         * tree.h (format_attribute_table, lang_attribute_table): New decls.
5407         (lang_attribute_common): Likewise.
5408
5409         * function.c (fix_lexical_address): Use set_mem_alias_set.
5410         (expand_function_start): Likewise.
5411         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
5412
5413         * varasm.c (output_constant): Fix unused variable warning.
5414
5415         * attribs.c: New file, from c-common.c.
5416         (attribute_tables): Now four elements.
5417         (format_attribute_table, lang_attribute_common): New variables.
5418         (init_attributes): Reflect above changes.
5419         (handle_mode_attribute): Delete check for wider than uintmax.
5420         * c-common.c: Delete parts moved to attribs.c.
5421         (enum attrs): Deleted; unused.
5422         (c_format_attribute_table): New variable.
5423         (c_common_lang_init): Initialize format_attribute_table with it.
5424         * c-common.h (decl_attributes): Remove decl.
5425         * tree.h (decl_attribute): Move it to here.
5426         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
5427         (attribs.o): New rule.
5428
5429 2001-09-22  Andreas Jaeger  <aj@suse.de>
5430
5431         * builtins.c (c_getstr): Remove unused variable.
5432
5433 2001-09-21  Richard Henderson  <rth@redhat.com>
5434
5435         * reload1.c (reload): Use delete_insn instead of splatting
5436         NOTE_INSN_DELETED.
5437
5438 2001-09-21  Richard Henderson  <rth@redhat.com>
5439
5440         * reload.c (push_secondary_reload): Don't check for "=" in output
5441         constraint after ""->ALL_REGS check.
5442
5443 2001-09-21  Richard Henderson  <rth@redhat.com>
5444
5445         * predict.c (expected_value_to_br_prob): Use pc_set.
5446
5447         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
5448         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
5449
5450 2001-09-21  Richard Henderson  <rth@redhat.com>
5451
5452         * rtl.h (LCT_RETURNS_TWICE): New.
5453         * calls.c (emit_call_1): Set current_function_calls_setjmp for
5454         ECF_RETURNS_TWICE.
5455         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
5456         to ECF_RETURNS_TWICE.
5457         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
5458         call to setjmp.
5459
5460         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
5461
5462         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
5463         (JMP_BUF_SIZE): New.
5464
5465 2001-09-21  Richard Henderson  <rth@redhat.com>
5466
5467         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
5468         to R8_REGS.
5469
5470 2001-09-21  Richard Henderson  <rth@redhat.com>
5471
5472         * tree.def (FDESC_EXPR): New.
5473         * expr.c (expand_expr): Handle it.
5474         * varasm.c (initializer_constant_valid_p): Likewise.
5475         (output_constant): Likewise.
5476         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
5477         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
5478         (ASM_OUTPUT_FDESC): New.
5479         * doc/tm.texi: Document the new macros.
5480
5481 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
5482
5483         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
5484         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
5485         once merging is complete.
5486
5487 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5488
5489         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
5490
5491 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
5492
5493         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
5494         that would be invalid after a merge.
5495
5496 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
5497
5498         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
5499         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
5500         remove some labels.
5501         (flow_delete_insn): This one.
5502         (delete_insn_chain): Rename from ...; do not care labels.
5503         (flow_delete_insn_chain): ... this one.
5504         (flow_delete_block): Remove the insns one BB has been expunged.
5505         (merge_blocks_nomove): Likewise.
5506         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
5507         updating BB boundaries.
5508         (tidy_fallthru_edge): Likewise.
5509         (commit_one_edge_insertion): Likewise.
5510         * cfgbuild.c (find_basic_block): Likewise.
5511         (find_basic_blocks_1): Likewise.
5512         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
5513         (try_crossjump_to_edge): Likewise.
5514         (try_optimize_cfg): Likewise.
5515         * cse.c (delete_trivially_dead_insns): Likewise.
5516         * df.c (df_insn_delete): Likewise.
5517         * doloop.c (doloop_modify): Use delete_related_insns.
5518         * emit-rtl.c (try_split): Likewise.
5519         (remove_insn): Update BB boundaries.
5520         * expect.c (connect_post_landing_pads): Use delete_related_insns.
5521         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
5522         updating BB boundaries.
5523         (propagate_block_delete_insn): Likewise.
5524         (propagate_block_delete_libcall): Likewise.
5525         * function.c (delete_handlers): Use delete_related_insns.
5526         (thread_prologue_and_epilogue_insns): Likewise.
5527         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
5528         * genpeep.c (gen_peephole): Use delete_related_insns.
5529         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
5530         BB boundaries.
5531         (find_cond_trap): Likewise.
5532         * integrate.c (save_for_inline): Use delete_related_insns.
5533         (copy_insn_list): Likewise.
5534         * jump.c (pruge_linie_number_notes): Likewise.
5535         (duplicate_loop_exit_test): Likewise.
5536         (delete_computation): Likewise.
5537         (delete_related_insn): Rename from ...; use delete_insn
5538         (delete_insn): ... this one.
5539         (redirect_jump): Use delete_related_insns.
5540         * loop.c (scan_loop): Likewise.
5541         (move_movables): Likewise.
5542         (find_and_verify_loops): Likewise.
5543         (check_dbra_loop): Likewise.
5544         * recog.c (peephole2_optimize): Likewise.
5545         * reg-stack.c (delete_insn_for_stacker): Remove.
5546         (move_for_stack_reg): Use delete_insn.
5547         * regmove.c (combine_stack_adjustments_for_block): Likewise.
5548         * reload1.c (delete_address_reloads): Use delete_related_insns.
5549         (fixup_abnormal_edges): Use delete_insn.
5550         * recog.c (emit_delay_sequence): Use delete_related_insns.
5551         (delete_from-delay_slot): Likewise.
5552         (delete_scheduled_jump): likewise.
5553         (optimize_skip): Likewise.
5554         (try_merge_delay_insns): Likewise.
5555         (full_simple_delay_slots): Likewise.
5556         (fill_slots_from_thread): Likewise.
5557         (relax_delay_slots): Likewise.
5558         (make_return_insns): Likewise.
5559         (dbr_schedule): Likewise.
5560         * rtl.h (delete_insn): Rename to delete_related_insns.
5561         (delete_insn, delete_insn_chain): New prototypes.
5562         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
5563         by df_insn_delete already.
5564         * ssa-dce.c (delete_insn_bb): Use delete_insn.
5565         * ssa.c (convert_from_ssa): Use delete_related_insns.
5566         * unroll.c (unroll_loop): Likewise.
5567         (calculate_giv_inc): Likewise.
5568         (copy_loop_body): Likewise.
5569
5570         * i386-protos.h (ix86_libcall_value, ix86_function_value,
5571         ix86_function_arg_regno_p, ix86_function_arg_boundary,
5572         ix86_return_in_memory, ix86_function_value): Declare.
5573         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
5574         new static valurables.
5575         (x86_64_reg_class): New enum
5576         (x86_64_reg_class_name): New array.
5577         (classify_argument, examine_argument, construct_container,
5578          merge_classes): New static functions.
5579         (optimization_options): Enable flag_omit_frame_pointer and disable
5580         flag_pcc_struct_return on 64bit.
5581         (ix86_libcall_value, ix86_function_value,
5582         ix86_function_arg_regno_p, ix86_function_arg_boundary,
5583         ix86_return_in_memory, ix86_function_value): New global functions.
5584         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
5585         (function_arg_advance): Handle x86_64 passing conventions.
5586         (function_arg): Likewise.
5587         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
5588         (RETURN_IN_MEMORY): Move offline.
5589         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
5590         (FUNCTION_VALUE_REGNO_P): New macro.
5591         (FUNCTION_ARG_REGNO_P): Move offline.
5592         (struct ix86_args): Add maybe_vaarg.
5593         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
5594         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
5595
5596 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
5597
5598         * s390.md: Changed attributes for scheduling.
5599         * s390.c: (s390_adjust_cost, s390_adjust_priority)
5600         Changed scheduling
5601
5602 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5603
5604         Table-driven attributes.
5605         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
5606         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
5607         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
5608         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
5609         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
5610         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
5611         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
5612         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
5613         * tree.h (struct tree_decl): Change machine_attributes to
5614         attributes.
5615         * doc/c-tree.texi: Document that all attributes are now attached
5616         to decls and types.
5617         * c-common.c (add_attribute, attrtab, attrtab_idx,
5618         default_valid_lang_attribute, valid_lang_attribute): Remove.
5619         (attribute_tables, attributes_initialized,
5620         c_common_attribute_table, default_lang_attribute_table): New
5621         variables.
5622         (handle_packed_attribute, handle_nocommon_attribute,
5623         handle_common_attribute, handle_noreturn_attribute,
5624         handle_unused_attribute, handle_const_attribute,
5625         handle_transparent_union_attribute, handle_constructor_attribute,
5626         handle_destructor_attribute, handle_mode_attribute,
5627         handle_section_attribute, handle_aligned_attribute,
5628         handle_weak_attribute, handle_alias_attribute,
5629         handle_no_instrument_function_attribute,
5630         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
5631         handle_no_limit_stack_attribute, handle_pure_attribute): New
5632         functions.
5633         (init_attributes, decl_attributes): Rewrite to implement
5634         table-driven attributes.
5635         * c-common.h (enum attribute_flags): Move to tree.h.
5636         * c-format.c (decl_handle_format_attribute,
5637         decl_handle_format_arg_attribute): Rename to
5638         handle_format_attribute and handle_format_arg_attribute.  Update
5639         for table-driven attributes.
5640         * c-common.h (decl_handle_format_attribute,
5641         decl_handle_format_arg_attribute): Remove prototypes.
5642         (handle_format_attribute, handle_format_arg_attribute): Add
5643         prototypes.
5644         * c-decl.c (grokdeclarator): Handle attributes nested inside
5645         declarators.
5646         * c-parse.in (setattrs, maybe_setattrs): Remove.
5647         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
5648         Update to handle nested attributes properly.
5649         (maybe_resetattrs, after_type_declarator,
5650         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
5651         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
5652         properly.
5653         (make_pointer_declarator): Update to handle nested attributes
5654         properly.
5655         * doc/extend.texi: Update documentation of limits of attributes
5656         syntax.  Warn about problems with attribute semantics in C++.
5657         * target.h (struct target): Remove valid_decl_attribute and
5658         valid_type_attribute.  Add attribute_table and
5659         function_attribute_inlinable_p.
5660         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
5661         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
5662         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
5663         Add.
5664         (TARGET_INITIALIZER): Update.
5665         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
5666         definition.
5667         (function_attribute_inlinable_p): New function.  Check for the
5668         presence of any machine attributes before using
5669         targetm.function_attribute_inlinable_p.
5670         (function_cannot_inline_p): Update.
5671         * Makefile.in (integrate.o): Update dependencies.
5672         * doc/tm.texi: Update documentation of target attributes and
5673         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
5674         * tree.c (default_valid_attribute_p, valid_machine_attribute):
5675         Remove.
5676         (default_target_attribute_table,
5677         default_function_attribute_inlinable_p): New.
5678         (lookup_attribute): Update comment to clarify handling of multiple
5679         attributes with the same name.
5680         (merge_attributes, attribute_list_contained): Allow multiple
5681         attributes with the same name but different arguments to appear in
5682         the same attribute list.
5683         * tree.h (default_valid_attribute_p): Remove prototype.
5684         (struct attribute_spec): New.
5685         (default_target_attribute_table): Declare.
5686         (enum attribute_flags): Move from c-common.h.  Add
5687         ATTR_FLAG_TYPE_IN_PLACE.
5688         (default_function_attribute_inlinable_p): Declare.
5689         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
5690         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5691         (TARGET_ATTRIBUTE_TABLE): Define.
5692         (vms_attribute_table): New.
5693         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
5694         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5695         (TARGET_ATTRIBUTE_TABLE): Define.
5696         (arc_attribute_table, arc_handle_interrupt_attribute): New.
5697         * config/arm/arm.c (arm_valid_type_attribute_p,
5698         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
5699         Remove.
5700         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
5701         define.
5702         (TARGET_ATTRIBUTE_TABLE): Define.
5703         (arm_attribute_table, arm_handle_fndecl_attribute,
5704         arm_handle_isr_attribute): New.
5705         * config/avr/avr.c (avr_valid_type_attribute,
5706         avr_valid_decl_attribute): Remove.
5707         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
5708         define.
5709         (TARGET_ATTRIBUTE_TABLE): Define.
5710         (avr_attribute_table, avr_handle_progmem_attribute,
5711         avr_handle_fndecl_attribute): New.
5712         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
5713         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5714         (TARGET_ATTRIBUTE_TABLE): Define.
5715         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
5716         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
5717         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5718         (TARGET_ATTRIBUTE_TABLE): Define.
5719         (h8300_attribute_table, h8300_handle_fndecl_attribute,
5720         h8300_handle_eightbit_data_attribute,
5721         h8300_handle_tiny_data_attribute): New.
5722         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
5723         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
5724         Remove prototypes.
5725         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
5726         declarations.
5727         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
5728         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
5729         define.
5730         (TARGET_ATTRIBUTE_TABLE): Define.
5731         (ix86_attribute_table, ix86_handle_cdecl_attribute,
5732         ix86_handle_regparm_attribute): New.
5733         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
5734         i386_pe_valid_type_attribute_p): Remove.
5735         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
5736         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
5737         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5738         (TARGET_ATTRIBUTE_TABLE): Define.
5739         (ia64_attribute_table): New.
5740         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
5741         interrupt_ident2, model_ident1, model_ident2): Remove.
5742         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5743         (TARGET_ATTRIBUTE_TABLE): Define.
5744         (init_idents): Update.
5745         (m32r_attribute_table, m32r_handle_model_attribute): New.
5746         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
5747         Remove.
5748         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5749         (TARGET_ATTRIBUTE_TABLE): Define.
5750         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
5751         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
5752         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5753         (TARGET_ATTRIBUTE_TABLE): Define.
5754         (mcore_attribute_table, mcore_handle_naked_attribute): New.
5755         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
5756         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5757         (TARGET_ATTRIBUTE_TABLE): Define.
5758         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
5759         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
5760         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
5761         (TARGET_ATTRIBUTE_TABLE): Define.
5762         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
5763         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
5764         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5765         (TARGET_ATTRIBUTE_TABLE): Define.
5766         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
5767         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5768         New.
5769         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
5770         Remove.
5771         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
5772         (TARGET_ATTRIBUTE_TABLE): Define.
5773         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
5774         New.
5775         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
5776         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
5777         (TARGET_ATTRIBUTE_TABLE): Define.
5778         (v850_attribute_table, v850_handle_interrupt_attribute,
5779         v850_handle_data_area_attribute): New.
5780         * config/v850/v850-c.c (mark_current_function_as_interrupt):
5781         Return void.  Call decl_attributes instead of
5782         valid_machine_attribute.
5783
5784 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
5785
5786         * sh-protos.h (sh_pr_n_sets): Declare.
5787         * sh.c (calc_live_regs): If the initial value for PR has been copied,
5788         look at the copy to determine if PR needs to be saved.
5789         sh_pr_n_sets: New function.
5790         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
5791         (ALLOCATE_INITIAL_VALUE): Define.
5792
5793         * sh.c (initial_elimination_offset):
5794         Fix RETURN_ADDRESS_POINTER_REGNUM case.
5795
5796 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
5797
5798         * integrate.c (allocate_initial_values): New function.
5799         * integrate.h (allocate_initial_values): Declare.
5800         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
5801         here...
5802         * reload1.c (reload): And initialization of reg_equiv_memory_loc
5803         from here...
5804         * toplev.c (rest_of_compilation): To here.
5805         Call allocate_initial_values.
5806         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
5807
5808 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5809
5810         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
5811
5812 2001-09-20  DJ Delorie  <dj@redhat.com>
5813
5814         * c-typeck.c (really_start_incremental_init): Discriminate
5815         between zero-length arrays and flexible arrays.
5816         (push_init_level): Detect zero-length arrays and handle them
5817         like fixed-sized arrays.
5818         * expr.c (store_constructor): Handle zero-length arrays and
5819         flexible arrays correctly.
5820         * doc/extend.texi: Update zero-length array notes.
5821
5822 2001-09-20  Jim Wilson  <wilson@redhat.com>
5823
5824         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
5825         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
5826         for issue port conflicts.
5827         (cycle_end_fill_slots): TYPE_L instructions take two slots.
5828
5829 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
5830
5831         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
5832         on ia64.
5833
5834 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5835
5836         * fold-const.c (hashtab.h): Include.
5837         (int_const_binop): Remove FORSIZE arg and compute from type; all
5838         callers changed.
5839         Call size_int_type_wide for all single-word constants.
5840         (size_htab_hash, size_htab_eq): New functions.
5841         (size_int_type_wide): Rework to use hash table.
5842         * ggc-common.c (hashtab.h): Include.
5843         (struct d_htab_root): New struct.
5844         (d_htab_roots): New variable.
5845         (ggc_add_deletable_htab, ggc_htab_delete): New functions
5846         (ggc_mark_roots): Handle deletable htabs.
5847         * ggc-page.c (ggc_marked_p): New function.
5848         * ggc-simple.c (ggc_marked_p): Likewise.
5849         * ggc.h: Reformatting throughout.
5850         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
5851         * tree.c (init_obstacks): Make type_hash_table a deletable root.
5852         (type_hash_add): Allocate struct type_hash from GC memory.
5853         (mark_hash_entry, mark_type_hash): Deleted.
5854         (type_hash_marked_p, type_hash_mark): New functions.
5855         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
5856
5857 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
5858
5859         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
5860         than SImode.
5861
5862 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5863
5864         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
5865         array-too-large test for signed sizetype.
5866
5867 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5868
5869         * i386.md (indirect_jump): Allow Pmode operand.
5870         (tablejump): LIkewise; perform expansion to 64bit mode.
5871         * i386.c (symbolic_operand): Allow 64bit PIC references.
5872         (pic_symbolic_operand): Likewise.
5873         (ix86_find_base_term): Strip the 64bit PIC references.
5874         (legitimate_pic_address_disp_p): Handle 64bit PIC.
5875         (legitimize_pic_address): Likewise.
5876         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
5877         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
5878
5879 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
5880
5881         * stringpool.c (get_identifier_with_length): New function.
5882         * tree.h (get_identifier_with_length): New prototype.
5883
5884 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
5885             David Edelsohn  <edelsohn@gnu.org>
5886
5887         Revert:
5888         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
5889         already sign-extended.
5890
5891         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
5892         * config/rs6000/rs6000.c (logical_operand): Always compare op as
5893         HOST_WIDE_INT.
5894         (rs6000_emit_set_long_const): Avoid unnecessary shift.
5895         (output_profile_hook): Declare label_name const.
5896         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
5897         to match constraints.
5898
5899 2001-09-19  Stan Shebs  <shebs@apple.com>
5900
5901         * alias.c: Fix typos in comments.
5902         * sched-rgn.c (init_ready_list): Ditto.
5903         * unwind-dw2.c (uw_frame_state_for): Ditto.
5904         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
5905         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
5906         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
5907
5908 2001-09-19  Richard Henderson  <rth@redhat.com>
5909
5910         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
5911         to the exit block.
5912         * Makefile.in (cfg.o): Depend on TM_P_H.
5913
5914 2001-09-19  Richard Henderson  <rth@redhat.com>
5915
5916         * config/alpha/alpha.c (local_symbol_p): Split out from ...
5917         (local_symbolic_operand): ... here.
5918         (small_symbolic_operand): Check mode.
5919         (global_symbolic_operand): New.
5920         (input_operand): Reject symbolics if explicit relocs.
5921         (call_operand): Tidy.
5922         (alpha_legitimize_address): Use movdi_er_high_g.
5923         (alpha_expand_mov): Likewise.
5924         * config/alpha/alpha-protos.h: Update.
5925         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5926         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
5927         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
5928         (UNSPECV_LDGP2): Remove.
5929         (all call patterns): Use 's' not 'i' for symbolic constraint.
5930         (call_osf call_value_osf): Use call_operand.
5931         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
5932         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
5933         (prologue_ldgp_1_er): Remove.
5934         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
5935         (builtin_setjmp_receiver_er patterns): Use them.
5936         (exception_receiver_er): Likewise.
5937
5938 2001-09-19  Richard Henderson  <rth@redhat.com>
5939
5940         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
5941
5942         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
5943         and NON_LOCAL_GOTO notes.
5944         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
5945         copy over CALL_INSN_FUNCTION_USAGE.
5946
5947 2001-09-18  Catherine Moore  <clm@redhat.com>
5948
5949         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
5950         Define as 0.
5951
5952 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
5953
5954         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
5955         new-style tm_file specification.  Specify correct tm_p_file,
5956         md_file, and out_file for s390x.
5957
5958         * config/s390/linux.h, linux64.h:  Don't include other target
5959         macro header files.  Now handled via tm_file.
5960
5961         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
5962         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
5963         are defined before use.
5964
5965 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
5966
5967         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
5968         code generation only for Gnu assembler.
5969
5970 2001-09-18  Catherine Moore  <clm@redhat.com>
5971
5972         * config/stormy16 (LIB_SPEC): Remove -lnosys.
5973
5974 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
5975
5976         * config/mips/mips.c (mips_frame_set): New.
5977         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
5978         a parallel frame-related expression with a set for each register.
5979
5980 2001-09-18  Philip Blundell  <philb@gnu.org>
5981
5982         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
5983         header files.
5984
5985 2001-09-17  Dale Johannesen  <dalej@apple.com>
5986
5987         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
5988         * config/rs6000/aix.h (FIXED_R2): Define.
5989         * config/rs6000/darwin.h (FIXED_R2): Define.
5990         * config/rs6000/sysv4.h (FIXED_R2): Define.
5991
5992 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
5993
5994         * except.c (dw2_build_landing_pads): New local
5995         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
5996         barrier after clobbers.  Fixes c++/4012.
5997
5998 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5999
6000         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
6001
6002 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6003
6004         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
6005         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
6006
6007 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6008
6009         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
6010         alloca/strcpy.
6011
6012 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6013
6014         * cpphash.h (_cpp_lex_direct): New.
6015         * cpplex.c (_cpp_lex_token): Update.
6016         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
6017         and increment that pointer.
6018         * cppmacro.c (alloc_expansion_token): New.
6019         (lex_expansion_token): Lex macro expansion directly into
6020         macro storage.
6021
6022 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
6023
6024         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
6025
6026 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
6027
6028         * basic-block.h (free_bb_for_insn): Declare.
6029         * bb-reorder.c (label_for_bb): Use block_label.
6030         (emit_jump_to_block_after): Remove.
6031         (insert_intra_1): Do not update block_for_insn.
6032         (insert_inter_bb_scope_notes): Likewise; update bb->end
6033         * cfg.c (free_bb_for_insn): New.
6034         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
6035         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
6036         (commit_one_edge_insertion): Likewise.
6037         (commit_one_edge_insertion): Do not update BB boundary.
6038         (commit_edge_insertions): Do not call compute_bb_for_insn.
6039         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
6040         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
6041         (merge_blocks_move_successor_nojumps): Likewise.
6042         (try_crossjump_to_edge): Do not update block_for_insn.
6043         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
6044         * df.c (df_pattern_emit_later): Do not update BB boundary.
6045         (df_jump_pattern_emit_after): Likewise.
6046         (df_insn_move_before): Use emit_insn_before.
6047         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
6048          properly.
6049         (add_insn_after, add_insn_before, emit_insns_after): Update BB
6050         boundaries and basic_block_for_insn.
6051         (reorder_insns_nobb): Rename from reorder_insns.
6052         (reorder_insns): New.
6053         (emit_block_insn_before, emit_block_insn_after): Kill.
6054         * flow.c (check_function_return_warnings): Do not call
6055         compute_bb_for_insn; Do not free basic_block_for_insn.
6056         (attempt_auto_inc): Do not update basic_block_for_insn.
6057         * function.c (emit_return_into_block): Likewise;
6058         do not update BB boundaries.
6059         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
6060         (insert_insn_end_bb): Use emit_insn_before; Likewise.
6061         (pre_insert_copy_insn): Likewise.
6062         (update_ld_motion_notes): Likewise.
6063         (insert_insn_start_bb): Likewise.
6064         (replace_store_insn): Likewise.
6065         * ifcvt.c (noce_process_if_block): Likewise.
6066         (if_convert): Do not call compute_bb_for_insn.
6067         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
6068         Use emit_insn_before and emit_insn_after.
6069         * recog.c (split_all_insns): Do not update BB boundaries;
6070         Do not call compute_bb_for_insn.
6071         (peephole2_optimize): Do not update BB boundaries.
6072         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
6073         emit_insn_before.
6074         (emit_swap_insn): Likewise.
6075         (convert_regs_1): Likewise.
6076         * reload1.c (reload): Call compute_bb_for_insn.
6077         * rtl.h (reorder_insns_nobb): Declare.
6078         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
6079         * toplev.c (rest_of_compilation): Call free_bb_for_insn
6080         at places CFG is invalidated; do not call compute_bb_for_insn.
6081
6082         * cfg.c (expunge_block): Invalidate BB structure.
6083
6084         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
6085         array.
6086
6087         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
6088
6089 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6090
6091         * cpphash.h (_cpp_lex_token): Update prototype.
6092         * cpplex.c (_cpp_lex_token): New prototype.
6093         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
6094         lex_macro_node, read_flag, do_pragma_poison): Update.
6095         * cppmacro.c (cpp_get_token, parse_params,
6096         lex_expansion_token): Update.
6097
6098 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6099
6100         * cppmain.c (scan_translation_unit): Don't worry about
6101         putting a space after hashes.
6102         * cpplib.c (directive_diagnostics): New.
6103         (_cpp_handle_directive): Update to use directive_diagnostics.
6104         (run_directive): Don't toggle prevent_expansion.
6105         (do_line): Backup in case of the line extension.
6106         * cpplib.h (cpp_lexer_pos): Remove.
6107         * cppmacro.c (_cpp_create_definition): Precede a leading #
6108         with whitespace.
6109
6110 2001-09-15  Richard Henderson  <rth@redhat.com>
6111
6112         * c-typeck.c (comptypes): Handle zero-length arrays properly.
6113
6114 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6115
6116         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
6117
6118 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6119
6120         PR preprocessor/3571
6121         * tradcpp.c (handle_directive): Skip non-vertical space.
6122
6123 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6124
6125         * cppmain.c (setup_callbacks): Set line callback only
6126         if outputting preprocessed source.
6127
6128 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6129
6130         * collect2.c (main): Const-ification.
6131         * gcc.c (translate_options, process_command): Use xstrdup in
6132         lieu of xmalloc/strcpy.
6133         (main): Use concat in lieu of xmalloc/strcpy/strcat.
6134
6135 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6136
6137         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
6138         example.
6139
6140 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6141
6142         * scan-decls.c (scan_decls): Fix typo.
6143
6144 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6145
6146         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
6147         Split mlstring_pos into mls_line and mls_col.
6148         * cppinit.c (cpp_create_reader): Initialize line to 1.
6149         (cpp_destroy): Free tokenruns.
6150         (push_include): Don't update lexer_pos.
6151         * cpplex.c (unterminated, parse_string): Update.
6152         (lex_token): Don't update lexer_pos, update.
6153         * cpplib.c (if_stack): Save line instead of line + col.
6154         (start_directive, _cpp_do__Pragma, do_else, do_elif,
6155         push_conditional, _cpp_pop_buffer): Update.
6156         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
6157         (_cpp_create_definition): Update.
6158
6159 2001-09-15  Eric Christopher  <echristo@redhat.com>
6160
6161         * config/mips/abi64.h: Add support for MEABI.
6162
6163 2001-09-15  Eric Christopher  <echristo@redhat.com>
6164
6165         * config/mips/mips.md: Add unspec #2.
6166         (reload_indi): Use.
6167         (reload_outdi): Ditto.
6168         (reload_outsi): Ditto.
6169         (HILO_delay): New.
6170
6171 2001-09-15  Eric Christopher  <echristo@redhat.com>
6172             Jason Eckhardt  <jle@redhat.com>
6173
6174         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
6175         * config/mips/isa32-linux.h: New file.
6176         * config/mips/isa3264.h: Ditto.
6177         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
6178         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
6179         (output_block_mode): Support MEABI.
6180         (function_arg): Ditto. Fix floating point arg passing.
6181         (mips_va_start): Ditto.
6182         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
6183         processors.
6184         (mips_asm_file_start): Add new section to pass abi to gdb.
6185         (function_arg_pass_by_reference): Support MEABI.
6186         (mips_parse_cpu): Support mips32 and mips64 processors.
6187         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
6188         TARGET_MIPS5KC.  Support isa32 and isa64.
6189         (processor_type): Add r4kc, r5kc, r20kc.
6190         (GENERATE_MULT3_SI): New.
6191         (GENERATE_MULT3_DI): Ditto.
6192         (GENERATE_MULT3): Remove.
6193         (ISA_HAS_64BIT_REGS): Add isa == 64.
6194         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
6195         (ISA_HAS_MADD_MSUB): New.
6196         (ISA_HAS_CLZ_CLO): Ditto.
6197         (ISA_HAS_DCLZ_DCLO): Ditto.
6198         (ABI_GAS_ASM_SPEC): New.
6199         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
6200         (ASM_SPEC): Ditto.
6201         (LINK_SPEC): Ditto.
6202         (SUBTARGET_CC1_SPEC): Ditto.
6203         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
6204         (PAD_VARARGS_DOWN): Support MEABI.
6205         (HARD_REGNO_NREGS): Move to mips.c.
6206         (ASM_OUTPUT_IDENT): Add #undef.
6207         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
6208         (mulsi3): Use GENERATE_MULT3_SI.
6209         (mulsi3_mult3): Ditto.  Support mips32, mips64.
6210         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
6211         (mul_sub_si): New pattern.
6212         (unnamed splitters): New.
6213         (muldi3): Use GENERATE_MULT3_DI.
6214         (muldi3_internal2): Ditto.
6215         (movdicc): Support mips32.
6216         * config/mips/t-isa3264: New file.
6217
6218 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
6219
6220         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
6221         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
6222         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
6223
6224         * reorg.c (fill_slots_from_thread): After call to
6225         steal_delay_list_from_target, update own_thread as new_thread may
6226         have branched.
6227
6228 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6229
6230         * cpperror.c (print_location): Take line and column, for
6231         default positioning use the previously lexed token.
6232         (_cpp_begin_message): Take line and column.
6233         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6234         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
6235         * cpphash.h (_cpp_begin_message): Update prototype.
6236         * cppinit.c (push_include): Don't set output line.
6237         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
6238         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
6239         (do_pragma): Kludge for front ends.  Don't expand macros at all.
6240         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
6241         (struct cpp_token): Remove output_line.
6242         (struct cpp_callbacks): New member line_change.
6243         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
6244         cpp_get_token): Preserve BOL flag.
6245         (cpp_get_line): Remove.
6246         (_cpp_backup_tokens): Remove useless abort().
6247         * cppmain.c (cb_line_change): New.
6248         (scan_translation_unit): Don't worry about starting new lines here.
6249         * scan-decls.c (scan_decls): Update.
6250         * c-lex.c (c_lex, init_c_lex): Update.
6251         (cb_line_change, src_lineno): New.
6252
6253 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
6254
6255         * tree.c (append_random_chars): Generate the random
6256         characters in a reproducable fashion.
6257
6258 2001-09-14  Richard Henderson  <rth@redhat.com>
6259
6260         * config/i386/i386.c (internal_label_prefix): New.
6261         (internal_label_prefix_len): New.
6262         (override_options): Set them.
6263         (local_symbolic_operand): New.
6264         (legitimate_pic_address_disp_p): Use it.
6265         (legitimize_pic_address): Likewise.
6266
6267 2001-09-14  Marc Espie <espie@openbsd.org>
6268
6269         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
6270         correctly.
6271
6272 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6273
6274         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
6275         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
6276
6277 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
6278
6279         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
6280         invocation of SUBREG_REGNO_OFFSET.
6281
6282         * haifa-sched.c: Fix typo in FSF copyright statement.
6283         * sched-deps.c: Fix typo in FSF copyright statement.
6284         * sched-ebb.c: Fix typo in FSF copyright statement.
6285         * sched-rgn.c: Fix typo in FSF copyright statement.
6286         * sched-vis.c: Fix typo in FSF copyright statement.
6287
6288         * config.gcc: Move inclusion of arm elf specific header files
6289         from the files themselves into the tm_file variable.  Make
6290         sure that elfos.h is included before target specific elf
6291         headers.
6292         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
6293         already defined.
6294         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
6295         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
6296         ASM_OUTPUT_CASE_LABEL): Protect definition.
6297         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
6298         not already defined.
6299         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
6300         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
6301         Remove duplicate definition.
6302         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
6303         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
6304         (RDATA_SECTION_FUNCTION): Remove redundant definition.
6305         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
6306         Remove inclusion of arm/elf.h.
6307         * config/arm/unknown-elf.h: as for conix-elf.h.
6308         (STARTFILE_SPEC): Include crti.o and crtn.o.
6309         * config/arm/linux-elf.h: as for conix-elf.h.
6310         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
6311         * config/arm/strongarm-elf.h: Remove inclusion of
6312         unknown-elf.h.
6313         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
6314         * config/arm/unknown-elf-oabi.h: Remove inclusion of
6315         unknown-elf.h and elf.h.
6316         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
6317         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
6318         ASM_WEAKEN_LABEL): Remove redundant definition.
6319         * config/arm/elf.h: Test for inclusion of elfos.h
6320         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
6321         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
6322         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
6323         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
6324         redundant definition.
6325         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
6326         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
6327         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
6328         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
6329         Add rules to build crti.o and crtn.o
6330         * crti.asm: New file.
6331         * crtn.asm: New file.
6332
6333 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6334
6335         * c-parse.in (_yylex): Use _cpp_backup_tokens.
6336         * cpphash.h (struct tokenrun): Add prev.
6337         (struct lexer_state): Remove bol.
6338         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
6339         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
6340         : Remove.
6341         * cppinit.c (cpp_create_reader): Don't set bol.
6342         (cpp_destroy): Don't free lookaheads.
6343         * cpplex.c (lex_directive): Remove.
6344         (next_tokenrun): Update.
6345         (_cpp_lex_token): Clean up logic.
6346         (lex_token): Update to return a pointer to lexed token, since it
6347         can move to the start of the buffer.  Simpify newline handling.
6348         * cpplib.c (SEEN_EOL): Update.
6349         (skip_rest_of_line): Remove lookahead stuff.
6350         (end_directive): Line numbers are already incremented.  Revert
6351         to start of lexed token buffer if we can.
6352         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
6353         parse_answer): Use _cpp_backup_tokens.
6354         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
6355         instead.  Don't check for EOL.
6356         (do_include_common, do_line, do_pragma_system_header): Use
6357         skip_rest_of_line.
6358         * cpplib.h (BOL, _cpp_backup_tokens): New.
6359         * cppmacro.c (save_lookahead_token, take_lookahead_token,
6360         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
6361         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
6362         (builtin_macro): Don't use cpp_get_line.
6363         (cpp_get_line): Short term kludge.
6364         (parse_arg): Handle directives in arguments here.  Back up when
6365         appropriate.  Store EOF at end of argument list.
6366         (funlike_invocation_p): Use _cpp_backup_tokens.
6367         (push_arg_context): Account for EOF at end of list.
6368         (cpp_get_token): Remove lookahead stuff.  Update.
6369
6370 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6371
6372         * c-parse.in (yyerror): Const-ification and/or static-ization.
6373         * c-typeck.c (push_member_name): Likewise.
6374         * collect2.c (main): Likewise.
6375         * dbxout.c (dbxout_parms): Likewise.
6376         * diagnostic.c (format_with_decl): Likewise.
6377         * dwarf2out.c (output_ranges): Likewise.
6378         * dwarfout.c (fundamental_type_code): Likewise.
6379         * except.c (dw2_output_call_site_table): Likewise.
6380         * gcc.c (do_spec_1): Likewise.
6381         * genopinit.c (optabs): Likewise.
6382         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
6383         gen_declaration_1, handle_impent): Likewise.
6384         * protoize.c (default_include, in_system_include_dir, abspath):
6385         Likewise.
6386         * sched-vis.c (visualize_stall_cycles): Likewise.
6387         * sdbout.c (plain_type_1, sdbout_end_function,
6388         sdbout_end_epilogue): Likewise.
6389         * varasm.c (decode_reg_name): Likewise.
6390
6391         * 1750a.c (mod_regno_adjust): Likewise.
6392         * alpha.c (alpha_write_one_linkage,
6393         unicosmk_output_default_externs): Likewise.
6394         * arm.c (arm_condition_codes): Likewise.
6395         * arm.h (arm_condition_codes): Likewise.
6396         * avr.c (output_movsisf, encode_section_info): Likewise.
6397         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
6398         Likewise.
6399         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
6400         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
6401         * m88k.c (output_function_profiler): Likewise.
6402         * mips.c (mips_output_conditional_branch): Likewise.
6403         * ns32k.c (ns32k_out_reg_names): Likewise.
6404         * ns32k.h (ns32k_out_reg_names): Likewise.
6405         * pj.c (pj_output_rval): Likewise.
6406         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
6407         * sparc.c (sparc_flat_function_prologue,
6408         sparc_flat_function_epilogue): Likewise.
6409
6410 2001-09-13  Markus Werle <numerical.simulation@web.de>
6411             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6412
6413         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
6414         Aachen University of Technology".
6415
6416 2001-09-13  Andreas Schwab  <schwab@suse.de>
6417
6418         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
6419         C99.
6420
6421 2001-09-13  Richard Henderson  <rth@redhat.com>
6422
6423         * config/alpha/alpha.c (small_symbolic_operand): New.
6424         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
6425         (some_operand, input_operand): Don't handle HIGH.
6426         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
6427         (alpha_expand_mov): Likewise.
6428         (print_operand) [H]: Just print HIGH symbol.
6429         (print_operand_address): Handle small data.
6430         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
6431         (TARGET_SWITCHES): Add -msmall-data/large-data.
6432         (PIC_OFFSET_TABLE_REGNUM): New.
6433         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
6434         (PREDICATE_COES): Update.
6435         * config/alpha/alpha.md (adddi_er_high): New.
6436         (adddi_er_low): Handle small data.
6437         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
6438         prefer .sdata to .rodata.
6439         (SELECT_RTX_SECTION): Likewise.
6440
6441 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
6442
6443         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
6444         defining __size_t and leaving size_t undefined.
6445
6446 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
6447
6448         * basic-block.h (expunge_block): Declare.
6449         * cfg.c (expunge_block): Remove static declaration.
6450
6451 2001-09-12  Richard Henderson  <rth@redhat.com>
6452
6453         * integrate.c (copy_insn_list): Copy label name from
6454         NOTE_INSN_DELETED_LABEL.
6455
6456 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6457
6458         * c-common.c (c_tree_code_name): Const-ification.
6459         * c-decl.c (c_decode_option): Likewise.
6460         * c-typeck.c (warn_for_assignment): Likewise.
6461         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
6462         Likewise.
6463         * cppinit.c (output_deps): Likewise.
6464         * dependence.c (dependence_string, direction_string): Likewise.
6465         * dwarf2out.c (output_ranges): Likewise.
6466         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
6467         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
6468         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
6469         standard_startfile_prefix, standard_startfile_prefix_1,
6470         standard_startfile_prefix_2, tooldir_base_prefix,
6471         standard_bindir_prefix, find_a_file): Likewise.
6472         * genattrtab.c (make_length_attrs): Likewise.
6473         * gencheck.c (tree_codes): Likewise.
6474         * genemit.c (gen_split): Likewise.
6475         * genrecog.c (special_mode_pred_table): Likewise.
6476         * graph.c (graph_ext): Likewise.
6477         * protoize (default_include): Likewise.
6478         * reload.c (reload_when_needed_name): Likewise.
6479         * sched-vis.c (visualize_stall_cycles): Likewise.
6480         * tlink.c (recompile_files): Likewise.
6481         * toplev.c (decode_g_option): Likewise.
6482         * tradcpp.c (output_deps): Likewise.
6483         * varasm.c (decode_reg_name): Likewise.
6484
6485         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
6486         Const-ification.
6487         * arm.md: Likewise.
6488         * avr.c (avr_regnames, encode_section_info): Likewise.
6489         * c4x.c (float_reg_names): Likewise.
6490         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
6491         * elfos.h (const_section): Likewise.
6492         * i386.c (ix86_comp_type_attributes): Likewise.
6493         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
6494         * ia64/aix.h (UNIQUE_SECTION): Likewise.
6495         * ia64.c (type_names): Likewise.
6496         * m68hc11.c (reg_class_names): Likewise.
6497         * m88k.c (m_options): Likewise.
6498         * mips.c (mips_output_conditional_branch, mips_unique_section):
6499         Likewise.
6500         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6501         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
6502         ultra_code_names): Likewise.
6503         * sparc.h (OVERRIDE_OPTIONS): Likewise.
6504
6505 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
6506
6507         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
6508         Use --fatal-warnings option for gas.
6509         * configure: Rebuilt.
6510
6511 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6512
6513         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
6514
6515 2001-09-11  Jim Wilson  <wilson@redhat.com>
6516
6517         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
6518
6519 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6520
6521         * builtins.c (c_strlen): Treat an offset too large for a
6522         HOST_WIDE_INT as out of range.
6523
6524 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
6525
6526         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
6527         (EDGE_CRITICAL_P): New predicate.
6528         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
6529         handling.
6530         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
6531         (dump_edge_info): Remove "crit".
6532         * cfganal.c (mark_critical_edges): Kill.
6533         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
6534         * cfgcleanup.c (cleanup_cfg): Likewise.
6535         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
6536         (find_spanning_tree): Likewise.
6537         * reg-stack.c (convert_regs_1): Likewise.
6538         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
6539
6540         * basic-block.h (create_basic_block_structure): New.
6541         (create_basic_block): Update prototype.
6542         (force_nonfallthru): New.
6543         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
6544         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
6545         handle updating of block_for_insn, creating of empty BBs and BBs at
6546         the end of INSN chain.
6547         (create_basic_block): New function.
6548         (split_block): Use create_basic_block.
6549         (force_nonfallthru_and_redirect): Break out from ...; cleanup
6550         (redirect_edge_and_branch_force): ... here.
6551         (force_nonfallthru): New.
6552         (split_edge): Rewrite to use force_nonfallthru and create_block.
6553         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
6554         (find_basic_blocks): Free basic_block_for_insn.
6555         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
6556
6557         * cfg.c: Fix formating.
6558         * cfgcleanup.c: Fix formating.
6559         (merge_blocks, tail_recursion_label_p): Return bool.
6560         (merge_blocks_move_predecessor_nojumps,
6561          merge_blocks_move_successor_nojumps): Return void.
6562
6563 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
6564
6565         * configure.in: Check whether assembler supports section merging.
6566         * config.in: Rebuilt.
6567         * configure: Rebuilt.
6568         * varasm.c (variable_section, output_constant_pool): Pass alignment
6569         to SELECT_SECTION and SELECT_RTX_SECTION.
6570         (mergeable_string_section): New.
6571         (mergeable_constant_section): New.
6572         (default_elf_asm_named_section): Output SECTION_MERGE and
6573         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
6574         * output.h (mergeable_string_section): New.
6575         (mergeable_constant_section): New.
6576         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
6577         * toplev.c (flag_merge_constants): New.
6578         (f_options): Add -fmerge-constants and -fmerge-all-constants
6579         options.
6580         (toplev_main): Default to -fno-merge-constants if not optimizing.
6581         * flags.h (flag_merge_constants): Add extern.
6582         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
6583         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
6584         argument.
6585         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
6586         Define if assembler has working .subsection -1 support.
6587         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
6588         Put constant into special SHF_MERGE sections if the linker should
6589         attempt to merge duplicates.
6590         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
6591         macro argument.
6592         Put constant into special SHF_MERGE sections if the linker should
6593         attempt to merge duplicates.
6594         * config/alpha/elf.h: Likewise.
6595         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
6596         has working .subsection -1 support.
6597         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
6598         SELECT_SECTION.
6599         * config/svr3.h: Likewise.
6600         * config/darwin.h: Likewise.
6601         * config/arm/aof.h: Likewise.
6602         * config/arm/linux-elf.h: Likewise.
6603         * config/avr/avr.h: Likewise.
6604         * config/c4x/c4x.h: Likewise.
6605         * config/d30v/d30v.h: Likewise.
6606         * config/i386/dgux.h: Likewise.
6607         * config/i386/osfrose.h: Likewise.
6608         * config/i386/sco5.h: Likewise.
6609         * config/i386/svr3gas.h: Likewise.
6610         * config/ia64/aix.h: Likewise.
6611         * config/m32r/m32r.h: Likewise.
6612         * config/m68k/m68k.h: Likewise.
6613         * config/m88k/dgux.h: Likewise.
6614         * config/m88k/m88k.h: Likewise.
6615         * config/mcore/mcore-pe.h: Likewise.
6616         * config/mips/mips.h: Likewise.
6617         * config/pa/pa.h: Likewise.
6618         * config/pa/pa-linux.h: Likewise.
6619         * config/romp/romp.h: Likewise.
6620         * config/rs6000/sysv4.h: Likewise.
6621         * config/rs6000/xcoff.h: Likewise.
6622         * config/s390/linux.h: Likewise.
6623         * config/sparc/sparc.h: Likewise.
6624         * config/sparc/sysv4.h: Likewise.
6625         * config/stormy16/stormy16.h: Likewise.
6626         * config/v850/v850.h: Likewise.
6627         * config/vax/vms.h: Likewise.
6628         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
6629         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
6630         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
6631         default_elf_asm_named_section for SHF_MERGE sections.
6632
6633 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6634
6635         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
6636         is OK.
6637
6638 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
6639
6640         * c-common.c (split_specs_attrs): Allow for empty attributes with
6641         empty TREE_PURPOSE.  Fixes PR c/4294.
6642
6643 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
6644
6645         * basic-block.h (cached_make_edge, make_single_succ): New.
6646         (make_edge): Remove first parameter.
6647         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
6648         * cfg.c (cached_make_edge): Rename from make_edge; return newly
6649         created edge; use obstack allocation.
6650         (make_edge, make_single_succ_edge): New.
6651         (first_removed_edge): New static variable.
6652         (init_flow): Initialize first_removed_edge and n_edges.
6653         (clear_edges): Use remove_edge.
6654         (flow_delete_block): Likewise.
6655         (remove_edge): Add removed edges to the removed edges list.
6656         (split_block, redirect_edge_and_branch_force, split_edge):
6657         Use make_edge.
6658         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
6659         (add_noreturn_fake_exit_edges): Likewise.
6660         (connect_infinite_loops_to_exit): Liekwise.
6661         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
6662         Use cached_make_edge.
6663         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
6664         * profile.c (branch_prob): Update make_edge call.
6665         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6666
6667 2001-09-11  Richard Henderson  <rth@redhat.com>
6668
6669         * config/alpha/alpha.c: Tidy formatting.
6670         (local_symbolic_operand): Verify mode.
6671         (alpha_sa_mask): Ignore unicos for eh_return.
6672         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
6673         * config/alpha/alpha.md (umk divsi patterns): Remove.
6674         (extendsfdf2): Remove unicos check.
6675         (tablejump): Merge vms and unicos code; always use direct set
6676         plus label_ref use.
6677
6678 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6679
6680         * config.gcc (alpha*-*-unicosmk*): New target.
6681
6682         * config/alpha/alpha-protos.h (symbolic_operand,
6683         unicosmk_add_call_info_word, unicosmk_add_extern,
6684         unicosmk_defer_case_vector, unicosmk_unique_section,
6685         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
6686         unicosmk_asm_file_start, unicosmk_asm_file_end,
6687         unicosmk_output_common): Declare.
6688
6689         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
6690         direct_return, function_arg, alpha_va_start, alpha_va_arg,
6691         alpha_does_function_need_gp, alpha_end_function): Support Cray
6692         Unicos/Mk.
6693         (alpha_init_machine_status, alpha_mark_machine_status,
6694         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
6695         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
6696         unicosmk_asm_named_section, unicosmk_insert_attributes,
6697         unicosmk_section_type_flags, symbolic_operand,
6698         unicosmk_output_module_name, unicosmk_output_default_externs,
6699         unicosmk_output_dex, unicosmk_output_externs,
6700         unicosmk_output_addr_vec, unicosmk_ssib_name,
6701         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
6702         unicosmk_asm_file_end, unicosmk_output_common,
6703         unicosmk_section_type_flags, unicosmk_unique_section,
6704         unicosmk_add_call_info_word, unicosmk_text_section,
6705         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
6706         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
6707         unicosmk_dex_count, unicosmk_special_name): New.
6708         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
6709         TARGET_ABI_UNICOSMK.
6710         (get_aligned_mem, alpha_expand_unaligned_load,
6711         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
6712         alpha_expand_unaligned_store_words): Support big-endian mode.
6713         (print_operand): Likewise. New format specifier 't'. Use
6714         TARGET_AS_SLASH_BEFORE_SUFFIX.
6715         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
6716         (alpha_pv_save_size): Update with above change.
6717         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
6718         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
6719         Unicos/Mk.
6720
6721         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
6722         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
6723         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
6724         (EXTRA_CONSTRAINT): New constraint 'U'.
6725         (PREDICATE_CODES): Add symbolic_operand.
6726
6727         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
6728         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
6729         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
6730         (integer division and modulus patterns): Split in default and
6731         Unicos/Mk versions.
6732         (*divmodsi_internal, *divmoddi_internal): Disable for
6733         TARGET_ABI_UNICOSMK.
6734         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
6735         little-endian and big-endian versions.
6736         (ext, ins, msk): Likewise.
6737         (extv, extzv, insv): Support big-endian mode.
6738         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
6739         (call_umk, call_value_umk, *call_umk, tablejump_umk,
6740         *tablejump_umk_internal, *call_value_umk): New.
6741         (*movdi_nofix): Add pattern for loading an address into a register on
6742         TARGET_ABI_UNICOSMK.
6743         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
6744         (umk_mismatch_args, arg_home_umk): New.
6745         (various insns): Don't use mov, fmov, nop, fnop and unop.
6746         (realign): Support TARGET_ABI_UNICOSMK.
6747
6748         * config/alpha/unicosmk.h: New file.
6749         * config/alpha/t-unicosmk: New file.
6750
6751         * fixinc/inclhack.def (unicosmk_restrict): New.
6752         * fixinc/fixincl.x: Regenerate.
6753
6754         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
6755         (wchar_t): Check for and define __WCHAR_T__.
6756
6757 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
6758
6759         * combine.c (simplify_shift_const): Treat shifts by the mode
6760         size as undefined.
6761
6762 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6763
6764         * cpphash.h (struct tokenrun): New.
6765         (struct cpp_context): New member bol.
6766         (struct cpp_reader): New members.
6767         (_cpp_init_tokenrun): New.
6768         * cppinit.c (cpp_create_reader): Set up the token runs.
6769         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
6770         (lex_token): New internalised version of _cpp_lex_token.  Don't
6771         handle directives or the multiple include opimisation here any
6772         more.  Simply lex a token.
6773         * cpplib.c (run_directive): Clear bol.
6774         (_cpp_pop_buffer): Set bol.
6775         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
6776         arguments.
6777
6778 2001-09-11  Michael Meissner  <meissner@redhat.com>
6779
6780         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
6781         give an error if the user uses -mfp32.
6782         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
6783         default options.
6784         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
6785         floating point register size.
6786         (EXTRA_SPECS): Add CPP_FPR_SPEC.
6787
6788         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
6789         HOST_WIDE_INT_PRINT_DEC to properly print the result of
6790         int_size_in_bytes.
6791         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
6792         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
6793
6794 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
6795
6796         * dbxout.c (dbxout_parms): Fix typo in comment.
6797         * unroll.c (loop_find_equiv_value): Ditto.
6798         * toplev.c (rest_of_compilation): Ditto.
6799         * loop.c (scan_loop): Ditto.
6800         * dwarf2out.c (struct dw_fde_struct): Ditto.
6801
6802 2001-09-10  Zack Weinberg  <zackw@panix.com>
6803
6804         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
6805         copying identifier when we're just going to throw it away.
6806         (parse_identifier_slow): New routine to handle abnormal cases.
6807         (_cpp_lex_token): Update call site.
6808
6809         * hashtable.c (ht_lookup): Don't assume that the string we've
6810         been given is NUL-terminated.
6811         * system.h: #define __builtin_expect(a, b) to (a) if not
6812         GCC >=3.0.
6813
6814 2001-09-10  Michael Meissner  <meissner@redhat.com>
6815
6816         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
6817         binutils, gdb.
6818
6819 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
6820
6821         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
6822
6823 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6824
6825         * builtins.c (c_getstr): Correct thinko in last change and further
6826         cleanup.
6827
6828 2001-09-10  Tim Freeman <tim@fungibole.com>
6829
6830         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
6831         into varray's and register them as roots with the garbage
6832         collector so they are not collected too soon.
6833
6834 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
6835
6836         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
6837         New.
6838         * basic-block.h (flow_obstack, label_value_list,
6839         tail_recursion_label_list): Declare
6840         (tidy_fallthru_edges): Declare.
6841         (expunge_block, last_loop_beg_note): Delete.
6842         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
6843         * cfg.c: New file
6844         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
6845         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
6846         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
6847         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
6848         expunge_block, flow_delete_block, compute_bb_for_insn,
6849         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
6850         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
6851         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
6852         try_redirect_by_replacing_jump, last_loop_beg_note,
6853         redirect_edge_and_branch, redirect_edge_and_branch_force,
6854         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
6855         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
6856         commit_edge_insertions, dump_flow_info, debug_flow_info,
6857         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
6858         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
6859         Move here from flow.c
6860         * cfganal.c: New file.
6861         (forwarder_block_p, can_fallthru, mark_critical_edges,
6862          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
6863          find_unreachable_blocks, create_edge_list, free_edge_list,
6864          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
6865          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
6866          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
6867          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
6868          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
6869          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
6870         Move here from flow.c
6871         * cfgbuild.c: New file
6872         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
6873          make_edges, find_basic_blocks_1, find_basic_blocks,
6874          find_sub_basic_blocks): Move here from flow.c
6875         * cfgcleanup.c: New file.
6876         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
6877          merge_blocks_move_predecessor_nojumps,
6878          merge_blocks_move_successor_nojumps, merge_blocks,
6879          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
6880          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
6881         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
6882         if succeeded.
6883         * cfgloop.c: New file
6884         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
6885          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
6886          flow_loop_exit_edges_find, flow_loop_nodes_find,
6887          flow_loop_pre_header_scan, flow_loop_pre_header_find,
6888          flow_loop_tree_node_add, flow_loops_tree_build,
6889          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
6890          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
6891         Move here from flow.c
6892         * flow.c: Remove everything moved elsewhere
6893         * output.h (cleanup_cfg): Return bool.
6894
6895         * bb-reorder.c (reorder_block_def): Remove 'index'.
6896         (insert_intra_1): Add argument BB, set block for new note.
6897         (make_reorder_chain): Do not depdent on BB indexes.
6898         (make_reorder_chain_1): Do not use BB indexes.
6899         (label_for_bb): Likewise; set BB for new insn.
6900         (emit_jump_to_block_after): Likewise.
6901         (fixup_reoder_chain): Sanity check that all basic blocks
6902         are chained; verify newly created insn chain; remove
6903         undocnitional jump simplifying; Do not use BB indexes;
6904         properly initialize count and frequency information;
6905         dump reordered sequence.
6906         (insert_intra_bb_scope_notes): update call of insert_intra_1.
6907         (insert_inter_bb_scope_notes): Set block for new insn.
6908         (reorder_basic_blocks): Dump flow info before reoredering.
6909
6910 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6911
6912         * alias.c (clear_reg_alias_info): Use K&R format definition.
6913         Avoid unsigned warning.
6914         * builtins.c: Use "unsigned int", not "unsigned".
6915         (target_char_cast): Use host_integerp and tree_low_cst.
6916         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
6917         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
6918         (c_getstr): Likewise.
6919         (std_expand_builtin_va_arg): Use int_size_in_bytes.
6920         (builtin_memcpy_read_str): Avoid unsigned warning.
6921         (expand_builtin_memcpy): Alignments are unsigned.
6922         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
6923         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
6924         * predict.c (expensive_function_p): LIMIT now unsigned.
6925         * resource.c (mark_target_live_regs): Make some vars unsigned.
6926         * sdbout.c: Use "unsigned int", not "unsigned".
6927         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
6928         (sdbout_source_line): Likewise.
6929         (sdbout_record_type_name): Remove "const" for NAME declaration.
6930         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
6931
6932 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
6933
6934         * calls.c (store_one_arg): Expand comment.
6935
6936 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6937
6938         * calls.c (store_one_arg): Make sure that the entire argument is
6939         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
6940
6941 2001-09-09  Richard Henderson  <rth@redhat.com>
6942
6943         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
6944
6945 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
6946
6947         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
6948
6949 2001-09-09  Richard Henderson  <rth@redhat.com>
6950
6951         * config/alpha/alpha.c (alpha_next_sequence_number): New.
6952         (alpha_this_literal_sequence_number): New.
6953         (alpha_this_gpdisp_sequence_number): New.
6954         (some_operand, input_operand): Add HIGH.
6955         (local_symbolic_operand): New.
6956         (alpha_encode_section_info): New.
6957         (alpha_legitimate_address_p): Allow LO_SUM.
6958         (alpha_legitimize_address): Generate HIGH+LO_SUM.
6959         (alpha_expand_mov): Likewise.
6960         (secondary_reload_class): Check memory_operand not general_operand
6961         for FP_REGS test.
6962         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
6963         (alpha_expand_unaligned_store): Likewise.
6964         (alpha_expand_unaligned_load_words): Likewise.
6965         (alpha_expand_unaligned_store_words): Likewise.
6966         (alpha_expand_block_clear): Likewise.
6967         (print_operand): Handle %#, %*, %H.
6968         (print_operand_address): Handle LO_SUM.
6969         (find_lo_sum): New.
6970         (alpha_does_function_need_gp): Use it.
6971         (alpha_expand_block_move): Fix signed compare warnings.
6972         (alpha_sa_mask, alpha_align_insns): Likewise.
6973         * config/alpha/alpha-protos.h: Update.
6974         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
6975         (MASK_EXPLICIT_RELOCS): New.
6976         (TARGET_SWITCHES): Add -mexplicit-relocs.
6977         (EXTRA_CONSTRAINT): Add 'T'.
6978         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
6979         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
6980         (ENCODE_SECTION_INFO): Out line.
6981         (REDO_SECTION_INFO_P): New.
6982         (STRIP_NAME_ENCODING): New.
6983         (ASM_OUTPUT_LABELREF): New.
6984         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
6985         (PREDICATE_CODES): Update.
6986         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
6987         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
6988         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
6989         builtin_setjmp_receiver_er, exception_receiver_1_er,
6990         call_value_osf_1_er): New patterns.
6991         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
6992         (movqi, movhi, movsi): Add explicit $31 base register to lda.
6993         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
6994         (FINAL_PRESCAN_INSN): New.
6995
6996 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
6997
6998         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
6999
7000 2001-09-08  Andreas Jaeger  <aj@suse.de>
7001
7002         * i386.h (TARGET_SWITCHES): Fix description.
7003
7004 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
7005
7006         * rs6000.c (num_insns_constant): Compute number of instructions
7007         more accurately.
7008
7009         * doc/install.texi: Explain AIX exception handling work-around.
7010         Update URL for AIX fixes.
7011
7012 2001-09-07  Jim Wilson  <wilson@redhat.com>
7013
7014         * alias.c (clear_reg_alias_info): New.
7015         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
7016         * rtl.h (clear_reg_alias_info): Declare.
7017
7018 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7019
7020         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
7021         available.
7022         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
7023         (m16m,edivm,emulm): Change declaration to match definition.
7024
7025 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
7026
7027         * reload.c (push_reload): Check for subreg_lowpart_p instead of
7028         SUBREG_BYTE being 0 when determining if the inner part of a subreg
7029         can be reloaded.
7030
7031 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7032
7033         * c-common.c (signed_or_unsigned_type): Handle machine mode types
7034         which have no corresponding C type.
7035         * fold_const.c (target_isinf,target_isnan,target_negative): Update
7036         the representation of 64-bit doubles to work with 64-bit ints.
7037
7038 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
7039
7040         * config/mips/mips.c (override_options): Do not override ISA when ABI
7041         specified if MIPS_CPU_STRING_DEFAULT was specified.
7042
7043 2001-09-07  Richard Henderson  <rth@redhat.com>
7044
7045         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
7046         (express_from_1): Wrap lines.
7047         * rtlanal.c (commutative_operand_precedence): Rename from
7048         operand_preference; export.
7049         * rtl.h: Declare it.
7050         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
7051         (simplify_binary_operation): Invoke simplify_plus_minus on
7052         (CONST (PLUS ...)) as well.
7053         (struct simplify_plus_minus_op_data): New.
7054         (simplify_plus_minus_op_data_cmp): New.
7055         (simplify_plus_minus): Use them.  Avoid infinite recursion with
7056         simplify_binary_operation wrt CONST.
7057
7058 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
7059
7060         * h8300-protos.h (general_operand_dst_push): Remove.
7061         * h8300.c (general_operand_dst_push): Likewise.
7062         * h8300.h (OK_FOR_T): Likewise.
7063         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
7064         * h8300.md (pushqi_h8300): New.
7065         (pushqi_h8300hs): Likewise.
7066         (pushqi): Likewise.
7067         (pushhi_h8300): Likewise.
7068         (pushhi_h8300hs): Likewise.
7069         (pushhi): Likewise.
7070
7071 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7072
7073         * genattrtab.c (attr_printf): First arg is unsigned.
7074         Clean up formatting of callers.
7075
7076 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
7077
7078         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
7079         registers.
7080
7081 2001-09-07  Andreas Jaeger  <aj@suse.de>
7082
7083         * i386.h (TARGET_SWITCHES): Fix descriptions.
7084
7085 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7086
7087         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
7088
7089 2001-09-06  Ira Ruben  <ira@apple.com>
7090
7091         Remove OP_IDENTIFIER.
7092         * tree.def (OP_IDENTIFIER): Remove.
7093         * tree.c (tree_node_kind enum): Remove op_id_kind.
7094         (tree_node_kind_names): Remove "op_identifiers".
7095         (make_node): Remove OP_IDENTIFIER test.
7096         (build_op_identifier): Removed because it isn't being used.
7097         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
7098         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
7099
7100 2001-09-06  Richard Henderson  <rth@redhat.com>
7101
7102         * simplify-rtx.c (simplify_binary_operation): Revert last change.
7103
7104 2001-09-06  Richard Henderson  <rth@redhat.com>
7105
7106         * simplify-rtx.c (simplify_binary_operation): Simplify contents
7107         of CONST.
7108
7109 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7110
7111         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
7112         number used for CR register.
7113
7114 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
7115                           Joern Rennecke (amylaar@cygnus.com)
7116
7117         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
7118         * h8300.c (initial_offset): Handle offset between RP and FP.
7119         (h8300_return_addr_rtx): New function.
7120         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
7121         return register.
7122         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
7123         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7124         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
7125         (CAN_ELIMINATE, REGISTER_NAMES):
7126         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
7127
7128 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
7129
7130         Remove TYPE_NONCOPIED_PARTS.
7131         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
7132         (struct tree_type): Remove noncopied_parts.
7133         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
7134         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
7135         (fixed_type_p): Remove.
7136         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
7137         (expand_expr, MODIFY_EXPR): Likewise.
7138         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
7139         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
7140
7141 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
7142
7143         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
7144         compiler warnings.
7145         (mask64_operand): Likewise.
7146         (includes_rldic_lshift_p): Likewise.
7147         (includes_rldicr_lshift_p): Likewise.
7148
7149 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
7150
7151         * objc/objc-act.c (build_message_expr): If a class method cannot
7152         be found, do not issue a warning if a corresponding instance
7153         method exists in the root class.
7154
7155 2001-09-05  Richard Henderson  <rth@redhat.com>
7156
7157         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
7158
7159 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
7160
7161         * function.c (ggc_mark_struct_function): Mark f->outer.
7162         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
7163         * integrate.c (output_inline_function): ... not here.
7164
7165 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
7166
7167         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
7168
7169         * i386.c (size_cost): New static variable.
7170         (override_function): Use size_cost when -Os is specified.
7171
7172         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
7173         properly;  Use current_function_calls_eh_return.
7174         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
7175         use leave to avoid dependency chain.
7176
7177         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
7178         get BB loop_depth instead of computing it from LOOP notes.
7179
7180         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
7181
7182 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7183
7184         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7185         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7186         UNALIGNED_DOUBLE_INT_ASM_OP): Define
7187
7188 2001-09-05  Jeffrey A Law  (law@cygnus.com)
7189             Jason Merrill (jason@redhat.com)
7190
7191         * stor-layout.c (layout_type): Complain if an array's size can
7192         not be represented in a size_t.
7193
7194         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
7195
7196 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
7197
7198         * gcc.c: (process_command) Add parentheses around assignment
7199         used as truth value.
7200
7201 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
7202
7203         * config/mips/mips.c (save_restore_insns): Don't mark any register
7204         save slots as unchanging if current_function_calls_eh_return.
7205
7206 2001-09-05  Richard Henderson  <rth@redhat.com>
7207
7208         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
7209         * config/alpha/alpha-protos.h: Declare it.
7210         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
7211         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
7212         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
7213         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
7214         (REG_OK_FOR_BASE_P): Select one of the above.
7215
7216 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
7217
7218         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
7219         (crti.o): Prefix name of object file with $(T).
7220         (crtn.o): Likewise.
7221
7222 2001-09-05  David S. Miller  <davem@redhat.com>
7223
7224         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
7225         * config/sparc/linux64.h: Likewise.
7226
7227 2001-09-05  Andreas Jaeger  <aj@suse.de>
7228
7229         * doc/invoke.texi (i386 Options): -mwide-multiply is not
7230         available anymore, remove the documentation.
7231         (i386 Options): Fix typo, cleanup index entries.
7232
7233         * prefix.c (concat): Remove, we can use the version from liberty.
7234
7235 2001-09-05  Richard Henderson  <rth@redhat.com>
7236
7237         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
7238         New functions split out of md file expanders.
7239         * config/alpha/alpha-protos.h: Declare them.
7240         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
7241
7242 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7243
7244         * cppmacro.c (funlike_invocation_p): No need to restore context.
7245
7246 2001-09-04  Richard Henderson  <rth@redhat.com>
7247
7248         * reload.c (push_reload): Export.
7249         * reload.h (push_reload): Declare it.
7250
7251         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
7252         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
7253         * config/alpha/alpha.c (alpha_legitimize_address): New.
7254         (alpha_legitimize_reload_address): Likewise.
7255         * config/alpha/alpha-protos.h: Declare them.
7256
7257 2001-09-04  Stan Shebs  <shebs@apple.com>
7258
7259         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
7260         * config/darwin.c (machopic_stub_name): Account for internally
7261         generated lib calls such as memcpy.
7262
7263 2001-09-04  Richard Henderson  <rth@redhat.com>
7264
7265         * unwind.h (_UA_END_OF_STACK): New flag.
7266         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
7267
7268 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
7269
7270         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
7271
7272 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
7273
7274         * config/mips/mips.c (save_restore_insns): Change base_offset to
7275         fp_offset in second call to mips_emit_frame_related_store.
7276
7277 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
7278
7279         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
7280         sometimes be represented as a NOTE of type
7281         NOTE_INSN_DELETED_LABEL.
7282         (Insns): Document NOTE_INSN_DELETED_LABEL.
7283
7284 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
7285
7286         * c-common.h (tree_dump_index): Add more comments.
7287         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
7288         (dump_option_value_info): New struct.
7289         (dump_options): New array.
7290         (dump_switch_p): Parse switch options symbolically.
7291         * doc/invoke.texi (-fdump-ast): Rename to ...
7292         (-fdump-tree): ... here. Document that options are symbolic, and
7293         not all are applicable.
7294
7295 2001-09-04  David S. Miller  <davem@redhat.com>
7296
7297         * config/sparc/sparc.md (define_splits): Kill constraints.
7298
7299         Cleanup redundant and unused insn attributes.
7300         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
7301         binary, and move.  Mark ialu as default.
7302         (commented out define_function_unit "alu"): Kill.
7303         (define_attr "use_clobbered"): Kill.
7304         (whole file): Kill address insn type references.  Replace
7305         all unary/binary/move references with ialu.
7306         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
7307         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
7308         TYPE_IALU.
7309
7310         Simplify length insn attribute and make more judicious use
7311         of insn attribute defaulting.
7312         * config/sparc/sparc.md (all insns with length > one): Mark as
7313         insn type multi if real instructions, else use default if
7314         it is a forced splitter.
7315         (all insns with length == one): Use default insn length.
7316         (all insns of type ialu): Use default insn type.
7317
7318         Fix erroneous insn attribute settings.
7319         (addx): Set insn type to misc.
7320         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
7321         const_umulsidi3_sp64): Set insn type to imul.
7322
7323         Track SFmode vs DFmode insns according to UltraSPARC
7324         scheduling rules.
7325         * config/sparc/sparc.md ("fptype"): New attribute, default
7326         to "single".
7327         (all DFmode single insns): Mark as fptype "double".
7328
7329 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
7330
7331         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
7332
7333 2001-09-03  Richard Henderson  <rth@redhat.com>
7334
7335         * function.h (struct function): Add arg_pointer_save_area_init.
7336         * function.c (expand_function_end): Init arg_pointer_save_area.
7337         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
7338         when called from a nested function.
7339
7340 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
7341
7342         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
7343         is enabled.
7344
7345 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7346
7347         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
7348
7349 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
7350
7351         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
7352         (emit_push_insn): Use specified padding direction when
7353         STACK_PUSH_CODE is POST_INC.
7354
7355         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
7356
7357 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7358
7359         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
7360
7361 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7362
7363         * cppinit.c (cpp_start_read): Free the imacros list as we
7364         traverse it.  Don't free the chains before returning.
7365         (_cpp_push_next_buffer): Only try pushing buffers if we've
7366         completed -imacros handling.
7367
7368 2001-08-31  Eric Christopher  <echristo@redhat.com>
7369
7370         * gcc.c (handle_braces): Add explaination for abort.
7371
7372 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
7373
7374         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
7375         move adjustment of bitpos instead.
7376
7377 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
7378
7379         * function.c: Remove all_functions.  Make outer_function_chain
7380         static.
7381         (init_function_start): Don't add new function structure to
7382         all_functions.
7383         (find_function_data, push_function_context_to,
7384         pop_function_context_from, put_var_into_stack,
7385         trampoline_address): Update for changed structure element names.
7386         (push_function_context_to): Disentangle.
7387         (free_after_compilation): Also free F.
7388         (expand_dummy_function_end): Don't free cfun here.
7389         (put_var_into_stack): Comment why we can't use find_function_data here.
7390         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
7391         (mark_function_chain): Split into maybe_mark_struct_function and
7392         ggc_mark_struct_function.  Export the latter.
7393         (init_function_once): Mark from cfun and outer_function_chain;
7394         not all_functions.
7395
7396         * function.h (struct function): Kill next_global.  Rename next
7397         to outer.  All users updated to match.
7398         (all_functions, outer_function_chain): Don't declare.
7399
7400         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
7401         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
7402         don't touch f->inlinable, after calling rest_of_compilation.
7403
7404         * tree.h: Forward-declare struct function.  Prototype
7405         ggc_mark_struct_function.
7406
7407 2001-08-31  Kazu Hirata  <kazu@hxi.com>
7408
7409         * config/h8300/h8300.md (*andorhi3): Fix typos.
7410
7411 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7412
7413         * calls.c (emit_library_call_value): Don't use a fixed
7414         argument after VA_CLOSE, i.e. out of scope in traditional C.
7415
7416         * emit-rtl.c (gen_rtvec): Likewise.
7417
7418 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7419
7420         * Makefile.in (c-pragma.o): Depend on output.h.
7421         (reorg.o): Depend on except.h.
7422
7423         * c-pragma.c: Include output.h.
7424
7425         * reorg.c: Include except.h.
7426
7427         * unwind-dw2.c: Call __builtin_alloca, not alloca.
7428
7429 2001-08-31  Richard Henderson  <rth@redhat.com>
7430
7431         * sched-deps.c (add_dependence): Don't elide dependency if the
7432         conditional used by insn is modified in elem.
7433
7434 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
7435
7436         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
7437
7438 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
7439
7440         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
7441         dump_switch_p.
7442
7443 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
7444
7445         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
7446         function.
7447         (stormy16_asm_out_constructor): New function.
7448         (TARGET_ASM_CONSTRUCTOR): Define.
7449         (TARGET_ASM_DESTRUCTOR): Define.
7450
7451 2001-08-31  Andreas Jaeger  <aj@suse.de>
7452
7453         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
7454         * loop.c (add_label_notes): Likewise.
7455         * reload.c (find_reloads): Likewise.
7456         * config/sh/sh.c (machine_dependent_reorg): Likewise.
7457
7458 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
7459
7460         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
7461         code here.  Take _Unwind_{W,Sw}ord*.
7462         (read_encoded_value_with_base): Use them.
7463         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
7464         words.
7465         (extract_cie_info): Simplify read_?leb128 handling.
7466         (execute_stack_op, execute_cfa_program): Likewise.
7467         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
7468
7469 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
7470
7471         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
7472         the frame pointer to pop the stack if convenient.
7473
7474         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
7475         Don't use post-increment before combine.
7476         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
7477         a call-saved register.
7478
7479 2001-08-31  Andreas Jaeger  <aj@suse.de>
7480
7481         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
7482         code was correct.
7483
7484 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
7485
7486         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
7487         not DIV/MOD, of course.
7488
7489 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
7490
7491         * rtl.def: Undo my patch commited 2001-08-27.
7492
7493         * genattrtab.c: Ditto.
7494
7495         * rtl.h: Ditto.
7496
7497         * sched-int.h: Ditto.
7498
7499         * target-def.h: Ditto.
7500
7501         * target.h: Ditto.
7502
7503         * haifa-sched.c: Ditto.
7504
7505         * sched-rgn.c: Ditto.
7506
7507         * sched-vis.c: Ditto.
7508
7509         * Makefile.in: Ditto.
7510
7511         * doc/md.texi: Ditto.
7512
7513         * doc/tm.texi: Ditto.
7514
7515         * doc/contrib.texi: Ditto.
7516
7517         * doc/gcc.texi: Ditto.
7518
7519         * genattrtab.h: Remove it.
7520
7521         * genautomata.c: Remove it.
7522
7523         * genattr.c: Undo my patch and Richard Henderson's patch commited
7524         2001-08-27.
7525
7526 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
7527
7528         * config.gcc (h8300-*-elf*): New case.
7529         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
7530         (SUBTARGET_CPP_SPEC): Define.
7531         (EXTRA_SPECS): Define.
7532         (SUBTARGET_EXTRA_SPECS): Define.
7533         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
7534         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
7535
7536 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
7537
7538         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
7539         (LIB2FUNCS_EXTRA): Define.
7540         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
7541         config/h8300/fixunssfsi.c: New file.
7542
7543 2001-08-30  Kazu Hirata  <kazu@hxi.com>
7544
7545         * config/h8300/h8300.md (zero_extendqihi2): Changes to
7546         define_expand to accommodate target-specific attributes.
7547         (anonymous zero_extendqihi2 patterns): New.
7548
7549 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
7550
7551         * h8300.md (*andorhi3): New pattern.
7552
7553 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
7554
7555         * h8300.c (dosize): Fix test for "sub".
7556
7557 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
7558
7559         * c-typeck.c (pointer_diff): Try to eliminate common term before
7560         doing conversions.
7561
7562 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
7563
7564         * config/arm/arm.c (arm_compute_initial_elimination_offset):
7565         Account for the saves of the FP registers.
7566
7567         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
7568         (TEXT_SECTION_ASM_OP): Define.
7569         (INIT_SECTION_ASM_OP): Define.
7570         (FINI_SECTION_ASM_OP): Define.
7571         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
7572         (RDATA_SECTION_FUNCITON): Provide prototype.
7573
7574 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
7575
7576         * reload1.c (move2add_note_store): Correct typo checking for
7577         argument pushes.
7578
7579 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
7580
7581         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
7582         note should not be considered outside the libcall block.
7583
7584 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7585
7586         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
7587
7588 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7589
7590         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
7591
7592 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7593
7594         * config/h8300/h8300-protos.h: Add a prototype for
7595         emit_logical_op.
7596         * config/h8300/h8300.c (emit_logical_op): New.
7597         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
7598         (andsi3): Likewise.
7599         (iorhi3): Likewise.
7600         (iorsi3): Likewise.
7601         (xorhi3): Likewise.
7602         (xorsi3): Likewise.
7603
7604 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7605
7606         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
7607         comparison with rtx INTVAL.
7608         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
7609         expression.
7610         * pa.h (FUNCTION_ARG_SIZE): Likewise.
7611
7612 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7613
7614         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
7615         comment typos.
7616
7617 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7618
7619         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
7620         (reg n) to (mem (pre_dec (reg n))
7621         (anonymous movsi pattern): Likewise.
7622
7623 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7624
7625         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
7626
7627 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7628
7629         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
7630         several special constants.
7631
7632 2001-08-29  Kazu Hirata  <kazu@hxi.com>
7633
7634         * config/h8300/lib1funcs.asm: Fix comment typos.
7635
7636 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7637
7638         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
7639         Fix format specifier warnings.
7640
7641         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
7642         inet_makeaddr, semctl): Prototype.
7643
7644         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
7645         (save_restore_insns): Use base_offset, not gp_offset.
7646
7647         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
7648         (ASM_OUTPUT_BYTE): Fix format specifier warning.
7649
7650 2001-08-29  Richard Henderson  <rth@redhat.com>
7651
7652         * bb-reorder.c (function_tail_eff_head): New.
7653         (record_effective_endpoints): Set it.
7654         (fixup_reorder_chain): Use it.
7655
7656 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7657
7658         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
7659
7660 2001-08-28  Dale Johannesen  <dalej@apple.com>
7661
7662         * config/darwin.c (machopic_function_base_name): Add const
7663         qualifier to a string.
7664         (darwin_encode_section_info): Ditto.
7665
7666 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7667
7668         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
7669         function definition.
7670
7671 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
7672
7673         * df.h (struct df): Add rts_order variable.
7674
7675         * df.c (df_visit_next_rts): New function.
7676         (df_visit_next): Renamed to df_visit_next_rc
7677         (df_analyse_1): Allocate/compute/free rts_order as well.
7678         (df_rd_global_compute): Use df_visit_next_rc instead of
7679         df_visit_next.
7680         (df_ru_global_compute): Use df_visit_next_rts instead of
7681         df_visit_next.
7682
7683         * flow.c (flow_reverse_top_sort_order_compute): New function.
7684
7685         * basic-block.h: Add prototype.
7686
7687 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
7688
7689         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
7690         blocks, the BB_REACHABLE is now set, rather than aux being
7691         non-NULL. Update the test to reflect this.
7692
7693 2001-08-28  Eric Christopher  <echristo@redhat.com>
7694
7695         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
7696         config/mips/crti.asm: Ditto.
7697
7698 2001-08-28  Eric Christopher <echristo@redhat.com>
7699             Richard Henderson <rth@redhat.com>
7700
7701         * c-pragma.h (add_weak): Move prototype from here...
7702         * output.h (add_weak): ... to here.
7703         * varasm.c (add_weak): Fix typo.
7704         * config/mips/crti.asm: New file.
7705         * config/mips/crtn.asm: Ditto.
7706         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
7707         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
7708         (INVOKE__main): Ditto.
7709         (INIT_SECTION_ASM_OP): New.
7710         (FINI_SECTION_ASM_OP): Ditto.
7711         (STARTFILE_SPEC): Add crti.
7712         (ENDFILE_SPEC): Add crtn.
7713         * config/mips/elf64.h: Same.
7714         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
7715         Remove.
7716         * config/mips/vxworks.h: Ditto.
7717         * config/mips/t-elf: Support crti and crtn.
7718
7719 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
7720
7721         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
7722         INSN_LIST.
7723
7724 2001-08-28  Richard Henderson  <rth@redhat.com>
7725
7726         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
7727         (one_cmplbi2 splitter): Remove redundant test.
7728
7729 2001-08-28  Dale Johannesen  <dalej@apple.com>
7730
7731         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
7732
7733 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
7734
7735         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
7736
7737 2001-08-28  Stan Shebs  <shebs@apple.com>
7738
7739         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
7740         (UNALIGNED_SHORT_ASM_OP): Define.
7741         (UNALIGNED_INT_ASM_OP): Define.
7742
7743 2001-08-28  Will Cohen  <wcohen@redhat.com>
7744
7745         * config/rs6000/rs6000.md (store_multiple): Correct RTL
7746         generation for first set.
7747
7748 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
7749
7750         * flow.c (redirect_edge_succ_nodup): Return new edge.
7751         (try_simplify_condjump): Use new edge.
7752         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
7753
7754         * cse.c (cse_basic_block): Skip note instructions.
7755
7756 2001-08-27  Richard Henderson  <rth@redhat.com>
7757
7758         * combine.c (combine_simplify_rtx): Don't reverse condition
7759         if there is no reverse for the condition.
7760         (simplify_comparison): Don't simplify subregs from INT to FP.
7761
7762         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
7763         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
7764         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
7765         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
7766         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
7767         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
7768
7769 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
7770
7771         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
7772         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
7773         (pushqi1): New.
7774         (adddi_dilshr32, adddi_dishl32): Only data register can be
7775         source for mem destination.
7776
7777         * expmed.c (store_bit_field): Ignore adjustment to bitpos
7778         and use bitnum to decide about register move.
7779
7780 2001-08-27  Richard Henderson  <rth@redhat.com>
7781
7782         * genattr.c (main): Emit state_t even when not doing scheduling.
7783
7784 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
7785             Richard Henderson  <rth@redhat.com>
7786
7787         * gcse.c (reg_first_set, reg_last_set): Replace with ...
7788         (reg_avail_info, current_bb): ... these.
7789         (oprs_unchanged_p, record_last_reg_set_info): Use them.
7790         (compute_hash_table): Likewise.
7791
7792 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
7793
7794         * flow.c (verify_flow_info): Use checksums to verify edges.
7795
7796 2001-08-27  Richard Henderson  <rth@redhat.com>
7797
7798         * genautomata.c (expand_automata): Always create a description.
7799
7800 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
7801
7802         * optabs.c (expand_binop): Correctly handle the carry in multiword
7803         add/subtract operations.
7804
7805 2001-08-27  Fred Fish  <fnf@be.com>
7806
7807         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
7808         __SIZE_TYPE__.
7809
7810 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
7811
7812         * reload.c (find_reloads_toplev): Back out this change:
7813
7814         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
7815
7816         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
7817         mem if the address is a mode_dependent_address_p.
7818
7819 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
7820
7821         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
7822         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
7823         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
7824         RTL constructions.
7825
7826         * genattr.c (main): New variable num_insn_reservations.  Increase
7827         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
7828         pipeline hazard recognizer interface.
7829
7830         * genattrtab.h: New file.
7831
7832         * genattrtab.c: Include genattrtab.h.
7833         (attr_printf, check_attr_test, make_internal_attr,
7834         make_numeric_value): Move protypes into genattrtab.h.  Define them
7835         as external.
7836         (num_dfa_decls): New global variable.
7837         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
7838         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
7839         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
7840         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
7841
7842         * genautomata.c: New file.
7843
7844         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
7845
7846         * sched-int.h: (curr_state): Add the external definition for
7847         automaton pipeline interface.
7848         (haifa_insn_data): Add comments for members blockage and units.
7849
7850         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7851         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7852         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7853         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7854         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7855         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7856         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
7857         macros.
7858         (TARGET_SCHED): Use the new macros.
7859
7860         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
7861         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
7862         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
7863         dfa_bubble): New members in gcc_target.sched.
7864
7865         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
7866         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
7867         (insn_queue): Redefine it as pointer to array.
7868         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
7869         INSN_QUEUE_SIZE.
7870         (max_insn_queue_index_macro_value): New variable.
7871         (curr_state, dfa_state_size, ready_try): New varaibles for
7872         automaton interface.
7873         (ready_element, ready_remove, max_issue): New function prototypes
7874         for automaton interface.
7875         (choose_ready): New function prototype.
7876         (insn_unit, blockage_range): Add comments.
7877         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
7878         FUNCTION_UNITS_SIZE == 0.
7879         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
7880         actual_hazard, potential_hazard): Add comments.
7881         (insn_cost): Use cost -1 as undefined value.  Remove
7882         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
7883         pipeline interface.
7884         (ready_element, ready_remove): New functions for automaton
7885         interface.
7886         (schedule_insn): Add new code for automaton pipeline interface.
7887         (queue_to_ready): Add new code for automaton pipeline interface.
7888         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
7889         (debug_ready_list): Print newline when the queue is empty.
7890         (max_issue): New function for automaton pipeline interface.
7891         (choose_ready): New function.
7892         (schedule_block): Add new code for automaton pipeline interface.
7893         Print ready list before scheduling each insn.
7894         (sched_init): Add new code for automaton pipeline interface.
7895         Initiate insn cost by -1.
7896         (sched_finish): Free the current automaton state and finalize
7897         automaton pipeline interface.
7898
7899         * sched-rgn.c: Include target.h.
7900         (init_ready_list, new_ready, debug_dependencies): Add new code for
7901         automaton pipeline interface.
7902
7903         * sched-vis.c: Include target.h.
7904         (get_visual_tbl_length): Add code for automaton interface.
7905         (target_units, print_block_visualization):  Add comments.
7906
7907         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
7908         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
7909         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
7910         (getruntime.o, genautomata.o): New entries.
7911         (genattrtab.o): Add new dependency file genattrtab.h.
7912         (genattrtab): Add new dependencies.  Link it with `libm.a'.
7913         (getruntime.o, hashtab.o): New entries for canadian cross.
7914
7915         * doc/md.texi: Description of automaton based model.
7916
7917         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
7918         Add comments.
7919         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7920         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7921         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7922         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7923         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7924         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7925         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
7926         hook descriptions.
7927         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
7928         MAX_DFA_ISSUE_RATE): New macro descriptions.
7929
7930         * doc/contrib.texi: Add dfa based scheduler contribution.
7931
7932         * doc/gcc.texi: Add more information about genattrtab.
7933
7934 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
7935
7936         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
7937         an RTL basic block.
7938
7939 2001-08-27  Richard Henderson  <rth@redhat.com>
7940
7941         * function.c (expand_function_end): Don't init arg_pointer_save_area.
7942         (get_arg_pointer_save_area): New.  Create an init it here.
7943         (fix_lexical_addr): Use it.
7944         * function.h: Declare it.
7945         * builtins.c (expand_builtin_setjmp_receiver): Use it.
7946         * stmt.c (expand_nl_goto_receiver): Use it.
7947
7948 2001-08-27  Richard Henderson  <rth@redhat.com>
7949
7950         * final.c (final_scan_insn): Don't enter APP_ON mode for
7951         empty asm strings.
7952
7953         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
7954         alignment for assemble_integer for DW_EH_PE_aligned.
7955         * except.c (output_function_exception_table): Likewise.
7956
7957 2001-08-26  Andreas Jaeger  <aj@suse.de>
7958
7959         * c-tree.h: Add prototyp for c_sizeof_nowarn.
7960
7961 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
7962
7963         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
7964
7965 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
7966
7967         * config/rs6000/rs6000.c (mask_operand): Rewrite without
7968         bit-shifting loop.
7969         (mask64_operand): Likewise.
7970         (rldic_operand): Delete.
7971         (includes_lshift64_p): Delete.
7972         (includes_rldic_lshift_p): New function.
7973         (includes_rldicr_lshift_p): New function.
7974         (print_operand): Don't call rldic_operand in case 'W'.
7975         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
7976         (includes_lshift64_p): Remove.
7977         (includes_rldic_lshift_p): Declare.
7978         (includes_rldicr_lshift_p): Declare.
7979         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
7980         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
7981         Replace match_operand rldic_operand predicate with
7982         const_int_operand.  Replace includes_lshift64_p condition with
7983         includes_rldic_lshift_p.
7984         <ashldi3_internal 64 bit rldicr patterns>: New.
7985
7986 2001-08-27  Andreas Jaeger  <aj@suse.de>
7987
7988         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
7989         * errors.c: Likewise.
7990         * final.c: Likewise.
7991         * dwarf2asm.c: Likewise.
7992         * doprint.c (checkit): Likewise.
7993         * diagnostic.c: Likewise.
7994         * collect2.c: Likewise.
7995         * calls.c: Likewise.
7996         * c-semantics.c (build_stmt): Likewise.
7997         * c-format.c (status_warning): Likewise.
7998         * c-errors.c (pedwarn_c99): Likewise.
7999         * builtins.c (validate_arglist): Likewise.
8000         * config/pj/pj.c (pj_printf): Likewise.
8001         * fix-header.c: Likewise.
8002         * gcc.c: Likewise.
8003         * gcov.c (fnotice): Likewise.
8004         * gensupport.c (message_with_line): Likewise.
8005         * mips-tfile.c: Likewise.
8006         * protoize.c (notice): Likewise.
8007         * read-rtl.c (fatal_with_file_and_line): Likewise.
8008         * rtl-error.c: Likewise.
8009         * tradcpp.c: Likewise.
8010         * tree.c: Likewise.
8011         * cp/tree.c (build_min_nt): Likewise.
8012         (build_min): Likewise.
8013         * cp/lex.c: Likewise.
8014         * cp/errfn.c: Likewise.
8015         * cp/rtti.c (create_pseudo_type_info): Likewise.
8016
8017 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
8018
8019         * df.c (df_uses_record): Return after recording all uses
8020         in ASM_OPERANDS.
8021
8022 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
8023
8024         * df.c (df_insn_modify): Realloc the INSN table here, if
8025         necessary, here, too.
8026
8027 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
8028
8029         * config/mips/mips.c (mips_function_value): Handle complex return
8030         values.
8031
8032 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
8033
8034         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
8035         unshared.
8036         * reload.c (make_memloc): Copy result if it is still
8037         reg_equiv_memory_loc[regno] on return.
8038         (subst_reloads) [ENABLE_CHECKING]: Check that none of
8039         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
8040         reg_equiv_mem are modified by the substitutions.
8041
8042 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8043
8044         * predict.c (expensive_function_p): New.
8045         * rtl.h (expensive_function_p): Declare.
8046         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
8047         (use_fast_prologue_epilogue): New static variable.
8048         (expand_prologue): Set it; emit short prologues if unset.
8049         (expand_epilogue): Likewise.
8050
8051 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
8052
8053         * config.gcc: Add stormy16-*-elf case.
8054         * config/stormy16/stormy-abi: New file.
8055         * config/stormy16/stormy16-lib2.c: New file.
8056         * config/stormy16/stormy16-protos.h: New file.
8057         * config/stormy16/stormy16.c: New file.
8058         * config/stormy16/stormy16.h: New file.
8059         * config/stormy16/stormy16.md: New file.
8060         * config/stormy16/t-stormy16: New file.
8061
8062 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
8063
8064         * i386.h (no-accumulate-outgoing-args): Use proper mask.
8065
8066 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
8067
8068         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
8069         descriptor members are pointer size, not constant 4.
8070         * config/rs6000/rs6000.md (define_splits): Remove more unused
8071         constraints.
8072
8073 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8074
8075         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
8076
8077 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
8078
8079         * cp/rtti.c (VPARAMS): Fix parameter.
8080
8081 2001-08-24  Zack Weinberg  <zackw@panix.com>
8082
8083         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
8084         to zero.
8085         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
8086         to switch.
8087         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
8088         in if controlling use of insv.
8089         (extract_bit_field): Likewise, for extv and extzv.
8090
8091 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
8092
8093         * i386.md (movcc peep2): Fix load of 0.
8094
8095 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8096
8097         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
8098         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
8099
8100 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
8101
8102         * c-pragma.h: Move weak_syms and weak_decls...
8103         * varasm.c: ...here.  Now static.
8104         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
8105         depend on HANDLE_PRAGMA_WEAK.
8106
8107         * c-common.c (c_alignof, c_alignof_expr): Move here...
8108         * c-typeck.c: ...from here.
8109         * c-tree.h, c-common.h: Adjust.
8110
8111 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
8112
8113         * config/ia64/ia64.c (rws_update): If !pred, set write_count
8114         instead of incrementing it.
8115
8116         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
8117         asm ready, don't try to move them all into the same array element.
8118
8119 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8120
8121         * function.c (thread_prologue_and_epilogue_insns): Avoid
8122         fallthru flag on edge to exit.
8123
8124         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
8125
8126         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
8127         dead edges.
8128
8129 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
8130
8131         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
8132         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
8133         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
8134         Remove prototype.
8135
8136 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
8137
8138         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
8139         replace "GNU CC" with "GCC".
8140
8141 2001-08-23  Richard Henderson  <rth@redhat.com>
8142
8143         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
8144         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
8145         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
8146         Need GR between FR and not GR_AND_FR.
8147         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
8148         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
8149         AR regs before GR regs.
8150         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
8151         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
8152         (REGISTER_MOVE_COST): Update.
8153         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
8154
8155 2001-08-23  Richard Henderson  <rth@redhat.com>
8156
8157         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
8158         a register class.
8159
8160 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
8161
8162         * reload1.c (emit_reload_insns): Don't look for notes
8163         on a NULL store_insn.
8164
8165 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8166
8167         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
8168         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
8169         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
8170         format specifier warnings.
8171         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
8172
8173 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
8174
8175         * config/i386/i386-protos.h: Correct declaration of
8176         i386_pe_asm_named_section.
8177
8178 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8179
8180         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
8181         variable i.
8182         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
8183
8184 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8185
8186         * cpperror.c (print_location): Don't show _Pragma.
8187         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
8188         and file change callback generation here.
8189         (stack_include_file): Update use of cpp_push_buffer.
8190         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
8191         (struct cpp_buffer): Remove type, pfile members.
8192         * cppinit.c (cpp_handle_option): Use free_chain.
8193         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
8194         (skip_escaped_newlines, get_effective_char, lex_percent): Take
8195         a cpp_reader rather than a cpp_buffer.
8196         (skip_escaped_newlines, get_effective_char, skip_block_comment,
8197         skip_line_comment, parse_string, lex_percent, lex_dot,
8198         _cpp_lex_token): Update accordingly.
8199         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
8200         generation here.
8201         (cpp_push_buffer): Update prototype.
8202         (run_directive): Update use of cpp_push_buffer.
8203         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
8204         handle_assertion): Update use of run_directive.
8205         * cpplib.h (enum cpp_buffer_type): Remove.
8206         (cpp_push_buffer): Update prototype.
8207         * fix-header.c (read_scan_file): Update.
8208
8209 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8210
8211         * gcc.c (struct prefix_list): Change prefix to const char *.
8212
8213 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8214
8215         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
8216
8217 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
8218
8219         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
8220         from a new MEM.
8221
8222         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
8223         a squeezable note.
8224         * rtl.h: Adjust.
8225         * ifcvt.c (dead_or_predicable): Adjust.
8226         * loop.c (find_and_verify_loops): Adjust.
8227         * stmt.c (expand_end_case): Adjust.
8228         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
8229         head and end insn pointers in the basic block, not just local copies.
8230         (merge_blocks_move_predecessor_nojumps): Likewise.
8231
8232 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
8233
8234         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
8235         bitmap.h, builtin-types.def, builtins.c, builtins.def,
8236         c-aux-info.c, c-common.c, c-common.def, c-common.h,
8237         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
8238         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
8239         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
8240         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
8241         conditions.h, config.gcc, configure.frag, configure.in,
8242         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
8243         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
8244         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
8245         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
8246         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
8247         emit-rtl.c, errors.c, errors.h, except.c, except.h,
8248         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
8249         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
8250         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
8251         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
8252         gencheck.c, gencodes.c, genconfig.c, genemit.c,
8253         genextract.c, genflags.c, gengenrtl.c, genmultilib,
8254         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
8255         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
8256         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
8257         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
8258         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
8259         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
8260         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
8261         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
8262         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
8263         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
8264         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
8265         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
8266         params.h, predict.c, predict.def, predict.h, prefix.c,
8267         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
8268         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
8269         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
8270         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
8271         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
8272         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
8273         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
8274         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
8275         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
8276         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
8277         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
8278         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
8279         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
8280         xcoffout.h: replace "GNU CC" with "GCC".
8281
8282 2001-08-21  Richard Henderson  <rth@redhat.com>
8283
8284         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
8285         (final_scan_insn): Consider jump tables data even if we have no
8286         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
8287         ADDR_VEC_ALIGN.
8288         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
8289         (ASM_OUTPUT_CASE_END): Remove.
8290         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
8291         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
8292         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
8293
8294 2001-08-21  Richard Henderson  <rth@redhat.com>
8295
8296         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
8297         at barrier insns.  Emit stop bits before barriers.
8298
8299         * flow.c (flow_find_cross_jump): Don't consider unconditional
8300         return insns for commoning.
8301
8302         * final.c (compute_alignments): Fix typo.
8303
8304         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
8305         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
8306         (store_bit_field): Use mode_for_extraction more places.
8307         (extract_bit_field): Likewise.
8308
8309 2001-08-21  Zack Weinberg  <zackw@panix.com>
8310
8311         * caller-save.c: Don't include insn-codes.h.
8312         (reg_save_code, reg_restore_code): Make arrays of int.
8313         All uses updated to match.
8314         (insert_save, insert_restore): No need to initialize "code"
8315         variable upon declaration.
8316         * Makefile.in: update dependencies; fix typo in clean rule.
8317
8318 2001-08-21  Richard Henderson  <rth@redhat.com>
8319
8320         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
8321         (merge_if_block): Handle fallout from same.
8322
8323 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8324
8325         * builtins.c (type_to_class): Fix typo in last change.
8326
8327 2001-08-21  Richard Henderson  <rth@redhat.com>
8328
8329         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
8330         ia64_asm_output_label.
8331
8332         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
8333         copy of gp while the real gp register contains garbage.
8334
8335 2001-08-21  Zack Weinberg  <zackw@panix.com>
8336
8337         * expmed.c (mode_for_extraction): New function.
8338         (store_bit_field, extract_bit_field): Use it.
8339         * expr.h: Prototype it and provide an enum for its first argument.
8340
8341         * combine.c, function.c, recog.c: Don't include insn-codes.h.
8342         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
8343         and digging through the insn_data tables.
8344         * Makefile.in: Update dependencies.
8345
8346 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8347
8348         * cppfiles.c (stack_include_file): line-map.c now handles include
8349         depth.
8350         (handle_missing_handler): Similarly.
8351         (_cpp_execute_include): Similarly.
8352         (_cpp_pop_file_buffer): Similarly.
8353         * cpphash.h (struct cpp_reader): Remove system_include_depth,
8354         buffer_stack_depth and include_depth.
8355         * cpplib.c (do_include_common): line-map.c now handles include depth.
8356         (cpp_push_buffer): Similarly.
8357         (_cpp_pop_buffer): Similarly.
8358         * cppmacro.c (builtin_macro): Update.
8359         * line-map.c (init_line_maps): Set depth.
8360         (add_line_map): Increment "used" earlier.  Update and use the
8361         include depth.
8362         (trace_include): Use the include depth.
8363         * line-map.h (struct line_maps): New member depth.
8364
8365 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8366
8367         * cppfiles.c (stack_include_file): Don't handle -H here.
8368         * cppinit.c (cpp_start_read): Set include tracing after
8369         cpp_post_options and after stacking the main file.
8370         * line-map.c (trace_include): New.
8371         (init_line_maps, add_line_map): Update.
8372         * line-map.h (struct line_maps): New member trace_includes.
8373
8374 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8375
8376         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
8377         * cppfiles.c (stack_include_file): Only stack a file if there
8378         is something to do.  Return a boolean indicating whether a
8379         buffer was stacked or not.
8380         (_cpp_execute_include): Similarly.
8381         (_cpp_read_file): Similarly.
8382         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
8383
8384 2001-08-21  Sam Steingold  <sds@gnu.org>
8385
8386         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
8387         (RECACHE): keep obufp_before_macroname up to date
8388
8389 2001-08-21  Zack Weinberg  <zackw@panix.com>
8390
8391         * stmt.c: Don't include insn-codes.h.
8392         (expand_end_case): Machine specific logic moved to expr.c.
8393         No need to worry about __builtin_classify_type.
8394         (check_for_full_enumeration_handling, emit_case_nodes):
8395         Kill #if 0 blocks.
8396
8397         * builtins.o (expand_builtin_classify_type): Split up so code
8398         can be shared with fold_builtin_classify_type.
8399         (type_to_class, fold_builtin_classify_type): New functions.
8400         (fold_builtins): Handle __builtin_classify_type.
8401
8402         * expr.c (do_tablejump): Now static.
8403         (case_values_threshold, try_casesi, try_tablejump): New;
8404         code mostly from stmt.c (expand_end_case).
8405         (expr.h): Update prototypes.
8406
8407         * Makefile.in (stmt.o): Update dependencies.
8408
8409 2001-08-21  Will Cohen  <wcohen@redhat.com>
8410
8411         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
8412         declaration of variable i.
8413         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
8414         declaration of variable i.
8415
8416 2001-08-21  Richard Henderson  <rth@redhat.com>
8417
8418         * crtstuff.c: Fix thinko last change.  Move list tails to start
8419         of CRT_END section.  Tidy ifdefs.
8420         (__EH_FRAME_BEGIN__): Always static for ELF.
8421         (__do_global_ctors_1): Rename from __frame_dummy.
8422         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
8423         name change; don't hide __EH_FRAME_BEGIN__.
8424
8425 2001-08-21  Richard Henderson  <rth@redhat.com>
8426
8427         * gdbinit.in: Move break on exit after break on fancy_abort.
8428
8429         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
8430         sized types.
8431
8432 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8433
8434         * cpphash.h (_cpp_push_next_buffer): New.
8435         * cppinit.c (do_includes): Remove.
8436         (push_include, free_chain, _cpp_push_next_buffer): New.
8437         (cpp_start_read): Use them to rework command line option handling.
8438         (cpp_handle_option): Combine handling of -include and -imacros.
8439         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
8440         appropriate.  Always insert missing \n at EOF.
8441         * cpplib.c (start_directive): Get the directive position right.
8442         * cppmain.c (cb_file_change): Always print the first line, unless
8443         preprocessed.
8444
8445 2001-08-20  Andreas Jaeger  <aj@suse.de>
8446
8447         * profile.c (compute_branch_probabilities): Remove extra new-line
8448         in error message.
8449         * flow.c (verify_flow_info): Likewise.
8450
8451 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
8452
8453         * basic-block.h (basic_block): Add new field 'flags'.
8454         (BB_REACHABLE): Define.
8455         (expunge_block): Declare.
8456         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
8457         (EXIT_BLOCK_PTR): Ditto.
8458         (expunge_block): Remove static declaration.
8459         (cleanup_cfg): Clear bb->aux on every basic block.
8460         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
8461         computing reachability.
8462         (delete_unreachable_blocks): Delete block b if b->flags has
8463         BB_REACHABLE unset.
8464
8465 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
8466
8467         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
8468
8469 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8470
8471         * sparc.c (sparc_variable_issue): Fix typo in last change.
8472
8473 2001-08-20  Richard Henderson  <rth@redhat.com>
8474
8475         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
8476
8477 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8478
8479         * pa.h (RETURN_IN_MEMORY): Improve comment.
8480
8481 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
8482
8483         * doc/invoke.texi (Profiling options): Clarify the interactions
8484         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
8485
8486 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
8487
8488         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
8489         command.
8490
8491 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
8492
8493         * gcc.c (make_relative_prefix): Allocate a sufficiently large
8494         buffer.
8495
8496 2001-08-20  Richard Henderson  <rth@redhat.com>
8497
8498         * final.c (end_final): Fix typo last change.
8499
8500 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8501
8502         * cppinit.c (init_standard_includes): The returned buffer
8503         is already malloc-ed.
8504         * gcc.c (add_prefix): Similarly.
8505         * prefix.c (translate_name): Update to support clear buffer
8506         ownership rules.
8507         (update_path): Similarly.  Be sure to free any newly allocated
8508         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
8509         (tr): New function.
8510         * prefix.h (update_path): Update prototype and document.
8511         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
8512         up and update to new buffer ownership rules.
8513         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
8514
8515 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
8516
8517         * final.c (compute_alignments): New function.
8518         (init_insn_lengths): Do not care label_align.
8519         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
8520         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
8521         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
8522         (shorted_branches): Realloc label_align array; do
8523         not call init_insn_lengths; Do not care about loop alignments.
8524         * output.h (compute_alignments): Declare.
8525         * toplev.c (rest_of_compilation): Call compute_alignments.
8526         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
8527
8528         * predict.c (block_info_def): Add npredecesors, remove nvisited;
8529         change visited to tovisit.
8530         (propagate_freq): Use faster traversing algorithm.
8531         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
8532         to tovisit; reverse meaning.
8533
8534         * predict.c (struct block_info_def): Remove nvisited.
8535         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
8536         (estimate_bb_frequencies): Call mark_dfs_back_edges.
8537
8538 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
8539
8540         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
8541         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
8542         (TARGET_FUSED_MADD): New.
8543         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
8544         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
8545         the multiply-add instructions.
8546
8547 2001-08-19  Richard Henderson  <rth@redhat.com>
8548
8549         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
8550         is aligned to pointer size.
8551
8552 2001-08-19  Richard Henderson  <rth@redhat.com>
8553
8554         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
8555         display markers during final schedule.
8556
8557 2001-08-19  Richard Henderson  <rth@redhat.com>
8558
8559         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
8560
8561 2001-08-19  Richard Henderson  <rth@redhat.com>
8562
8563         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
8564         in the same string.
8565         (ASM_NAME_TO_STRING): Remove.
8566         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
8567         in the same string.  Remove support for expressions.
8568
8569 2001-08-19  Richard Henderson  <rth@redhat.com>
8570
8571         * config/i386/i386.md (tablejump): Make an expander; handle
8572         pic relative addressing here.
8573         (tablejump_1): Rename from tablejump_pic.
8574         (casesi): Remove.
8575
8576 2001-08-19  Richard Henderson  <rth@redhat.com>
8577
8578         * regclass.c (fix_register): Fix typo.
8579
8580 2001-08-18  Richard Henderson  <rth@redhat.com>
8581
8582         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
8583         (struct _Unwind_Context): Expand br_loc to hold it.
8584         (uw_frame_state_for): Handle leaf functions better.
8585         (uw_update_reg_address): Update for br_loc change.
8586
8587 2001-08-18  Richard Henderson  <rth@redhat.com>
8588
8589         * crtstuff.c: Move list heads before code that uses them.
8590         (__JCR_LIST__): Remove initial null.
8591         (frame_dummy, __frame_dummy): Do java registration here ...
8592         (__do_global_ctors_aux): ... not here.
8593
8594         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
8595         (__do_global_dtors_aux): Update to match.
8596         (__JCR_LIST__, __do_jv_register_classes): New.
8597         (.init): Call it.
8598         * config/ia64/crtend.asm (__JCR_END__): New.
8599         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
8600         instead of an indirect LTOFF22 reloc.
8601
8602 2001-08-18  Richard Henderson  <rth@redhat.com>
8603
8604         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
8605         * regclass.c (init_reg_sets_1): Fix typo.
8606         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
8607         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
8608         (ia64_compute_frame_size): Make ar.unat live when in use.
8609         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
8610         for ar.pfs; remove ar.unat handling.
8611         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
8612         call-saved.
8613         (PREDICATE_CODES): Add ar_pfs_reg_operand.
8614         * config/ia64/ia64-protos.h: Update decls.
8615         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
8616         (sibcall_pic): Likewise.
8617
8618 2001-08-18  Richard Henderson  <rth@redhat.com>
8619
8620         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
8621         pred_rel_mutex when searching for insn_group_barrier.
8622         * config/ia64/ia64.md (cycle_display): Combine the expander
8623         and insn patterns.
8624
8625         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
8626         bit before asm as needed.
8627
8628 2001-08-18  Richard Henderson  <rth@redhat.com>
8629
8630         * timevar.def (TV_MACH_DEP): New.
8631         * toplev.c (rest_of_compilation): Use it.
8632         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
8633
8634 2001-08-18  Zack Weinberg  <zackw@panix.com>
8635
8636         * unwind-dw2.c (execute_stack_op): Add default aborts to
8637         the inner switches to prevent warnings.
8638
8639 2001-08-18  Richard Henderson  <rth@redhat.com>
8640
8641         * timevar.h (struct timevar_time_def): Change element type to float.
8642         (ticks_to_msec, clocks_to_msec): Likewise.
8643         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
8644         (get_time): Likewise.
8645         (timevar_print): Adjust zero check and printing to match.
8646
8647 2001-08-18  Zack Weinberg  <zackw@panix.com>
8648
8649         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
8650         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
8651         Eliminate overfull or underfull hboxes.
8652
8653 2001-08-18  Zack Weinberg  <zackw@panix.com>
8654
8655         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
8656
8657 2001-08-18  Zack Weinberg  <zackw@panix.com>
8658
8659         * haifa-sched.c: Convert to target hooks.  Macros replaced
8660         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
8661         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
8662         MD_SCHED_FINISH, and HAVE_cycle_display.
8663         * target-def.h (TARGET_SCHED_ADJUST_COST,
8664         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
8665         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
8666         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
8667         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
8668         New hook #defines to be overridden.
8669         (TARGET_SCHED): Bring them all together.
8670         (TARGET_INITIALIZER): Update.
8671         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
8672         instead of 'struct rtx_def *' throughout.
8673         (struct sched): New set of hooks for the scheduler.
8674         * Makefile.in (haifa-sched.o): Depend on target.h.
8675         * doc/tm.texi: Document the new scheduler hooks, together in
8676         their own section, instead of scattered around.
8677         Fix a bunch of underfull/overfull hboxes.
8678
8679         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
8680         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
8681         sparc.h: Don't define any of the old scheduler macros.
8682
8683         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
8684         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
8685         sparc.c: Create hook functions from code extracted from
8686         corresponding target header, or make existing hooks static, as
8687         appropriate.  Set the appropriate entries in targetm.
8688
8689         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
8690         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
8691         rs6000-protos.h, s390-protos.h, sparc-protos.h:
8692         Remove prototypes for functions which are now static.
8693
8694         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
8695         related gunk; the Haifa scheduler is now the only choice.
8696
8697 2001-08-18  Zack Weinberg  <zackw@panix.com>
8698
8699         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
8700         * genopinit.c: Put floating point divide insns in sdiv_optab.
8701         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
8702         * config/gofast.h, config/c4x/c4x.h,
8703         config/ia64/hpux_longdouble.h, config/mips/mips.h,
8704         config/pa/long_double.h, config/rs6000/sysv4.h,
8705         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
8706         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
8707         (init_optabs): Use init_optabv for overflow-trapping optabs.
8708         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
8709         cmp_optab RTX codes so have_insn_for can find them.
8710
8711         * optabs.c (expand_simple_binop, expand_simple_unop,
8712         have_insn_for, gen_sub3_insn): New interfaces.
8713         * expr.h: Prototype new functions.
8714         (enum optab_methods): Move here from optabs.h.
8715
8716         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
8717         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
8718         Use new functions instead of working directly with optabs.
8719         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
8720         unroll.c: Don't include optabs.h.
8721         * caller-save.c, combine.c, function.c, stmt.c: Just include
8722         insn-codes.h, not optabs.h.
8723         * Makefile.in: Update dependencies.
8724
8725         * combine.c (make_compound_operation, simplify_comparison):
8726         Fix typos testing for this or that instruction.
8727
8728 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8729
8730         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
8731         generating libgcc.a.
8732
8733 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8734
8735         * except.c (TYPE_HASH): Delete.
8736
8737         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
8738         HOST_WIDE_INT.
8739
8740         * tree.c (TYPE_HASH): Delete.
8741
8742         * tree.h (TYPE_HASH): Define.
8743
8744 2001-08-18  Graham Stott  <grahams@redhat.com>
8745
8746         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
8747         define_split.
8748         (adddi3_internal_2+2): Likewise.
8749         (eh_set_lr_di+1): Likewise.
8750
8751 2001-08-17  Richard Henderson  <rth@redhat.com>
8752
8753         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8754         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
8755         * dwarf2asm.c: ... here.
8756         * dwarfout.c: Remove them.
8757
8758         * varasm.c (assemble_integer): Add align parameter.
8759         (assemble_real, output_constant, output_constructor): Likewise.
8760         * output.h: Update decls.
8761         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
8762         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
8763         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
8764         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
8765         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
8766         Update all callers.
8767
8768         * final.c (end_final): Abort profile block generation if we
8769         havn't layed it out properly.
8770         * output.h (assemble_eh_integer): Remove stale decl.
8771         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
8772         (min_align): New.
8773         (assemble_integer): Handle unaligned data.
8774         (assemble_real): Abort on unaligned data.
8775         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
8776         anything useful.
8777         (default_dtor_section_asm_out_destructor): Use assemble_align.
8778         (default_named_section_asm_out_constructor): Likewise.
8779         (default_ctor_section_asm_out_constructor): Likewise.
8780         * config/darwin.c (machopic_asm_out_constructor): Likewise.
8781         (machopic_asm_out_destructor): Likewise.
8782         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
8783         (nextstep_asm_out_destructor): Likewise.
8784         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
8785         (vms_asm_out_destructor): Likewise.
8786
8787 2001-08-17  Richard Henderson  <rth@redhat.com>
8788
8789         * config/mips/iris6.h (TARGET_IRIX6): New.
8790         (current_section_name, current_section_flags): New.
8791         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
8792         (MAX_OFILE_ALIGNMENT): New.
8793         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
8794         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
8795         (copy_file_data): Split out from
8796         (mips_asm_file_end): ... here.
8797         (mips_asm_file_start): Remove extra .section directive.  Use
8798         tmpfile instead of mips_make_temp_file.
8799         (mips_unique_section): Use const char * as needed for warnings.
8800         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
8801         re-add align parameter.
8802         (iris6_asm_named_section): New.
8803         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
8804         (iris6_asm_output_align, iris6_section_align_1): New.
8805         (iris6_asm_file_start, iris6_asm_file_end): New.
8806         * config/mips/mips-protos.h: Update decls.
8807
8808 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
8809
8810         * doc/install.texi (Install GCC): Add links to build status pages.
8811         (Specific): Ditto.
8812         (Final install): Ditto; request updates for specific info
8813
8814 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8815
8816         * cpperror.c (print_location):  Don't take a file name; use the
8817         line map instead.
8818         (_cpp_begin_message): Similarly.
8819         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
8820         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
8821         (cpp_pedwarn_with_file_and_line): Remove.
8822         * cppfiles.c (stack_include_file): Update; set filename to stdin
8823         here when appropriate.
8824         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
8825         (_cpp_begin_message): Don't take a file name.
8826         * cppinit.c: Add comment.
8827         * cpplex.c: Fix end-of-directive indicator.
8828         * cpplib.c: Don't include intl.h.
8829         (run_directive, do_diagnostic): Update.
8830         (do_line): Update to not use nominal_fname.
8831         (cpp_push_buffer): Don't take a filename.
8832         * cpplib.h (struct ht): Remove.
8833         (cpp_push_buffer): Don't take a filename.
8834         (cpp_pedwarn_with_file_and_line): Remove.
8835         * cppmacro.c (struct cpp_macro): Remove file.
8836         (builtin_macro): Update.
8837         (_cpp_create_definition): Update.
8838         * cppmain.c: Correct comment.
8839         * fix-header.c (read_scan_file): Update.
8840
8841 2001-08-17  Kazu Hirata  <kazu@hxi.com>
8842
8843         * sbitmap.c: Fix comment formatting.
8844         * sched-deps.c: Likewise.
8845         * sibcall.c: Likewise.
8846         * simplify-rtx.c: Likewise.
8847         * ssa.c: Likewise.
8848         * ssa-ccp.c: Likewise.
8849         * stor-layout.c: Likewise.
8850         * timevar.c: Likewise.
8851         * toplev.c: Likewise.
8852         * unwind-dw2.c: Likewise.
8853         * unwind-dw2-fde.c: Likewise.
8854         * varasm.c: Likewise.
8855
8856 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8857
8858         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
8859         or larger than an integer in memory.
8860
8861 2001-08-17  Zack Weinberg  <zackw@panix.com>
8862
8863         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
8864         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
8865         * rtl.h: Don't forward-declare union tree_node here.  Don't
8866         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
8867         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
8868         and tree respectively.
8869         * tree.h: Don't forward-declare struct rtx_def here.  Don't
8870         typedef tree here.  Change all uses of struct rtx_def *,
8871         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
8872         and tree respectively.
8873
8874 2001-08-17  Richard Henderson  <rth@redhat.com>
8875
8876         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
8877         config/mips/openbsd.h: Fix typos last change.
8878
8879 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8880
8881         * doc/invoke.texi (Optimize Options): The default for
8882         -finline-limit is 600.
8883
8884 2001-08-17  Richard Henderson  <rth@redhat.com>
8885
8886         * varasm.c (text_section): Allow TEXT_SECTION to override the
8887         printing of TEXT_SECTION_ASM_OP.
8888         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
8889         (DATA_SECTION, BSS_SECTION): Remove.
8890         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
8891         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
8892         Rename from s/_NAME//.
8893         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
8894         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
8895         (TEXT_SECTION): ... here.  New.
8896         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
8897         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
8898         * config/mips/openbsd.h: Likewise.
8899         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
8900         (mips_asm_file_end): Likewise test.
8901         (mips_output_function_epilogue): Likewise.  Switch back to data
8902         section after emitting the function.
8903
8904         * doc/tm.texi (Sections): Document TEXT_SECTION.
8905
8906 2001-08-17  Richard Henderson  <rth@redhat.com>
8907
8908         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
8909         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
8910
8911 2001-08-17  Richard Henderson  <rth@redhat.com>
8912
8913         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
8914         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
8915         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
8916         Add aligned attribute.
8917
8918 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
8919
8920         * config/sh/sh.md: Add modes to unspecs in first insn to match
8921         those in the second.
8922
8923         * Makefile.in: Fix collect2 copy for Cygwin.
8924
8925 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
8926
8927         Install the proper patch.
8928         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
8929         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
8930         (expand_function_start): Likewise.
8931         * stmt.c (expand_decl): Likewise.
8932         * varasm.c (make_decl_rtx): Likewise.
8933
8934 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8935
8936         * final.c: Undo my previous accidental checkin.
8937         * output.h: Likewise.
8938         * tm.texi: Likewise.
8939
8940 2001-08-16  Richard Henderson  <rth@redhat.com>
8941
8942         * varasm.c (named_section_flags): Remove align parameter.
8943         * varasm.c, dwarf2out.c: Update all callers.
8944         * output.h: Update prototypes.
8945
8946         * target.h (target.asm_out.named_section): Remove align parameter.
8947         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
8948         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
8949         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
8950         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
8951         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
8952
8953         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
8954         (get_named_section_flags, set_named_section_flags): New.
8955         (named_section_flags): Use them.
8956         (named_section): Do decl vs section flags check here...
8957         (default_section_type_flags): ... not here.
8958         (init_varasm_once): Create in_named_htab.
8959         (resolve_unique_section): Mark reloc unused.
8960
8961 2001-08-16  Richard Henderson  <rth@redhat.com>
8962
8963         * varasm.c (force_const_mem): Keep pool alignment in bits.
8964         (output_constant_pool): Use assemble_align.
8965
8966 2001-08-16  Zack Weinberg  <zackw@panix.com>
8967
8968         * doc/tm.texi: Remove extra @table command.
8969
8970 2001-08-16  Zack Weinberg  <zackw@panix.com>
8971
8972         * final.c (shorten_branches): Clear the end of the label_align
8973         array only if we made it larger.  Break up messy expressions
8974         for clarity.
8975
8976         * diagnostic.c (internal_error): Check for error recursion
8977         before doing ICE suppression.
8978
8979         * timevar.c: Timing variables now count in milliseconds.
8980         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
8981         (get_time): Not here.
8982         (timevar_print): Don't print any timer whose user, cpu, and
8983         wall times are all zero as displayed.
8984         * timevar.h: Update comment aboout units.  Make timevar
8985         counters unsigned.
8986
8987 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
8988
8989         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
8990         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
8991         (expand_function_start): Likewise.
8992         * stmt.c (expand_decl): Likewise.
8993         * varasm.c (make_decl_rtx): Likewise.
8994
8995 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
8996
8997         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
8998         (finalize_record_size): Don't set TYPE_USER_ALIGN.
8999
9000 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9001
9002         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
9003         variables.
9004
9005 2001-08-16  Andreas Jaeger  <aj@suse.de>
9006
9007         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
9008         prototype.
9009
9010 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
9011
9012         * rtl.h (only_sets_cc0_p): New prototype.
9013         * jump.c (sets_cc0_p): Handle INSN.
9014         (only_sets_cc0_p): New function.
9015         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
9016         (tidy_fallthru_edge): Likewise.
9017         * integrate.c (copy_insn_list): Likewise.
9018         * unroll.c (unroll_loop): Likewise.
9019         (copy_loop_body): Likewise.
9020
9021 2001-08-15  Jason Eckhardt  <jle@redhat.com>
9022
9023         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
9024
9025 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
9026
9027         * predict.c (struct block_info_def): Remove nvisited.
9028         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
9029         (estimate_bb_frequencies): Call mark_dfs_back_edges.
9030
9031         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
9032         (ix86_adjust_cost): Teach scheduler that latency to load operand can
9033         be masked.
9034
9035 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
9036
9037         * predict.def: Update hitrates.
9038
9039 2001-08-15  Richard Henderson  <rth@redhat.com>
9040
9041         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
9042
9043 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
9044
9045         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
9046         note from its associated jump.
9047
9048 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
9049
9050         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
9051         also on 64-bit s390x targets.
9052
9053 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
9054
9055         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
9056         function.
9057         (arm_expand_prologue): Handled nested functions which take a
9058         variable argument list.
9059         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
9060         macro with an invocation of
9061         arm_compute_initial_elimination_offset.
9062         * config/arm/arm-protos.h: Prototype
9063         arm_compute_initial_elimination_offset.
9064
9065 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9066
9067         * doc/install.texi (Specific, avr): Fix markup.
9068         (Specific, c4x): Ditto.
9069
9070 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
9071
9072         * predict.c (dump_prediction): Change `bool' parameter to `int'.
9073
9074 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
9075
9076         * Makefile.in (OBJS): Add rtl-error.o
9077         (rtl-error.o): New rule.
9078         (diagnostic.o): Adjust dependency.
9079         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
9080         error_for_asm, _fatal_insn, _fatal_insn_not_found,
9081         warning_for_asm): Move to...
9082         rtl-error.c: ...here.  New file.
9083
9084 2001-08-14  Richard Henderson  <rth@redhat.com>
9085
9086         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
9087         if USING_SJLJ_EXCEPTIONS.
9088
9089 2001-08-14  Steve Ellcey <sje@cup.hp.com>
9090
9091         * tlink.c (scan_linker_output): Check string for unsatisfied in
9092         addition to undefined and unresolved.
9093
9094 2001-08-14  Graham Stott  <grahams@redhat.com>
9095
9096         * libgcc2.c (*): Replace EH_FRAME_SECTION with
9097         EH_FRAME_SECTION_NAME.
9098
9099 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
9100
9101         * genattrtab.c (simplify_test_exp_in_temp): New function.
9102         (simplify_test_exp): Avoid explicit use of temporary obstack.
9103         (simplify_cond, insert_right_side, evaluate_eq_attr,
9104         simplify_and_tree, simplify_or_tree, eliminate_known_true):
9105         Use simplify_test_exp_in_temp.
9106         (optimize_attrs): Iterate until expression stabilizes.
9107
9108 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
9109
9110         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
9111         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
9112
9113 2001-08-13  Richard Henderson  <rth@redhat.com>
9114
9115         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
9116         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
9117         * config/arm/conix-elf.h: Likewise.
9118
9119 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
9120
9121         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
9122         in gcc.c.
9123         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9124
9125         * gcse.c (hash_scan_set): Expressions that are set as part of
9126         jump instructions are not available.
9127
9128 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
9129
9130         * config/s390/s390.c (print_operand, s390_function_prologue,
9131         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
9132
9133 2001-08-13  Richard Henderson  <rth@redhat.com>
9134
9135         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
9136         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
9137         * doc/tm.texi (Exception Region Output): Document it.
9138
9139 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
9140
9141         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
9142         DWARF2 instead of stabs by default.
9143
9144 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
9145
9146         * config/rs6000/rs6000.c: Include optabs.h.
9147
9148 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
9149
9150         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
9151         save/restore routines.
9152         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
9153
9154 2001-08-13  Andreas Jaeger  <aj@suse.de>
9155
9156         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
9157         the english is correct.
9158
9159 2001-08-13  Zack Weinberg  <zackw@panix.com>
9160
9161         * expr.h: Split out optab- and libfunc-related code to...
9162         * optabs.h, libfuncs.h: ... these new headers.
9163
9164         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
9165         (OPTABS_H): New.
9166         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
9167         dependencies.
9168         * mkconfig.sh: Don't include insn-codes.h from config.h.
9169
9170         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
9171         enum insn_code is available.  Move reload_in_optab and
9172         reload_out_optab array declarations to optabs.h.
9173         * regmove.c (gen_add3_insn): Move to optabs.c, export from
9174         there, prototype in expr.h.
9175         * gencodes.c: Cleanup: zap global variables, don't use
9176         printf where puts will do, don't bother defining MAX_INSN_CODE
9177         which nothing uses, let CODE_FOR_nothing get its value implicitly.
9178
9179         * genemit.c, genopinit.c: Include optabs.h in generated file.
9180         * genoutput.c: Include insn-codes.h in generated file.
9181         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
9182         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
9183         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
9184         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
9185         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
9186         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
9187         Include optabs.h.
9188         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
9189         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
9190         config/m88k/m88k.c, config/sparc/sparc.c:
9191         Include libfuncs.h.
9192         * reload.c: Include expr.h and optabs.h before reload.h.
9193         * config/alpha/alpha.c: Include tree.h before reload.h.
9194         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
9195         and reload.h in that order.
9196         * config/sparc/sparc.c: Include debug.h.
9197         * recog.c: Include insn-codes.h.
9198
9199 2001-08-13  Andreas Jaeger  <aj@suse.de>
9200
9201         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
9202         s390*linux.
9203
9204 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
9205
9206         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
9207         * gcc.c (init_spec): Fix typo in comment.
9208         * varasm.c (data_section): Fix typo in comment.
9209
9210 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
9211
9212         * predict.c (dump_prediction): New argument "USED".
9213         (combine_predictions_for_insn): Determine the used heuristics,
9214         output the case no heuristic applied.
9215         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
9216
9217 2001-08-13  Andreas Jaeger  <aj@suse.de>
9218
9219         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
9220         register %rip.
9221
9222 2001-08-13  Kazu Hirata  <kazu@hxi.com>
9223
9224         * jump.c: Fix formatting.
9225
9226 2001-08-13  Kazu Hirata  <kazu@hxi.com>
9227
9228         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
9229         length.
9230
9231 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
9232
9233         * loop.c (check_dbra_loop): Use condjump_label to compute
9234         jump_label.
9235
9236         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
9237         to better document the files they're in.
9238
9239 2001-08-12  Zack Weinberg  <zackw@panix.com>
9240
9241         * recog.h (struct insn_operand_data): Shrink 'mode' field
9242         to 16 bits.
9243
9244 2001-08-12  Kazu Hirata  <kazu@hxi.com>
9245
9246         * gcc.c: Fix comment formatting.
9247         * gccspec.c: Likewise.
9248         * gcov.c: Likewise.
9249         * gcse.c: Likewise.
9250         * genemit.c: Likewise.
9251         * gengenrtl.c: Likewise.
9252         * genrecog.c: Likewise.
9253         * gensupport.c: Likewise.
9254         * ggc-page.c: Likewise.
9255         * global.c: Likewise.
9256         * graph.c: Likewise.
9257         * ifcvt.c: Likewise.
9258         * integrate.c: Likewise.
9259         * lcm.c: Likewise.
9260         * libgcc2.c: Likewise.
9261         * loop.c: Likewise.
9262         * mbchar.c: Likewise.
9263         * optabs.c: Likewise.
9264         * predict.c: Likewise.
9265         * prefix.c: Likewise.
9266         * profile.c: Likewise.
9267         * protoize.c: Likewise.
9268         * real.c: Likewise.
9269         * recog.c: Likewise.
9270         * regclass.c: Likewise.
9271         * regmove.c: Likewise.
9272         * reg-stack.c: Likewise.
9273         * reload1.c: Likewise.
9274         * resource.c: Likewise.
9275         * rtlanal.c: Likewise.
9276         * rtl.c: Likewise.
9277
9278 2001-08-12  Kazu Hirata  <kazu@hxi.com>
9279
9280         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
9281         a tree representing a constant is passed to the macro.
9282
9283 2001-08-12  Richard Henderson  <rth@redhat.com>
9284
9285         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
9286         (rs6000_elf_asm_out_destructor): New.
9287         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
9288         (DTORS_SECTION_ASM_OP): Remove.
9289         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9290         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
9291
9292 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
9293
9294         Revert:
9295         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9296         * gcc.c (set_collect_gcc_options): New function, split out from
9297         main.
9298         Ignore elided switches.
9299         (do_spec_1): Invoke before executing command.
9300         (set_input): Export.
9301         Move declaration ...
9302         * gcc.h (set_input): ... here.
9303         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9304         file.
9305
9306 2001-08-12  Richard Henderson  <rth@redhat.com>
9307
9308         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
9309         thinko wrt TARGET_RELOCATABLE.
9310
9311 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9312
9313         * fix-header.c (cb_file_change): Update prototype.
9314
9315 2001-08-11  Zack Weinberg  <zackw@panix.com>
9316
9317         * toplev.c (set_float_handler): Make static.
9318         * toplev.h: Don't prototype set_float_handler.
9319
9320         * simplify-rtx.c: Don't include setjmp.h.
9321         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
9322         New functions.
9323         (simplify_unary_operation, simplify_binary_operation): Use them,
9324         via do_float_handler.
9325
9326         * fold-const.c: Don't include setjmp.h.
9327         (exact_real_inverse_1): New function.
9328         (exact_real_inverse): Use it, via do_float_handler.
9329
9330         * varasm.c: Don't include setjmp.h.
9331         (assemble_real_1): New function.
9332         (assemble_real): Use it, via do_float_handler.
9333         Call internal_error if we get a trap here.
9334
9335         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
9336         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
9337
9338 2001-08-11  Zack Weinberg  <zackw@panix.com>
9339
9340         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
9341         STACK_BOUNDARY if not already defined.
9342
9343         * calls.c, function.c, reload1.c, explow.c: Don't default
9344         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
9345         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
9346
9347         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
9348         to run-time test.
9349
9350         * doc/tm.texi: Document that STACK_BOUNDARY is required;
9351         clarify difference between it and PREFERRED_STACK_BOUNDARY.
9352
9353 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9354
9355         * cppmacro.c (enter_macro_context): Push macro expansions even
9356         if empty.
9357
9358 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9359
9360         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
9361         (rs6000_elf_section_type_flags): Actually return a value.
9362
9363 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
9364
9365         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
9366         Clean up code: add missing comments and prototypes, fix warnings,
9367         remove obsolete code, fix spacing to conform to coding style.
9368
9369 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
9370
9371         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
9372         and TARGET_ASM_CLOSE_PAREN.
9373         (regclass_map): CC register belongs to class NO_REGS.
9374         (legitimize_pic_address): Don't generate unnecessary moves
9375         (to avoid confusing loop optimization).
9376         (check_and_change_labels): Replace jump_long by indirect_jump.
9377         (s390_final_chunkify): Don't start a new literal pool on section
9378         switch in 64-bit code.
9379         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
9380
9381         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
9382         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
9383         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
9384         modes correctly.
9385         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
9386         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
9387         (CONST_COSTS): Fixed incorrect costs.
9388
9389         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
9390         Use emit_jump instead of emit_jump_insn (gen_jump).
9391         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
9392         (to avoid confusing flow analysis).
9393         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
9394         (casesi, casesi_jump): New.
9395         (jump_long): Removed.  Functionality merged into indirect_jump.
9396         (indirect_jump): Accept address_operand, not just register_operand.
9397         (cjump_long, icjump_long): Use same logic as indirect_jump.
9398         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
9399         Fixed broken setjmp/longjmp handling.
9400         (do_builtin_setjmp_setup): Removed.
9401
9402         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
9403         broken GNU as versions that don't accept .quad with large
9404         negative values.  Use hexadecimal output instead.
9405         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
9406         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
9407         FUNCTION_EPILOGUE): Removed.  Now in targetm.
9408
9409         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
9410
9411         * config/s390/fixdfdi.h: Add missing copyright statement.
9412         Fix type conflicts on 64-bit.  Add missing SFmode routines.
9413
9414         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
9415         email address.
9416
9417 2001-08-11  Richard Henderson  <rth@redhat.com>
9418
9419         * rtl.h (REG_EH_RETHROW): Remove.
9420         * rtl.c (reg_note_name): Update.
9421         * combine.c (distribute_notes): Don't check for it.
9422
9423 2001-08-11  Richard Henderson  <rth@redhat.com>
9424
9425         * combine.c (distribute_notes): Place REG_SETJMP.
9426
9427 2001-08-11  Richard Henderson  <rth@redhat.com>
9428
9429         * doc/extend.texi (Arrays and pointers implementation): Discourage
9430         relying on sign-extension of pointers.
9431
9432 2001-08-11  H.J. Lu <hjl@gnu.org>
9433
9434         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
9435         in_dtors.
9436         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
9437         RDATA_SECTION_ASM_OP.
9438
9439 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9440
9441         * doc/install.texi (Specific, c4x): Fix cross-reference to the
9442         main manual to work both for info and HTML versions.
9443
9444 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9445             Matt Kraai <kraai@alumni.carnegiemellon.edu>
9446
9447         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
9448         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
9449         (struct cpp_pool): New member first.
9450         * cppinit.c (append_include_chain): Plug memory leaks.
9451         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
9452         Allocate pragma structures from the (aligned) macro pool to
9453         avoid leaking memory.
9454         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
9455         so we don't leak memory.
9456         * hashtable.c (ht_destroy): New.
9457         * hashtable.h (ht_destroy): New.
9458
9459 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9460             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9461
9462         * c-lex.c (map): Make const.
9463         (cb_file_change): Update for callback passing a line map.
9464         Don't assume we have a previous map.  Remove sanity check
9465         about popping too many files.
9466         * cpperror.c (print_location): Make map const.
9467         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
9468         (cpp_make_system_header): Similarly.
9469         (search_from): Similarly.
9470         (_cpp_execute_include): Don't remember where we came from.
9471         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
9472         (struct cpp_reader): Make map const.
9473         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
9474         * cpplib.c (do_line): Update; line maps now hold sysp.
9475         (cpp_push_buffer): Similarly.
9476         (_cpp_do_file_change): Similarly; callback with map instead.
9477         (cpp_get_line_maps): Constify return value.
9478         (_cpp_pop_buffer): Update.
9479         * cpplib.h (struct cpp_file_change): Remove.
9480         (struct cpp_callbacks): Update.
9481         (cpp_get_line_maps): Constify return value.
9482         * cppmacro.c (_cpp_create_definition): Update.
9483         * cppmain.c (struct printer): Constify map.
9484         (maybe_print_line): Similarly.
9485         (print_line): Similarly.  Deduce flags 1 and 2 here.
9486         (cb_file_change): Update.
9487         * line-map.c (free_line_maps): Warn regardless.
9488         (add_line_map): Return pointer to const.  When passed NULL to_file
9489         with LC_LEAVE, use the obvious values for the return point so the
9490         caller doesn't have to figure them out.
9491         (lookup_line): Return pointer to const.
9492         (print_containing_files): Take pointer to const.
9493         * line-map.h (struct line_map): New members reason, sysp.
9494         (add_line_map): Return pointer to const.
9495         (lookup_line): Similarly.
9496         (print_containing_files): Take pointer to const.
9497
9498 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
9499             Richard Henderson  <rth@redhat.com>
9500
9501         * regmove.c (regmove_optimize): Avoid setting a register twice in
9502         a parallel set.
9503
9504 2001-08-10  Richard Henderson  <rth@redhat.com>
9505
9506         * doc/extend.texi (Arrays and pointers implementation): Document
9507         behavior of pointer/integer conversion.
9508
9509 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
9510
9511         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
9512
9513 2001-08-10  Richard Henderson  <rth@redhat.com>
9514
9515         * doc/extend.texi (C Implementation): New chapter.
9516         * doc/gcc.texi (Top): Link it in.
9517
9518 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
9519
9520         * doc/install.texi (Specific): Fix CVS merge botch.
9521
9522 2001-08-10  Richard Henderson  <rth@redhat.com>
9523
9524         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
9525         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
9526
9527 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
9528
9529         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
9530         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
9531         this macro is now required.
9532
9533         * cselib.c (cselib_process_insn), flow.c (propagate_block),
9534         loop.c (find_and_verify_loops), reload.c (reload): Check
9535         for rtx code of CALL_INSN, not CALL, when deciding if we
9536         need to check for REG_SETJMP note.
9537
9538         * gcse.c (compute_hash_table, compute_store_table): Update
9539         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
9540         logic.
9541
9542         * config/avr/avr.c: Fix typo.
9543         * config/convex/convex.c (expand_movstr): Use adjust_address.
9544         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
9545         variable.
9546         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
9547         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
9548         Fix typo.
9549         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
9550         Do define STACK_BOUNDARY.
9551         * config/i370/i370.c: Include expr.h.
9552         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
9553         config/pa/som.h, config/v850/v850.h: Take in_ctors and
9554         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
9555         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
9556         * config/m88k/m88k.c: Include c-tree.h after expr.h.
9557         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
9558         * config/romp/romp.c: Include expr.h after tree.h.
9559         Include toplev.h.
9560         (output_fpop): Use xmalloc, not oballoc.
9561         * config/we32k/we32k.c: Include expr.h.
9562
9563 2001-08-10  Kazu Hirata  <kazu@hxi.com>
9564
9565         * config/h8300/h8300.h: Fix formatting.
9566
9567 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
9568
9569         * c-common.h (RETURN_NULLIFIED_P): Lose.
9570         * c-semantics.c (genrtl_return_stmt): Don't check it.
9571
9572 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9573
9574         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
9575         (mips_annotate_frame_insn): New function.
9576         (mips_emit_frame_related_store): New function.
9577         (save_restore_insns): Don't mark instructions that set up the base
9578         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
9579         the store instructions instead.
9580         (mips_expand_prologue): If the stack size is moved into a temporary
9581         register, do not mark that move as frame-related.  Add a
9582         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
9583
9584 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9585
9586         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
9587         stack slot as unchanging if current_function_calls_eh_return.
9588
9589 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
9590
9591         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
9592         access the second half of the TFmode scratch operand.
9593
9594 2001-08-10  Anthony Green  <green@redhat.com>
9595
9596         * java/class.c (emit_register_classes): Conditionalize code on
9597         JCR_SECTION_NAME.
9598
9599 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9600
9601         * doc/install.texi (Specific, avr): Fix cross-reference to the
9602         main manual to work both for info and HTML versions.
9603
9604 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9605
9606         * stmt.c (expand_null_return_1): Remove code to generate simple returns
9607         and "use_goto" argument.
9608         (expand_null_return, expand_value_return): Update all callers.
9609         * function.c (expand_function_end): Remove code to generate simple
9610         return.
9611         * config/vax/vax.md (epilogue): New expander for function return.
9612         * doc/md.texi (epilogue): Remove "if defined".
9613
9614 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
9615
9616         * Makefile.in: Partially revert my previous change:
9617         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
9618         of the hashtab.o and safe-ctype.o rules.
9619
9620 2001-08-09  Richard Henderson  <rth@redhat.com>
9621
9622         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
9623         (USE_COLLECT2): Remove duplicate definition.
9624         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
9625         (use_collect2): Remove dead code.
9626         * configure.in (use_collect2): Remove will_use_collect2 and
9627         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
9628         * configure: Rebuild.
9629
9630         * target.h (targetm.asm_out.constructor): New.
9631         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
9632         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
9633         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
9634         * varasm.c (in_ctors, in_dtors): New.
9635         (assemble_constructor, assemble_destructor): Remove.
9636         (default_stabs_asm_out_destructor): New.
9637         (default_named_section_asm_out_destructor): New.
9638         (dtors_section, default_dtor_section_asm_out_destructor): New.
9639         (default_stabs_asm_out_constructor): New.
9640         (default_named_section_asm_out_constructor): New.
9641         (ctors_section, default_ctor_section_asm_out_constructor): New.
9642         * output.h: Update declarations.
9643         * c-decl.c (c_expand_body): Use target hooks instead of
9644         assemble_constructor and assemble_destructor.
9645         * profile.c (output_func_start_profiler): Likewise.
9646         * objc/objc-act.c (finish_objc): Likewise.
9647         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
9648         for the constructor.
9649         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
9650
9651         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
9652         (DTORS_SECTION_ASM_OP): Likewise.
9653         (__CTOR_LIST__): Use attribute section when possible.
9654         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
9655
9656         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
9657         ASM_OUTPUT_CONSTRUCTOR.
9658
9659         * config/darwin.c (machopic_asm_out_constructor): New.
9660         (machopic_asm_out_destructor): New.
9661         * config/darwin-protos.h: Update declarations.
9662         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9663         (ASM_OUTPUT_DESTRUCTOR): Remove.
9664         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9665         * config/nextstep.c (nextstep_asm_out_constructor): New.
9666         (nextstep_asm_out_destructor): New.
9667         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9668         (ASM_OUTPUT_DESTRUCTOR): Remove.
9669         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9670         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
9671         ASM_OUTPUT_*STRUCTOR.
9672         * config/i386/aix386ng.h: Likewise.
9673
9674         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
9675         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
9676         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
9677         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9678         * config/lynx.h: Likewise.
9679         * config/netware.h: Likewise.
9680         * config/psos.h: Likewise.
9681         * config/alpha/alpha-interix.h: Likewise.
9682         * config/alpha/elf.h: Likewise.
9683         * config/arc/arc.h: Likewise.
9684         * config/arm/aof.h: Likewise.
9685         * config/arm/coff.h: Likewise.
9686         * config/arm/elf.h: Likewise.
9687         * config/c4x/c4x.h: Likewise.
9688         * config/h8300/h8300.h: Likewise.
9689         * config/i386/cygwin.h: Likewise.
9690         * config/i386/djgpp.h: Likewise.
9691         * config/i386/i386-coff.h: Likewise.
9692         * config/i386/i386-interix.h: Likewise.
9693         * config/i386/sco5.h: Likewise.
9694         * config/i386/vsta.h: Likewise.
9695         * config/i386/win32.h: Likewise.
9696         * config/i960/i960-coff.h: Likewise.
9697         * config/ia64/sysv4.h: Likewise.
9698         * config/m68hc11/m68hc11.h: Likewise.
9699         * config/m68k/coff.h: Likewise.
9700         * config/m68k/mot3300.h: Likewise.
9701         * config/m88k/m88k.h: Likewise.
9702         * config/mcore/mcore-pe.h: Likewise.
9703         * config/mcore/mcore.h: Likewise.
9704         * config/mips/elf.h: Likewise.
9705         * config/mips/elf64.h: Likewise.
9706         * config/mips/iris6.h: Likewise.
9707         * config/pa/pa64-hpux.h: Likewise.
9708         * config/rs6000/sysv4.h: Likewise.
9709         * config/sh/sh.h: Likewise.
9710         * config/sparc/litecoff.h: Likewise.
9711
9712         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
9713         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
9714         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9715         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9716         (ASM_OUTPUT_DESTRUCTOR): Remove.
9717         * config/a29k/a29k.c: Move include of tree.h.
9718         * config/a29k/udi.h: Delete file.
9719         * config/alpha/alpha.c (vms_asm_out_constructor): New.
9720         (vms_asm_out_destructor): New.
9721         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
9722         (EXTRA_SECTION_FUNCTIONS): Likewise.
9723         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9724         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9725         * config/c4x/c4x.c: Move include of tree.h.
9726         * config/clipper/clipper.c (clix_asm_out_constructor): New.
9727         (clix_asm_out_destructor): New.
9728         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9729         (ASM_OUTPUT_DESTRUCTOR): Remove.
9730         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9731         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9732         (TARGET_ASM_CONSTRUCTOR): New.
9733         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
9734         (sco_asm_out_constructor): New.
9735         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
9736         * config/i386/svr3gas.h: Remove stack grows up code.
9737         Remove code duplicated from i386/sysv3.h.
9738         (TARGET_ASM_CONSTRUCTOR): New.
9739         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
9740         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
9741         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9742         (TARGET_ASM_CONSTRUCTOR): New.
9743         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
9744         (m68hc11_asm_out_destructor): New.
9745         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
9746         (TARGET_ASM_DESTRUCTOR): New.
9747         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
9748         * config/m68k/dpx2.h: Properly undef all the bits inherited from
9749         config/svr3.h pertaining to section manipulation.
9750         * config/m68k/dpx2g.h: Remove #if 0 code.
9751         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
9752         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
9753         (ASM_OUTPUT_CONSTRUCTOR): Remove.
9754         (TARGET_ASM_CONSTRUCTOR): New.
9755         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
9756         (m88k_svr3_asm_out_constructor): New.
9757         (m88k_svr3_asm_out_destructor): New.
9758         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9759         (ASM_OUTPUT_DESTRUCTOR): Remove.
9760         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9761         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
9762         * config/rs6000/aix.h: Likewise.
9763         * config/mips/rtems64.h: Don't undef removed constructor related bits.
9764         * config/mips/vxworks.h: Likewise.
9765         * config/rs6000/lynx.h: Likewise.
9766         * config/sh/elf.h: Likewise.
9767         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
9768         (DTORS_SECTION_ASM_OP): New.
9769         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9770         (ASM_OUTPUT_DESTRUCTOR): Remove.
9771         * config/sparc/sol2-sld-64.h: Likewise.
9772         * config/vax/vax.c (vms_asm_out_constructor): New.
9773         (vms_asm_out_destructor): New.
9774         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
9775         (ASM_OUTPUT_DESTRUCTOR): Remove.
9776         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9777
9778         * doc/tm.texi (@node Initialization): Update.
9779
9780 2001-08-09  Richard Henderson  <rth@redhat.com>
9781
9782         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
9783         (__do_global_dtors_aux): Use gp-relative static data to avoid
9784         one dynamic relocation.
9785         (__do_frame_setup): Register Java classes.
9786         * config/alpha/crtend.asm (__JCR_END__): New.
9787
9788 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
9789
9790         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
9791         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
9792         (GEN, STAGESTUFF): Add new files.
9793         (insn-constants.h, s-constants, tm-preds.h, s-preds,
9794         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
9795         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
9796         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
9797         as well as insn-codes.h and insn-flags.h in config.h; and no
9798         extra headers in tconfig.h and hconfig.h.
9799
9800         * gencodes.c: Eliminate code to generate predicate declarations
9801         or #defines for md-file constants.
9802         * genconstants.c, genpreds.c: New files.
9803
9804         * i386.md: Re-order guard expressions such that TARGET_64BIT
9805         comes first, when this permits better optimization.  Add
9806         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
9807         why this is desirable.
9808
9809 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
9810
9811         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
9812         (find_fde_for_dso): Remove.
9813         (_Unwind_IteratePhdrCallback): New.
9814         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
9815         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
9816
9817 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9818
9819         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
9820         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
9821
9822 2001-08-09  Graham Stott  <grahams@redhat.com>
9823
9824         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
9825         (vis_no_unit): Use it.
9826         (visualize_no_unit): Add the insn only if room exists.
9827
9828 2001-08-09  Graham Stott  <grahams@redhat.com>
9829
9830         * predict.c (estimate_probability): Replace magic numbers with
9831         appropriate enumeration.
9832
9833 2001-08-09  Graham Stott  <grahams@redhat.com>
9834
9835         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
9836         parameter.
9837         (EXTRACT_FLAGS): Likewise.
9838
9839 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
9840
9841         * config/mips/mips.c    (mips_legitimate_address_p): Check for
9842         CONST_INT in last patch.
9843
9844 2001-08-08  Anthony Green  <green@redhat.com>
9845
9846         * java/class.c (emit_register_classes): Use assemble_jcr if
9847         possible.  Keep the original mechanism as a fallback.
9848         * defaults.h (JCR_SECTION_NAME): Define if we have named section
9849         and weak symbol support.
9850         * crtstuff.c (__JCR_LIST__): Define.
9851         (__JCR_END__): Define.
9852         (_Jv_RegiserClasses): Define weak symbol if possible.
9853         (__do_global_ctors_aux): Register classes for ELF targets with
9854         weak symbol support.
9855
9856 2001-08-08  Kazu Hirata  <kazu@hxi.com>
9857
9858         * dbxout.c: Fix comment formatting.
9859         * dependence.c: Likewise.
9860         * df.c: Likewise.
9861         * diagnostic.c: Likewise.
9862         * dominance.c: Likewise.
9863         * doprint.c: Likewise.
9864         * dwarf2out.c: Likewise.
9865         * dwarfout.c: Likewise.
9866         * emit-rtl.c: Likewise.
9867         * except.c: Likewise.
9868         * explow.c: Likewise.
9869         * expmed.c: Likewise.
9870         * expr.c: Likewise.
9871         * flow.c: Likewise.
9872         * fold-const.c: Likewise.
9873         * function.c: Likewise.
9874
9875 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9876
9877         * global.c (retry_global_alloc): Avoid shadowing allocno.
9878
9879 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
9880
9881         * except.c (remove_fixup_regions): Fix typo.
9882
9883 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
9884
9885         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
9886         unsigned HOST_WIDE_INT to avoid warning.
9887         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
9888         * flow.c (set_block_for_new_insns): Likewise.
9889
9890 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
9891
9892         * sibcall.c (return_value_pseudo): New static variable.
9893         (skip_copy_to_return_value): Handle return_value_pseudo.
9894         (call_ends_block_p): Ensure that return_value_pseudo is set.
9895         (optimize_sibling_and_tail_recursive_call): Discover the
9896         load of pseudo return value in alternate exit block.
9897
9898 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9899
9900         * calls.c (ECF_ALWAYS_RETURN): New constant.
9901         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
9902         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
9903         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
9904         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
9905         * rtl.c (reg_note_name): New name.
9906         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
9907
9908 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
9909
9910         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
9911
9912 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
9913
9914         * alias.c (get_alias_set): Return a previously calculated
9915         alias set for a VAR_DECL.
9916         * function.c (gen_mem_addressof): Calculate the alias set before
9917         touching the RTL.
9918
9919 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
9920
9921         * predict.def: Set hitrates according our experimental run.
9922
9923 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
9924
9925         * i386.h (HARD_REGNO_RENAME_OK): New macro.
9926
9927 2001-08-08  H.J. Lu <hjl@gnu.org>
9928
9929         * config/mips/mips.c (mips_unique_section): New. Copied from
9930         config/mips/elf.h.
9931
9932         * config/mips/mips-protos.h (mips_unique_section): New
9933         prototype.
9934
9935         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
9936
9937         * config/mips/little.h: New. Generic little endian mips
9938         targets. Only mips*-*-linux* is converted to use it so far.
9939
9940         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
9941         (WCHAR_TYPE): Defined
9942         (WCHAR_TYPE_SIZE): Likewise.
9943         (INIT_SUBTARGET_OPTABS): Likewise.
9944         (BSS_SECTION_ASM_OP): Likewise.
9945         (SBSS_SECTION_ASM_OP): Likewise.
9946         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
9947         (ASM_DECLARE_OBJECT_NAME): Likewise.
9948         (UNIQUE_SECTION): Likewise.
9949         (EXTRA_SECTIONS): Likewise.
9950         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
9951         (ASM_OUTPUT_DESTRUCTOR): Likewise.
9952         (ASM_OUTPUT_DEF): Likewise.
9953         (HANDLE_SYSV_PRAGMA): Removed.
9954         (NO_IMPLICIT_EXTERN_C): Likewise.
9955         (TARGET_MEM_FUNCTIONS): Likewise.
9956         (STARTFILE_SPEC): Likewise.
9957         (ENDFILE_SPEC): Likewise.
9958         (LIB_SPEC): Likewise.
9959         (INVOKE__main): Likewise.
9960         (CTOR_LIST_BEGIN): Likewise.
9961         (CTOR_LIST_END): Likewise.
9962         (DTOR_LIST_BEGIN): Likewise.
9963         (DTOR_LIST_END): Likewise.
9964         (SET_ASM_OP): Likewise.
9965         (ASM_OUTPUT_SOURCE_LINE): Likewise.
9966         (ASM_OUTPUT_DEF): Likewise.
9967         (ASM_OUTPUT_IDENT): Likewise.
9968
9969         * config/mips/mips.h (ASM_SPEC): Undefine before define.
9970         (CPLUSPLUS_CPP_SPEC): Likewise.
9971         (ASM_APP_ON) Redefine only if not defined.
9972         (ASM_APP_OFF): Likewise.
9973         (ASM_OUTPUT_SOURCE_LINE): Likewise.
9974         (ASM_OUTPUT_IDENT): Likewise.
9975
9976         * config.gcc: Update tm_file for Linux/mips.
9977
9978 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
9979
9980         * cselib.c (cselib_record_sets): If insn is predicated, turn
9981         sources into IF_THEN_ELSEs.
9982
9983         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
9984         Turn into define_insn_and_split.
9985
9986         * sched-deps.c: Include "cselib.h".
9987         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
9988         Use cselib to turn memory addresses into VALUEs.
9989         (sched_analyze): Call cselib_init/cselib_finish if necessary.
9990         * sched-int.h (struct sched_info): New member USE_CSELIB.
9991         * sched-ebb.c (ebb_sched_info): Initialize it.
9992         * sched-rgn.c (rgn_sched_info): Likewise.
9993         * Makefile.in (sched-deps.o): Update dependencies.
9994
9995         * cselib.h (cselib_subst_to_values): Declare.
9996         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
9997         that have no value and autoincs to be handled by generating a new
9998         dummy value.
9999
10000 2001-08-08  Graham Stott  <grahams@redhat.com>
10001
10002         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
10003         within fixed length SEQUENCE.
10004
10005 2001-08-08  Graham Stott  <grahams@redhat.com>
10006
10007         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
10008         (diagnostic_prefixing_rule): Likewise.
10009         (diagnostic_line_cutoff): Likewise.
10010         (diagnostic_kind_count): Likewise.
10011
10012 2001-08-08  Graham Stott  <grahams@redhat.com>
10013
10014         * alias.c (find_base_decl): Delete redundent assignment.
10015
10016 2001-08-08  Graham Stott  <grahams@redhat.com>
10017
10018         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
10019         (abs): Uppercase and paranthesize macro parameter.
10020         (MEM_DEPENDENCY): Add whitespace.
10021
10022 2001-08-08  Graham Stott  <grahams@redhat.com>
10023
10024         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
10025         failure check for CONST_INT
10026
10027 2001-08-08  Graham Stott  <grahams@redhat.com>
10028
10029         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
10030         (libcall_dead_p): Likewise.
10031
10032         (mark_used_regs): Constify fmt.
10033         (find_use_as_address): Likewise.
10034
10035 2001-08-08  Graham Stott  <grahams@redhat.com>
10036
10037         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
10038          parameter.
10039
10040 2001-08-08  Graham Stott  <grahams@redhat.com>
10041
10042         * combine.c (combine_simplify_rtx): Update comment and
10043         remove erroneous test.
10044
10045 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10046
10047         * cppinit.c (cpp_finish): Pop the final buffer without comment.
10048         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
10049         take care to avoid multiple no-newline at EOF warnings in that
10050         case.
10051
10052 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
10053
10054         * calls.c (expand_call): Do not emit INSN_SETJMP note.
10055         (emit_library_call_value_1): Likewise.
10056         (emit_call_1): Emit REG_SETJMP note.
10057         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
10058         of INSN_SETJMP
10059         * cselib.c (cselib_process_insn): Likewise.
10060         * flow.c (propagate_block): Likewise.
10061         * loop.c (find_and_verify_loops): Likewise.
10062         * reload.c (find_equiv_regs): Likewise.
10063         * reload1.c (reload): Likewise.
10064         * resource.c (mark_referenced_resources,
10065         mark_set_resources): Likewise.
10066         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
10067         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
10068         * haifa-sched.c (unlink_other_notes): Likewise.
10069         (reemit_notes): Likewise.
10070         * sched-ebb.c (sched_ebb): Likewise.
10071         * sched-rgc.c (sched_region): Likewise.
10072         * rtl.c (note_insn_name): Likewise.
10073         (reg_note_name): Add REG_SETJMP
10074         * rtl.h (reg_note): Add REG_SETJMP.
10075         (insn_note): Remove NOTE_INSN_SETJMP.
10076
10077         * profile.c (branch_prob): Add fake edges for setjmp.
10078
10079 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
10080
10081         * config.gcc: Quote target_cpu_default2 correctly for
10082         powerpc*-*-* targets.
10083
10084 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10085
10086         * cpplib.h, line-map.h: Update comments.
10087         * cppmain.c (printer_init): Move inline.
10088         (maybe_print_line, print_line): Take a map pointer.
10089         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
10090         (cb_file_change): Don't use prior value of print.map.
10091
10092 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
10093
10094         * doc/install.texi: Document fine-grained multilib configuration.
10095
10096 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
10097
10098         * rtlanal.c (find_first_parameter_load): Call note_stores
10099         only on the instructions.
10100
10101 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10102
10103         * alias.c (nonlocal_mentioned_p):
10104         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
10105         * calls.c (emit_call_1): Likewise.
10106         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
10107         * cselib.c (cselib_process_insn): Likewise.
10108         * df.c (df_insns_modify): Likewise.
10109         * flow.c (need_fake_edge_p): Likewise.
10110         (propagate_one_insn): Likewise.
10111         * haifa-sched.c (reemit_notes): Likewise.
10112         * integrate.c (copy_insn_list): Likewise.
10113         * jump.c (delete_prior_computation): Likewise.
10114         * local-alloc.c (validate_equiv_mem): Likewise.
10115         * loop.c (scan_loop): Likewise.
10116         * predict.c (estimate_probability): Likewise.
10117         * reload.c (reload): Likewise.
10118         * sched-deps (sched_analyze): Likewise.
10119         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
10120         * gcse.c (compute_hash_table): Likewise.
10121         (mark_call): Likewise.
10122         (store_killed_in_insn): Likewise.
10123
10124 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
10125
10126         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
10127
10128 2001-08-06  Richard Henderson  <rth@redhat.com>
10129
10130         * varasm.c (assemble_gc_entry): Remove.
10131         * output.h: Likewise.
10132
10133 2001-08-06  Richard Henderson  <rth@redhat.com>
10134
10135         * varasm.c (assemble_constructor): Take a symbol_ref and a
10136         priority instead of a bare string.  Move priority handling
10137         here from cp/decl2.c.
10138         * output.h: Update decls.
10139
10140         * c-decl.c (c_expand_body): Update calls to assemble_constructor
10141         and assemble_destructor.
10142         * profile.c (output_func_start_profiler): Likewise.
10143         * objc/objc-act.c (finish_objc): Likewise.
10144         (build_module_descriptor): Return the symbol not the symbol name.
10145
10146 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
10147
10148         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
10149         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
10150         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
10151         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
10152         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
10153         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
10154
10155 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10156
10157         * cpperror.c (print_containing_files): Moved to line-map.c.
10158         (print_location): line-map.c handles re-listing or otherwise.
10159         * cpphash.h (struct lexer_state): Remove next_bol.
10160         (struct cpp_buffer): Remove include_stack_listed.
10161         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
10162         Remove faked buffer handling.
10163         (_cpp_do_file_change): Tweak.
10164         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
10165         * cppmain.c (struct printer): Remove filename.
10166         (print_line, cb_file_change): Update accordingly.
10167         * line-map.c: Include intl.h.
10168         (init_line_maps): Initialize last_listed.
10169         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
10170         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
10171         (print_containing_files): New.
10172         * line-map.h (struct line_maps): New member last_listed.
10173         (print_containing_files, INCLUDED_FROM): New.
10174         * Makefile.in: Update.
10175         * po/POTFILES.in: Add line-map.c.
10176
10177 2001-08-06  Richard Henderson  <rth@redhat.com>
10178
10179         * except.c (convert_from_eh_region_ranges_1): Never mark
10180         USE or CLOBBER insns as throwing.
10181
10182         * expr.c (store_constructor): Don't clobber memory targets.
10183
10184 2001-08-06  Andreas Jaeger  <aj@suse.de>
10185
10186         * profile.c (branch_prob): Remove unused variable insn.
10187
10188         * Makefile.in (local-alloc.o): Add dependency on except.h.
10189
10190         * local-alloc.c: Include except.h for can_throw_internal prototype.
10191
10192 2001-08-06  Richard Henderson  <rth@redhat.com>
10193
10194         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
10195         * function.c (expand_main_function): Implement it.
10196         * doc/tm.texi: Document it.
10197
10198 2001-08-06  Stan Shebs  <shebs@apple.com>
10199
10200         * doc/install.texi: Document powerpc-*-darwin* details.
10201
10202 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
10203
10204         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
10205         (ASM_CPU_SPEC): Move back to rs6000.h
10206         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
10207
10208         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
10209
10210         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
10211         readded.
10212
10213         * config/rs6000/linux64.h: Ditto.
10214
10215         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
10216         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
10217         nothing.
10218
10219         Remove accidently readded definitions of FUNCTION_PROLOGUE,
10220         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
10221
10222         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
10223         to rs6000.h
10224
10225 2001-08-05  Richard Henderson  <rth@redhat.com>
10226
10227         * local-alloc.c (update_equiv_regs): Do not move insns that
10228         can throw.
10229
10230 2001-08-05  Jan Hubicka  <jh@suse.cz>
10231
10232         * Makefile.in (reload1.o): Add dedendancy on except.h
10233         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
10234         prototypes.
10235         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
10236         indicating wehther edges has been cleaned up.
10237         * reload1.c: Inlucde except.h
10238         (fixup_abnormal_edges): Accept deleted insns.
10239         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
10240         after combine.
10241
10242 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10243
10244         * cpplib.c (do_line): Correct line number after pop_buffer.
10245
10246 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10247
10248         PR preprocessor/3824
10249         * line-map.c: Update comments.
10250         * line-map.h: Update comments.
10251         * tradcif.y: Don't consider large numbers unsigned.
10252
10253 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10254
10255         PR preprocessor/3081
10256         * c-lex.c (map): New.
10257         (cb_file_change): Update map and use it.
10258         (cb_def_pragma, cb_define, cb_undef): Use map and line.
10259         (c_lex): Update to use map.
10260         * cpperror.c (print_location): Move to using logical line numbers.
10261         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
10262         (cpp_make_system_header): Similarly.
10263         (_cpp_execute_include): Stop line numbering hacks.  Store the
10264         line we will return to.
10265         * cpphash.h (CPP_BUF_LINE): Remove.
10266         (struct cpp_buffer): Remove lineno and pseudo_newlines.
10267         Add map and return_to_line.
10268         (_cpp_do_file_change): Update.
10269         * cppinit.c (cpp_start_read): Update line kludge.
10270         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
10271         (trigraph_ok): Use logical line numbers for diagnostics.
10272         (skip_block_comment): Likewise.
10273         (skip_whitespace): Likewise.
10274         (skip_line_comment): Use pfile->line instead.
10275         (_cpp_lex_token): Update to use logical line numbering exclusively.
10276         Handle BOL locally.  Accept new lines in directives, but keep
10277         pfile->line decremented.  Diagnostics use logical lines.  Update
10278         directive handling.
10279         * cpplib.c (SEEN_EOL): New.
10280         (skip_rest_of_line, check_eol): Use it.
10281         (end_directive): Increase line number when accepting the newline
10282         at the end of a directive.
10283         (run_directive): Simplify.
10284         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
10285         (_cpp_do_file_change): Update to take buffer line number as an
10286         argument, and store the current map in the cpp_reader.  Remove
10287         line number kludges.
10288         (_cpp_do__Pragma): Restore output position after a _Pragma.
10289         (cpp_push_buffer): Don't set output line or lineno.
10290         (_cpp_pop_buffer): Transfer more info from a faked buffer.
10291         Remove line kludge.  Set output_line.
10292         * cppmacro.c (builtin_macro): Update handling of __LINE__.
10293         (parse_arg): Use logical lines.
10294         (save_lookahead_token): Save EOFs too now.
10295         * cppmain.c (struct printer): Fix comments.
10296         (printer_init): Simplify, let caller do errors.
10297         (scan_translation_unit, check_multiline_token, dump_macro): Update.
10298         (maybe_print_line): Simplify.
10299         (print_line): Don't print a linemarker if -P.
10300         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
10301         (cb_file_change): Simplify.
10302         * line-map.h (LAST_SOURCE_LINE): Fix.
10303         (CURRENT_LINE_MAP): New.
10304
10305 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
10306
10307         * doloop.c (doloop_modify_runtime): Properly compute number of
10308         iterations if loop was unrolled.
10309
10310         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
10311         if their CSELIB_VAL_PTRs are.
10312
10313         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
10314         (setup_spill_pointers): Initialize it.
10315         (spill_restore_mem): Set it.
10316         (do_spill, do_restore): Use it to add REG_INC note.
10317         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
10318
10319         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
10320         asms if other insns are available.
10321
10322         * config/ia64/ia64.c (condop_operator): New predicate.
10323         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
10324         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
10325         patterns.
10326
10327         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
10328         temporary register than directly using a MEM.
10329
10330 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10331
10332         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
10333         parameter in last change.
10334
10335 2001-08-04  Zack Weinberg  <zackw@panix.com>
10336
10337         * sparc.md: Don't use #if inside C test expression.
10338
10339 2001-08-04  Richard Henderson  <rth@redhat.com>
10340
10341         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
10342
10343 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10344
10345         * cpphash.h (struct cpp_reader): New member directive_line.
10346         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
10347         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
10348         do_pragma): Pass line to callbacks.
10349         (start_directive): Record line of directive.
10350         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
10351         cb_include): Similarly.
10352         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
10353         Similarly.
10354
10355 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10356
10357         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
10358         comment.
10359
10360 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10361
10362         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
10363
10364         * reload1.c (fixup_abnormal_edges): New static function.
10365         (reload): Use it.
10366
10367         * flow.c (need_fake_edge_p): New function.
10368         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
10369         avoid call insn to be very last insn in the insn stream.
10370
10371         * profile.c (branch_prob): Call flow_call_edges_add instead of
10372         doing that by hand; cleanup cfg to re-merge basic blocks once
10373         we are done.
10374
10375 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10376
10377         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
10378         are also on line-map.h.
10379         * cppfiles.c (stack_include_file): Update.
10380         * cpphash.h (struct cpp_buffer): New member return_at_eof.
10381         (_cpp_pop_buffer): New.
10382         * cppinit.c (cpp_destroy, cpp_finish): Update.
10383         (do_includes): Mark each buffer to return at EOF.
10384         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
10385         return as requested.
10386         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
10387         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
10388         * cpplib.h (cpp_pop_buffer): Remove.
10389         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
10390         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
10391         buffers.
10392         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
10393         to pop buffers.
10394         (do_preprocessing): Update.
10395         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
10396         * c-parse.in (_yylex): Similarly.
10397         * scan-decls.c (scan_decls): Similarly.
10398         * line-map.h: Update comments.
10399
10400         * objc/Make-lang.in (objc-act.o): Update dependencies.
10401
10402 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10403
10404         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
10405         and soft register for operand 0.
10406         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
10407
10408 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10409
10410         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
10411         register for operand 0.
10412         ("bitcmpqi_z_used"): Allow memory for operand 0.
10413         (split "bitcmpqi"): New split to handle address reg as operand 1.
10414
10415 2001-08-04  Andreas Jaeger  <aj@suse.de>
10416
10417         * gcse.c: Revert Daniel's last patch.
10418
10419 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
10420
10421         * sparc-protos.h: Add prototypes for fp_zero_operand and
10422         reg_or_0_operand.
10423         * sh-protos.h: Add prototype for fpul_operand.
10424
10425 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
10426
10427         * doc/extend.texi (Other Builtins): Fix typo in last change.
10428
10429 2001-08-03  Richard Henderson  <rth@redhat.com>
10430
10431         * target.h (gcc_target): Add asm_out.named_section,
10432         section_type_flags, have_named_sections.
10433         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
10434         (TARGET_HAVE_NAMED_SECTIONS): New.
10435         (TARGET_SECTION_TYPE_FLAGS): New.
10436
10437         * Makefile.in (toplev.o): Depend on TARGET_H.
10438         (varasm.o, dbxout.o): Likewise.
10439         * c-common.c (decl_attributes): Check targetm.have_named_sections
10440         instead of ifdef ASM_OUTPUT_SECTION_NAME.
10441         * dbxout.c (dbxout_function_decl): Likewise.
10442         (dbxout_function_end): Likewise.
10443         * toplev.c (compile_file): Likewise.
10444         * varasm.c (exception_section): Likewise.
10445         * cp/decl2.c (finish_objects): Likewise.
10446
10447         * defaults.h (EH_FRAME_SECTION): Remove.
10448         (EH_FRAME_SECTION_ASM_OP): Remove.
10449         (EH_FRAME_SECTION_NAME): New.
10450         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
10451         (UNIQUE_SECTION_P): Remove.
10452         * dwarf2out.c (SECTION_FORMAT): Remove.
10453         (ASM_OUTPUT_SECTION): Remove.
10454         (output_call_frame_info): Use named_section_flags.
10455         (output_comp_unit, dwarf2out_start_source_file): Likewise.
10456         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
10457         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
10458         * varasm.c (in_eh_frame, eh_frame_section): Remove.
10459         (named_section_flags): New.
10460         (named_section): Use it and targetm.section_type_flags.
10461         (resolve_unique_section): New.
10462         (assemble_start_function): Use it.
10463         (asm_emit_uninitialised, assemble_variable): Likewise.
10464         (default_section_type_flags): New.
10465         (default_no_named_section, default_elf_asm_named_section): New.
10466         (default_coff_asm_named_section, default_pe_asm_named_section): New.
10467         * output.h: Update varasm.c decls.
10468         (SECTION_*): New flags.
10469
10470         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
10471         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
10472
10473         * config/elfos.h (UNIQUE_SECTION_P): Remove.
10474         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
10475         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
10476         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
10477         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
10478         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
10479         * config/mips/elf.h, config/mips/elf64.h: Likewise.
10480         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
10481         * config/pa/pa64-hpux.h,
10482
10483         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
10484         (TARGET_ASM_NAMED_SECTION): New.
10485         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
10486         * config/alpha/vms.h, config/arm/coff.h: Likewise.
10487         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
10488         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
10489         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
10490         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
10491         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
10492         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
10493         * config/i386/sco5.h, config/i386/win32.h: Likewise.
10494         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
10495         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
10496         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
10497         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
10498         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
10499         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
10500         * config/sparc/sysv4.h: Likewise.
10501
10502         * config/nextstep.h: Error until named sections implemented.
10503
10504         * config/a29k/a29k.c (a29k_asm_named_section): New.
10505         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
10506         (vms_section_type_flags, vms_asm_named_section): New.
10507         * config/arm/arm.c (arm_elf_asm_named_section): New.
10508         * config/avr/avr.c (asm_output_section_name): Remove.
10509         * config/avr/avr-protos.h: Update.
10510         * config/c4x/c4x.c (c4x_asm_named_section): New.
10511         * config/h8300/h8300.c (h8300_asm_named_section): New.
10512         * config/i386/i386.c (sco_asm_named_section): New.
10513         * config/i386/winnt.c (SECTION_PE_SHARED): New.
10514         (i386_pe_section_type_flags): New.
10515         (i386_pe_asm_named_section): New.
10516         * config/i386/i386-protos.h: Update.
10517         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
10518         * config/mcore/mcore.c (mcore_asm_named_section): New.
10519         * config/mips/mips.c (iris6_asm_named_section): New.
10520         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
10521         instead of UNIQUE_SECTION_P.
10522         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
10523         (xcoff_asm_named_section): New.
10524         * config/sh/sh.c (sh_asm_named_section): New.
10525         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
10526
10527         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
10528         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
10529         (EH_FRAME_SECTION_NAME): New.
10530         (EXCEPTION_SECTION): New.
10531         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
10532         (DEBUG_*_SECTION): Remove.
10533         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
10534         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
10535         (EH_FRAME_SECTION_ASM_OP): Remove.
10536
10537         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
10538         (ASM_OUTPUT_SECTION_NAME): Remove.
10539         (TARGET_ASM_NAMED_SECTION): New.
10540         (TARGET_HAVE_NAMED_SECTIONS): New.
10541         (TARGET_SECTION_TYPE_FLAGS): New.
10542         (EH_FRAME_SECTION_ASM_OP): Remove.
10543         (EH_FRAME_SECTION_NAME): New.
10544
10545 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
10546
10547         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
10548         for complex expressions when cfun == 0.
10549         * doc/extend.texi: Document that __builtin_constant_p can be
10550         used in data initializers as well as functions.
10551
10552 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
10553
10554         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
10555         variable I locally, instead of expecting a declaration in the
10556         calling context.
10557
10558 2001-08-03  Richard Henderson  <rth@redhat.com>
10559
10560         * except.c (collect_one_action_chain): Add an explicit cleanup
10561         action if regions surrounding a catch were encoded entirely
10562         within the call-site entry.
10563
10564 2001-08-03  Richard Henderson  <rth@redhat.com>
10565
10566         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
10567         don't take REGNO of a non-register.
10568
10569 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10570
10571         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
10572         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
10573         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
10574         (__gthread_mutex_init_function): New function for mutex initialization.
10575
10576 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10577
10578         * Makefile.in: Revert screwed up commit.
10579
10580 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10581
10582         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
10583         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
10584         merged by linker script to get a final _exit().
10585         (__do_global_dtors): New for destructor handling in specific exit
10586         section.
10587         (__do_global_ctors): New for constructors in specific install section.
10588         (__map_data_section): Map data sections before running constructors.
10589         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
10590         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
10591         (DTORS_SECTION_ASM_OP): Likewise.
10592         (CTORS_SECTION_FUNCTION): Define to force a reference to
10593         __do_global_ctors.
10594         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
10595
10596 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10597
10598         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
10599
10600         * Makefile.in: Add df.h to gcse.c dependencies.
10601
10602 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10603
10604         * varasm.c (output_constant_def_contents): Use for the length of a
10605         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
10606         depending on which is larger.
10607
10608 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
10609
10610         * gcse.c: Include df.h for use as a dataflow analyzer.
10611         Remove regvec.
10612         Declaration of reg_set_info: gone.
10613         New df_analyzer variable used by store motion.
10614         (reg_set_info): Deleted.
10615         (mark_mem_regs): New function, analyze regs used by a mem.
10616         (store_ops_ok): Use dataflow analyzer results to determine if
10617         necessary regs are changed in the block.
10618         (find_moveable_store): Remove check for symbol ref, we can handle
10619         much more complex expressions now.
10620         (compute_store_table): Remove most of the code, it's unnecessary
10621         now that the dataflow analyzer records the info for us.
10622         (store_killed_after): Add parameter to say whether to do the
10623         store_ops_okay test, used to speed up testing when we already know
10624         the answer, and just want to know if the store itself was killed.
10625         (build_store_vector): Largely rewritten to calculate the various
10626         vectors properly, and somewhat optimized.
10627         (store_motion): Init the df_analyzer, get REG_DEF chains.
10628         Also handle trapping expressions (since mems almost always trap)
10629         (simple_mem): Redefine what a simple mem is.
10630
10631 2001-08-03  DJ Delorie  <dj@redhat.com>
10632
10633         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
10634         set from a constant part of the condition.
10635
10636 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
10637
10638         * mkdeps.c (deps_add_default_target): Make local variable
10639         ``start'' a const char pointer.
10640         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
10641
10642 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10643
10644         * doc/install.texi (Configuration): Fix markup.
10645         (Specific, i?86-*-udk): Likewise.
10646         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
10647         --with-gnu-ld.
10648         Document --enable-threads and --enable-libgcj status.
10649         (Specific, mips-sgi-irix*): Canonicalize triples.
10650         (Specific, mips-sgi-irix5): Warn about problems with this config.
10651         Mention required GNU as patch.
10652         Native assembler problems are fixed.
10653         (Specific, mips-sgi-irix6): Update O32 ABI support status.
10654         Document --enable-threads and --enable-libgcj status.
10655
10656 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10657
10658         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
10659         of mkinstalldirs.
10660
10661 2001-08-03  Richard Henderson  <rth@redhat.com>
10662
10663         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
10664         constant data.
10665
10666 2001-08-03  Richard Henderson  <rth@redhat.com>
10667
10668         * rtlanal.c (find_first_parameter_load): Stop if we
10669         reach a CODE_LABEL at BOUNDARY.
10670
10671 2001-08-03  Richard Henderson  <rth@redhat.com>
10672
10673         * config/alpha/alpha.md (force_movdi): New insn.
10674         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
10675         Tweek FRP marking of VMS prologue insns.
10676         * config/alpha/vms.h (EPILOGUE_USES): New.
10677
10678 2001-08-02  Richard Henderson  <rth@redhat.com>
10679
10680         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
10681
10682 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
10683
10684         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
10685         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
10686         config/convex/convex.h, config/d30v/d30v.c,
10687         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10688         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
10689         config/mips/mips.h, config/mn10200/mn10200.h,
10690         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
10691         config/v850/v850.h, config/vax/openbsd.h,
10692         config/vax/openbsd1.h, config/vax/ultrix.h,
10693         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
10694         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
10695         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
10696         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
10697         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
10698         in comments and documentation.
10699
10700 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10701
10702         * line-map.c: New.
10703         * line-map.h: New.
10704         * Makefile.in (line-map.o): New.
10705         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
10706         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
10707         * cpperror.c (print_containing_files): Similarly.
10708         (print_location): Update.  Don't output a space before _Pragma.
10709         * cppfiles.c (stack_include_file): Set to line 1 immediately.
10710         (stack_include_filee, cpp_make_system_header): Update.
10711         (_cpp_execute_include): Get logical line number right for calling
10712         as-yet-unterminated #include.
10713         * cpphash.h (struct cpp_reader): Add line_maps.
10714         (_cpp_do_file_change): Update.
10715         * cppinit.c (cpp_create_reader): Initialize line maps.
10716         (cpp_destroy): Destroy line maps.
10717         (cpp_start_read): Get logical line number right.
10718         * cpplex.c (parse_string): Only warn once for multi-line strings.
10719         Use boolean variable for null warning.
10720         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
10721         already.
10722         (do_include_common): End the directive early.
10723         (do_line): Don't warn about out-of-range lines in preprocessed
10724         source.  Update.  Remove unused variables.
10725         (_cpp_do_file_change): Update for new line mapping.
10726         (pragma_cb): New typedef.
10727         (cpp_register_pragma): Stop looking ahead before calling the
10728         handler.  Clean up.
10729         (do_pragma_system_header): End directive early.
10730         (cpp_get_line_maps): New.
10731         (cpp_pop_buffer): Fudge logical line.  Update.
10732         * cpplib.h: Include line-map.h
10733         (enum cpp_fc_reason): Remove.
10734         (struct cpp_file_change): Update.
10735         (cpp_get_line_maps): New.
10736         * cppmain.c (struct_printer): New member map.
10737         (cb_file_change): Update for new mappings.
10738         * fix-header.c (cb_file_change): Similarly.
10739
10740 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10741
10742         * Makefile.in (libgcc.mk): Define mkinstalldirs.
10743         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
10744
10745 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
10746
10747         * config/vax/vax.c: include expr.h.
10748
10749 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
10750
10751         * Makefile.in ($(srcdir)/configure): Only rebuild in
10752         maintainer mode.
10753         ($(srcdir)/config.in): Only define in maintainer mode.
10754         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
10755
10756 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
10757
10758         * doc/install.texi (Install GCC: Binaries): Update Bull info.
10759
10760 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10761
10762         * gcc.c (set_collect_gcc_options): New function, split out from
10763         main.
10764         Ignore elided switches.
10765         (do_spec_1): Invoke before executing command.
10766         (set_input): Export.
10767         Move declaration ...
10768         * gcc.h (set_input): ... here.
10769         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
10770         file.
10771
10772 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
10773
10774         Kill -fhonor-std.
10775         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
10776         interaction.
10777         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
10778
10779 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
10780
10781         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
10782         for the unnamed instructions it expands to.
10783
10784 2001-08-02  Richard Henderson  <rth@redhat.com>
10785
10786         * regclass.c (call_really_used_regs): Conditionally define.
10787         (init_reg_sets_1): Don't use it if not defined.
10788         (fix_register): Similarly, don't set it.
10789
10790 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10791
10792         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
10793         Correct comment that had been missed in the previous change.
10794
10795 2001-08-01  Stan Shebs  <shebs@apple.com>
10796
10797         * config/darwin.c (machopic_stub_name): Try matching by name.
10798         (update_stubs): New function.
10799         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
10800         unconditionally.
10801
10802 2001-08-01  Richard Henderson  <rth@redhat.com>
10803
10804         * except.c (output_function_exception_table): Use assemble_align.
10805         * varasm.c (assemble_eh_label): Remove.
10806         (assemble_eh_align, assemble_eh_integer): Remove.
10807
10808 2001-08-01  Robert Lipe  <robertl@caldera.com>
10809
10810         * dwarfout.c: Remove reference to README.DWARF.
10811
10812 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
10813
10814         * regclass.c (call_really_used_regs): New array for registers which
10815         are actually used by a call.
10816         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
10817         new array.
10818         (fix_register): Set call_really_used too.
10819         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
10820         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
10821
10822 2001-08-01  Richard Henderson  <rth@redhat.com>
10823
10824         * read-rtl.c (read_name): Consider \r whitespace.
10825
10826 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
10827
10828         * config.gcc: Recognize powerpc-*-netbsd*.
10829
10830         * doc/install.texi (Host/target specific installation notes for
10831         GCC): Mention powerpc-*-netbsd*.
10832
10833         * config/rs6000/netbsd.h: New file.
10834         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
10835         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
10836         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
10837         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
10838         (TARGET_VERSION): Redefine.
10839
10840         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
10841         mcall-netbsd as a match for mcall-sysv.
10842         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
10843         (ncrti.S, ncrtn.S): New targets.
10844         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
10845
10846         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
10847         "netbsd' as a V4 ABI.
10848         (ASM_SPEC): Check for -mcall-netbsd.
10849         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
10850         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
10851         (LIB_SPEC, ENDFILE_SPEC): Ditto.
10852         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
10853         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
10854         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
10855         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
10856
10857         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
10858         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
10859
10860 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
10861
10862         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
10863         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
10864         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
10865         including "unwind-pe.h".
10866
10867 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10868
10869         * rs6000.md (define_splits): Kill unused constraints.
10870
10871 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
10872                               Jan Hubicka  <jh@suse.cz>
10873
10874         * function.c (thread_prologue_and_epilogue_insns): Kill code
10875         dealing with non-existent CFG.
10876
10877 2001-08-01  Kazu Hirata  <kazu@hxi.com>
10878
10879         * alias.c: Fix comment formatting.
10880         * bitmap.c: Likewise.
10881         * builtins.c: Likewise.
10882         * calls.c: Likewise.
10883         * c-common.c: Likewise.
10884         * c-decl.c: Likewise.
10885         * c-dump.c: Likewise.
10886         * c-lex.c: Likewise.
10887         * collect2.c: Likewise.
10888         * combine.c: Likewise.
10889         * conflict.c: Likewise.
10890         * cppfiles.c: Likewise.
10891         * cppinit.c: Likewise.
10892         * cpplex.c: Likewise.
10893         * cpplib.c: Likewise.
10894         * cppmacro.c: Likewise.
10895         * cppspec.c: Likewise.
10896         * c-pragma.c: Likewise.
10897         * crtstuff.c: Likewise.
10898         * cse.c: Likewise.
10899         * cselib.c: Likewise.
10900         * c-semantics.c: Likewise.
10901         * c-typeck.c: Likewise.
10902
10903 2001-08-01  H.J. Lu <hjl@gnu.org>
10904
10905         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
10906
10907 2001-08-01  H.J. Lu <hjl@gnu.org>
10908
10909         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
10910
10911 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
10912
10913         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
10914         contextualizing Objective-C class name lookup by the lexer.
10915         (typespec_reserved_nonattr): Disable ObjC class name lookup after
10916         seeing a TYPESPEC.
10917         (protocoldef): Add support for forward @protocol declarations.
10918         (yylexname): Suppress ObjC class name lookup in certain contexts;
10919         re-enable after lookup is complete.
10920         (_yylex): Re-enable ObjC class name lookup when certain
10921         punctuation marks are seen.
10922
10923         * objc/objc-act.c (check_protocol_recursively): New function used
10924         for finding circular dependencies in protocols.
10925         (objc_declare_protocols): New function for handling forward
10926         @protocol declarations.
10927         (receiver_is_class_object): Detect the case when 'self' is used
10928         inside of a class method.
10929         (build_message_expr): Issue a warning if class method is desired
10930         but instance method is found instead.
10931         (conforms_to_protocol): Streamline.
10932         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
10933         protocol Foo, even if 'Bar foo' does not.
10934         (check_protocols): Streamline.
10935         (start_protocol): Add checks for circular and duplicate protocol
10936         definitions.
10937         (encode_aggregate_within): For typedefs of structs, encode the
10938         underlying struct.
10939         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
10940         (objc_declare_protocols): New prototype.
10941
10942 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10943
10944         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
10945         * cpplex.c (handle_newline): Update prototype.  Maintain logical
10946         line number.
10947         (skip_escaped_newlines, skip_block_comment, parse_string):
10948         Update accordingly.
10949         (_cpp_lex_token): Update, and store token position within the token.
10950         * cpplib.h (struct cpp_token): Add line and column entries.
10951         * cppmacro.c (replace_args): Position stringified tokens correctly.
10952
10953 2001-08-01  Andreas Jaeger  <aj@suse.de>
10954
10955         * basic-block.h: Add prototype for last_loop_beg_note.
10956
10957 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
10958
10959         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
10960         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
10961         comment.
10962         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
10963         while handling WITH_CLEANUP_EXPR node. Use second operand calling
10964         expand_decl_cleanup.
10965         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
10966         the first RTX.
10967         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
10968         operand while calling simple_cst_equal.
10969         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
10970         operand is the cleanup expression, the third is the RTL_EXPR.
10971         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
10972
10973 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
10974
10975         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
10976
10977 2001-07-31  matthew green  <mrg@eterna.com.au>
10978
10979         * config.gcc (i386-*-netbsdelf): New description.
10980         * config/i386/netbsd-elf.h: New file.
10981
10982 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
10983
10984         * loop.c (check_dbra_loop): Use single_set to compute
10985         jump_label.
10986
10987 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
10988
10989         PowerPC reorg and support for powerpc64-*-linux*.
10990
10991         Also fixes emitting of constants on 32 bit and 64 bit
10992         platforms.
10993
10994         * config.gcc: powerpc64-*-linux* is a new target.
10995         Things that needed aix.h now also include xcoff.h
10996
10997         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
10998         xcoff.h.
10999         Move AIX specific stuff into aix.h.
11000         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
11001         with more than just XCOFF now.
11002         (SET_ASM_OP): Remove, now defined where needed.
11003         (FUNCTION_PROLOGUE): New macro definition.
11004         (FUNCTION_EPILOGUE): New macro definition.
11005         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
11006
11007         * config/rs6000/xcoff.h: New file.
11008
11009         * config/rs6000/linux64.h: New file.
11010
11011         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
11012
11013 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
11014
11015         * rs6000.c (print_operand_address): Handle ELF syntax.
11016         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
11017         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
11018         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
11019
11020 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
11021
11022         * rs6000.c (rs6000_override_options): Only disable
11023         flag_function_sections for XCOFF.
11024         (exact_log2_cint_operand): New predicate.
11025         (reg_or_{add,sub}_cint64_operand): New predicates.
11026         (add_operand): Compare CONST_INT with fewer function calls.
11027         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
11028         (print_operand, case 'p'): Ensure positive operand.
11029         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
11030         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
11031         (PREDICATE_CODES): Add new predicates.
11032         * rs6000.md (addsi3): Split 32-bit constants more correctly.
11033         (divsi3, modsi3): Ensure positive power-of-2.
11034         (adddi3): Use new predicate.  Split 32-bit constants more
11035         correctly.  Re-arrange splitter to handle any constant.
11036         (subdi3): Use new predicate.
11037         (divdi3, moddi3): Ensure positive power-of-2.
11038         (movdi): Use rs6000_emit_set_const.
11039         (load_toc_v4_pic_di): Delete.
11040
11041 2001-07-31  Graham Stott <grahams@redhat.com>
11042
11043         * function.c (pad_below): Revert 2001-07-26 patch.
11044
11045 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11046
11047         * reg-stack (convert_regs_1): Fix best edge condition.
11048
11049 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
11050
11051         * jump.c (duplicate_loop_exit_test): Better test for jumps
11052         entering the loop; create loop pre_header.
11053
11054 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
11055
11056         * doc/install.texi: Add s390 and s390x as new targets.
11057         * doc/invoke.texi: Add documentation of S/390 and zSeries
11058         target options.
11059         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
11060
11061 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
11062
11063         * config/m68k/m68k.md: Replace all general_operand with
11064         nonimmediate_operand for all destinations.
11065         * config/m68k/m68k.c (not_sp_operand): Likewise.
11066
11067 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
11068
11069         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
11070
11071 2001-07-30  Richard Henderson  <rth@redhat.com>
11072
11073         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
11074         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
11075
11076 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
11077
11078         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
11079         Add missing doc strings
11080         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
11081         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
11082
11083 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
11084
11085         * i386.c (ix86_output_main_function_alignment_hack): New function.
11086         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
11087
11088         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
11089         edges by EDGE_DFS_BACK flag.
11090         (dump_edge_info): Add dfs_back flag.
11091         * basic-block.h (EDGE_DFS_BACK): New constant.
11092         (mark_dfs_back_edges): Declare.
11093         * alias.c (loop_p): Remove.
11094         (mark_constant_function): Use mark_dfs_back_edges.
11095
11096         * reg-stack.c (block_info_def): Add predecessors counter and stack_out.
11097         (reg_to_stack): Call mark_dfs_back_edges; count the predecessors.
11098         (compensate_edge): Break out from ...
11099         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
11100         (convert_regs_2): Set block_done once block is really done;
11101         Do updating of the predecessors counts.
11102
11103         * toplev.c (rest_of_compilation): Recompute block_for_insn
11104         before post-reload cfg_cleanup.
11105         * function.c (thread_prologue_epilogue_insns):
11106         Call set_block_for_new_insns when emitting prologue directly.
11107
11108 2001-07-30  Andreas Jaeger  <aj@suse.de>
11109
11110         * jump.c: Add prototype for mark_modified_reg.
11111
11112         * cse.c (set_live_p): Add unused attribute.
11113
11114         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
11115         overflow.
11116         (scan_for_source_files): Use long for count to avoid overflow.
11117         (output_data): Likewise.
11118         (output_data): Don't use string concatatenation to silence gcc
11119         -traditional.
11120
11121         * predict.c: Fix typos and grammar.
11122
11123         * gcse.c (insert_insn_end_bb): Remove unused variables.
11124
11125 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
11126
11127         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
11128         (attempt_auto_inc): LIkewise.
11129         (mark_used_reg): Likewise.
11130         (try_pre_increment_1): Likewise.
11131         * regclass.c (regclass): Likewise.
11132         * global.c (allocno_compare): Update comment; change scaling factor.
11133         * local-alloc.c (QTY_CMP_PRI): Likewise.
11134         * regs.h (REG_FREQ_FROM_BB): New.
11135         (REG_FREQ_MAX): Likewise.
11136
11137 2001-07-30  H.J. Lu <hjl@gnu.org>
11138
11139         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
11140         -D_GNU_SOURCE.
11141
11142 2001-07-30  H.J. Lu  (hjl@gnu.org)
11143
11144         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
11145         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
11146         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
11147
11148 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
11149
11150         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
11151         as -mthumb-interwork when -mcpu=arm7 is specified.
11152
11153 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
11154
11155         * predict.def (noreturn, loop branch, loop exit): Mark as first
11156         match heuristics.
11157
11158 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
11159
11160         * combine.c (try_combine): Avoid barrier after noop jumps.
11161
11162 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11163
11164         * cpphash.h (struct cpp_reader): Remove import_warning.
11165         * cpplib.c (skip_rest_of_line): Don't bother turning off
11166         macro expansion.
11167         (parse_include): Move include handling to...
11168         (do_include_common): ... here.  Move import warning from...
11169         (do_import): ... here.
11170         (do_pragma_poison): Don't do a callback for poison identifiers.
11171         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
11172         * cppmain.c (setup_callbacks): Similarly.
11173
11174 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
11175
11176         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
11177         handle multiple sets.
11178         * except.c (sjlj_mark_call_sites): .... here.
11179         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
11180
11181 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
11182
11183         Suggested by Richard Henderson and Richard Kenner:
11184         * combine.c (recog_for_combine): Use the fake recog
11185         only if instruction does not match.
11186         * rtl.h (NOOP_MOVE_INSN_CODE): New.
11187         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
11188
11189         * combine.c (try_combine): Discover noop jump as direct jump.
11190
11191 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
11192
11193         * df.c (df_rd_global_compute): Add successors to worklist, not
11194         current item.
11195         (df_ru_global_compute): Ditto.
11196
11197 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
11198
11199         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
11200         increment REG_N_SETS.
11201
11202 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
11203
11204         * sbitmap.h: New prototype for sbitmap_a_xor_b.
11205
11206         * sbitmap.c (sbitmap_a_xor_b): New function.
11207         ifdef the basic block stuff on IN_GCC.
11208
11209 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11210
11211         * cppexp.c (parse_defined): Always record the macro name.
11212         (lex): Don't worry about identifiers, or special-case
11213         CPP_NOT here.
11214         (_cpp_parse_expr): Figure out at the end of the routine
11215         whether we saw a valid !defined() expression.
11216         * cppfiles.c (stack_include_file): Update for mi_valid.
11217         (_cpp_pop_file_buffer): Similarly.
11218         * cpplex.c (_cpp_lex_token): Similarly.
11219         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
11220         mi_if_not_defined, mi_lexed): Remove.
11221         (mi_valid): New.
11222         * cpplib.c (do_if): Simplify.
11223         (do_endif, push_conditional, _cpp_handle_directive): Update
11224         for renaming of mi_state to mi_valid.
11225 doc:
11226         * cpp.texi: Add index entries for digraphs, and add comment
11227         that C++ refers to them as alternative tokens.
11228
11229 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
11230
11231         * basic-block.h (CLEANUP_PRE_LOOP): New.
11232         * except.c (finish_eh_generation): Update call of cleanup_cfg.
11233         * sibcall.c (optimize_sibling_calls): Likewise.
11234         * toplev.c (rest_of_compilation): Likewise.
11235         * flow.c (try_forward_edges): Take argument MODE;
11236         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
11237         (try_optimize_cfg): Update call of try_forward_edges.
11238
11239 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
11240                                 Jan Hubicka  <jh@suse.cz>
11241
11242         * (validate_replace_rtx_1): Fix simplification of MINUS.
11243
11244 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11245
11246         PR preprocessor/3669
11247         * cppinit.c (init_dependency_output): Turn off dump requests
11248         if sending dependencies to stdout.
11249
11250 2001-07-28  Richard Henderson  <rth@redhat.com>
11251
11252         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
11253         not optimizing.
11254
11255 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
11256
11257         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
11258
11259 2001-07-28  Kazu Hirata  <kazu@hxi.com>
11260
11261         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
11262         is VAR_DECL first to prevent an ICE.
11263
11264 2001-07-28  Richard Henderson  <rth@redhat.com>
11265
11266         * varasm.c (immed_real_const_1): Don't elide special cases for
11267         nested functions.
11268         (clear_const_double_mem): Clear const_tiny_rtx too.
11269
11270 2001-07-28  Richard Henderson  <rth@redhat.com>
11271
11272         * dwarf2out.c (dw_val_class_offset): New.
11273         (struct dw_ranges_struct, dw_ranges_ref): New.
11274         (ranges_table, ranges_table_allocated): New.
11275         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
11276         (add_AT_offset, add_ranges, output_ranges): New.
11277         (print_die, output_die): Handle dw_val_class_offset.
11278         (attr_checksum, size_of_die, value_format): Likewise.
11279         (gen_lexical_block_die): Handle non-contiguous blocks.
11280         (gen_block_die): Likewise.
11281         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
11282         if needed.  Dump the ranges table.
11283         * final.c (final_start_function): Remove unnecessary notes and
11284         rebuild the block tree before numbering the blocks.
11285         * function.c (reorder_blocks_0): Walk the existing block tree
11286         to unmark all blocks.
11287         (reorder_blocks_1): Create block fragments when duplicate block
11288         notes are seen.
11289         (reorder_fix_fragments): New.
11290         (reorder_blocks): Call it.
11291         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
11292
11293 2001-07-28  Richard Henderson  <rth@redhat.com>
11294
11295         * emit-rtl.c (adjust_address): Make a copy of the memory address.
11296
11297 2001-07-28  Richard Henderson  <rth@redhat.com>
11298
11299         * flow.c (add_to_mem_set_list): New function.
11300         (init_propagate_block_info): Use it.
11301         (mark_set_1): Likewise.
11302         (insn_dead_p): Canonicalize memory address for dead store
11303         comparison.  Allow wider mode stores to kill narrower mode stores.
11304         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
11305         (invalidate_mems_from_set): Don't handle MEMs.
11306
11307 2001-07-28  Kazu Hirata  <kazu@hxi.com>
11308
11309         * config/h8300/h8300.h: Fix formatting.
11310
11311 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
11312
11313         * basic-block.h (EDGE_FREQUENCY): New macro.
11314         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
11315         for new BB/edges.
11316         * flow.c (find_sub_basic_blocks): Likewise.
11317         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
11318         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
11319
11320         * predict.c (DEF_PREDICTOR): New argument FLAGS.
11321         (HITRATE): New macro.
11322         (PRED_FLAG_FIRST_MATCH): New constant.
11323         (predictor_info): New field flgags.
11324         (combine_predictions_for_insn): Use DS theory to combine
11325         probabilities; set the edge probabilities when finished.
11326         (estimate_probability): Avoid duplicated matches
11327         of LOOP_BRANCH heuristics for nested loops; update comment.
11328         * predict.def: Add flags for each prediction, set probabilities
11329         according to B&L paper.
11330         * predict.h (DEF_PREDICTOR): New argument FLAGS.
11331
11332         * profile.c (compute_branch_probabilities):  Cleanup way the edge
11333         probabilities are computed and REG_BR_PROB notes are dropped; if
11334         values does not match, emit error.
11335         (init_branch_prob): Do error instead of warning when profile driven
11336         feedback is missing or corrupt.
11337
11338 2001-07-27  DJ Delorie  <dj@redhat.com>
11339
11340         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
11341         against a constant, try to adjust the compare to have the desired
11342         constant in it so that min/max optimizations happen more often.
11343
11344 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11345
11346         * flow.c (last_loop_beg_note): New function.
11347         (redirect_edge_and_branch): Use it.
11348         (split_edge): Likewise.
11349
11350         * alias.c (loop_p): Avoid uninitialized memory access.
11351
11352         * flow.c (try_forward_edges): Avoid accessing freed memory.
11353
11354         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
11355         variable access.
11356
11357 2001-07-26  Andrew Haley  <aph@redhat.com>
11358         Joern Rennecke <amylaar@redhat.com>
11359
11360         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
11361         (SUBTARGET_CPP_ENDIAN_SPEC): New.
11362         (SUBTARGET_CPP_SPEC): New.
11363         (CPP_SPEC): Remove.
11364         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
11365         (SUBTARGET_CPP_PTR_SPEC): New.
11366         (CPP_DEFAULT_CPU_SPEC): New.
11367         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
11368         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
11369         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
11370         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
11371         (SUBTARGET_CPP_SPEC): Define as an empty string.
11372
11373 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11374
11375         * doc/install.texi (Configuration): Properly link the host
11376         specific instructions also when generating HTML.
11377
11378 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
11379
11380         * flow.c (redirect_edge_and_branch_force): Test
11381         target->global_live_at_start.
11382
11383 2001-07-26  Richard Henderson  <rth@redhat.com>
11384
11385         * simplify-rtx.c (avoid_constant_pool_reference): Export.
11386         * rtl.h (avoid_constant_pool_reference): Declare it.
11387         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
11388         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
11389
11390 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
11391
11392         * rtl.h (cleanup_barriers): Declare.
11393         * jump.c (cleanup_barriers): New function.
11394         * toplev.c (rest_of_compilation): Call cleanup_barriers
11395         before loop optimizer and after bb_reorder.
11396
11397         * flow.c (back_edge_of_syntactic_loop_p): New.
11398         (split_edge): Use it.
11399
11400 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11401
11402         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
11403
11404 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
11405
11406         * cse.c (cse_process_notes): Replace any registers if the address
11407         remains valid.
11408
11409 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
11410
11411         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
11412         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
11413         (propagate_block): Update prototype.
11414         * flow.c (update_life_info): Simplify the CFG and
11415         recalculate the global regs which are alive when
11416         removing dead code during a global update.
11417         (propagate_block): Return non-zero if an INSN is
11418         deleted.
11419
11420 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11421
11422         * Makefile.in (LIBICONV): Define.
11423
11424 2001-07-26  Catherine Moore  <clm@redhat.com>
11425
11426         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
11427         of conditional to avoid tree checking errors.
11428
11429 2001-07-26  Kazu Hirata  <kazu@hxi.com>
11430
11431         * regmove.c (regmove_optimize): Don't replace a reg with
11432         another reg of a different mode.
11433
11434 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
11435
11436         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
11437         limit length of dependency flush list.
11438         * params.h (MAX_PENDING_LIST_LENGTH): Define.
11439         * sched-int.h  (struct deps): Add pending_flush_length field.
11440         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
11441         has 1 element in it.
11442         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
11443         (sched_analyze): After a jump, if the pending memory flush list is too
11444         large, flush the pending lists.
11445         (init_deps): Initialize pending_flush_length to 0.
11446         * doc/invoke.texi (max_pending_list_length): Document parameter.
11447
11448 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11449
11450         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
11451         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
11452         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
11453
11454 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11455
11456         * cpphash.h (struct_lexer_state): Delete was_skipping.
11457         Move skipping here from struct cpp_reader.
11458         * cpplex.c (parse_identifier): Update.
11459         (_cpp_lex_token): Don't skip tokens in a directive.
11460         * cpplib.c (struct if_stack): Update.
11461         (start_directive, end_directive): Don't change skipping state.
11462         (_cpp_handle_directive): Update.
11463         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
11464         (do_else, do_endif): Update; only check for excess tokens if not
11465         in a skipped conditional block.
11466         (push_conditional): Update for new struct if_stack.
11467
11468 2001-07-26  Graham Stott  <grahams@redhat.com>
11469
11470         * function.c (locate_and_pad_parm): Also pad initial offset
11471         so that the total argument size also includes the padding.
11472
11473 2001-07-26  Graham Stott <grahams@redhat.com>
11474
11475         * gensupport.c (alter_output_for_insn): Correct enable checking failure
11476         change XSTR to XTMPL.
11477
11478         (process_one_cond_exec): Likewise
11479
11480 2001-07-25  Richard Henderson  <rth@redhat.com>
11481
11482         * varasm.c (assemble_variable): Create DECL_RTL before setting
11483         TREE_ASM_WRITTEN.
11484
11485 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
11486
11487         * predict.c (estimate_probability): Avoid duplicated predictions.
11488
11489         * loop.c (find_and_verify_loops): Grok multiple barriers.
11490
11491 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11492
11493         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
11494
11495         * dbxout.c: Consistently use putc instead of fputc.
11496         (print_wide_int): New function; call instead of direct fprintf.
11497         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
11498         (dbxout_type_fields, dbxout_type_method_1): Likewise.
11499         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
11500         (print_int_cst_octal): Likewise.
11501         (print_octal): Show we wrote characters.
11502         (dbxout_type): Set have_used_extensions in more places.
11503
11504 2001-07-25  Catherine Moore  <clm@redhat.com>
11505
11506         * config/v850/v850.c (v850_va_arg):  Use addr
11507         instead of valist to build incr.
11508
11509 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
11510
11511         * flow.c (delete_dead_jumptables): New function.
11512         (life_analyzis): Call it.
11513         * bb-reorder.c (skip_insns_after_block): Handle contradictory
11514         sequences.
11515
11516 2001-07-25  Richard Henderson  <rth@redhat.com>
11517
11518         * except.c (reachable_handlers): Handle a region being removed
11519         out from under a RESX.
11520
11521 2001-07-25  Richard Henderson  <rth@redhat.com>
11522
11523         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
11524         swap GE/GT if it is an fp comparison.
11525
11526 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
11527
11528         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
11529         operands.
11530
11531 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
11532
11533         * ssa.c (rename_insn_1): Do not wrap an assignment to a
11534         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
11535         glitch.
11536
11537         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
11538         throw an exception.
11539         (visit_expression): When attempting to simplify an expression,
11540         retrieve any modes for arguments before they are simplified
11541         to constants.
11542
11543 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
11544             Janis Johnson  <janis@us.ibm.com>
11545
11546         * stmt.c (expand_goto): A nonlocal goto can be a call too.
11547         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
11548         pointer parameters to match documented usage of nonlocal_goto.
11549         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
11550         parameters to their correct order.
11551         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
11552         parameters to their correct order.
11553
11554 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
11555
11556         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
11557
11558 2001-07-25  Jan Hubicka  <jh@suse.cz>
11559             Richard Henderson  <rth@redhat.com>
11560
11561         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
11562         the sequence.
11563         (make_edges): New argument update_p; populate the edge cache if set.
11564         (find_basic_blocks): Update make_edges invocation.
11565
11566 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11567
11568         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
11569
11570 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11571
11572         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
11573         -Acpu and -Amachine.h.
11574         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
11575         Corrected header to say ELF not a.out.
11576         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
11577         when given -msoft-float.
11578
11579 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11580
11581         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
11582         extra multilib parts like arm-elf.
11583         (i960-*-coff*, i960-*-rtems): Should not use collect2.
11584         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
11585         crtfini.o as extra multilib parts.
11586
11587 2001-07-24  Joel Sherrill <joel@OARcorp.com>
11588
11589         * configure.in: Add rtems as a supported thread model.
11590         * gthr-rtems.h: Add missing entry point __gthread_active_p.
11591         * configure: Rebuilt.
11592
11593 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
11594
11595         * stor-layout.c (get_mode_alignment): make it work when
11596         BITS_PER_UNIT is not a power of two.
11597         * builtins.c (get_pointer_alignment): Likewise.
11598
11599 2001-07-24  Richard Henderson  <rth@redhat.com>
11600
11601         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
11602         the retrieved constant into the expected mode.
11603
11604 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
11605
11606         * flow.c (try_simplify_condjump): Avoid duplicated edges.
11607         (verify_flow_info): Check for duplicated edges; clarify
11608         error reporting.
11609
11610         * flow.c (block_label): Update basic_block_for_insn.
11611         (commit_edge_insertions): Call compute_bb_for_insn.
11612
11613         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
11614         returns too.
11615
11616         * flow.c (redirect_edge_and_branch,
11617         try_optimize_cfg): Use redirect_edge_succ_nodup
11618         (redirect_edge_succ_nodup): New.
11619         * basic_block.h (redirect_edge_succ_nodup): Declare.
11620
11621         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
11622         after gcse.
11623
11624 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
11625
11626         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
11627         (try_crossjump_to_edge): Update commetns.
11628         (try_crossjump_bb): Likewise.
11629
11630 2001-07-24  Richard Henderson  <rth@redhat.com>
11631
11632         * combine.c (distribute_notes): Move set of need_refresh
11633         for noop_move_p down to catch all cases.
11634
11635 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
11636
11637         * recog.c (split_all_insns_noflow): New.
11638         * rtl.h (split_all_insns_noflow): Declare.
11639         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
11640         * m68hc11.c (m68hc11_reorg): Likewise.
11641         * sh.c (machine_dependent_reorg): Likewise.
11642         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
11643         call.
11644
11645 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
11646
11647         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
11648         (ashlsi3_n splitter): Likewise.
11649         (lshrsi3_n splitter): Likewise.
11650
11651         (GOTaddr2picreg): Make const SImode.
11652         (sym_label2reg): Likewise.
11653         (symGOT2reg): Likewise.
11654         (symGOTOFF2reg) Likewise.
11655
11656         (casesi_worker_0): Make unspec SImode.
11657
11658 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
11659
11660         * config/sh/sh.c (barrier_align): Check that an operand really is
11661         an insn before extracting its INSN_CODE.
11662
11663 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
11664
11665         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
11666         dangling else.
11667
11668         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
11669         for SImode to prevent overflow.
11670
11671 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11672
11673         * config/mips/irix6-libc-compat.c: New file.
11674         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
11675         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
11676         passing workaround.
11677
11678 2001-07-24  lars brinkhoff  <lars@nocrew.org>
11679
11680         * rtl.texi (REG_POINTER): Document.
11681         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
11682         QFmode, HFmode, TQFmode, QCmode, and HCmode.
11683
11684 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
11685
11686         * flow.c (delete_noop_moves): Do not confuse libcall regions.
11687
11688 2001-07-23  Richard Henderson  <rth@redhat.com>
11689
11690         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
11691
11692 2001-07-23  Kazu Hirata  <kazu@hxi.com>
11693
11694         * config/h8300/h8300-protos.h: Add a prototype for
11695         general_operand_dst_push.
11696         * config/h8300/h8300.c (general_operand_dst_push): New.
11697         * config/h8300/h8300.h (OK_FOR_T): New.
11698         (EXTRA_CONSTRAINT): Use it.
11699         * config/h8300/h8300.md (movqi_push): Remove and integrate into
11700         the existing movqi pattern.
11701         (movhi_push): Likewise.
11702
11703         * reload.c: Fix comment typos.
11704
11705 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
11706
11707         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
11708
11709 2001-07-23  H.J. Lu  (hjl@gnu.org)
11710
11711         * doc/extend.texi: Update __builtin_return_address and
11712         __builtin_frame_address.
11713
11714 2001-07-23  Richard Henderson  <rth@redhat.com>
11715
11716         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
11717         before CSE.
11718         * config/i386/i386.md: New setcc+movzbl peephole2.
11719
11720 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11721
11722         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
11723         * objc/objc-act.c: Include debug.h.
11724         (synth_module_prologue): Save and restore debug hooks too.
11725
11726 2001-07-23  lars brinkhoff  <lars@nocrew.org>
11727
11728         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
11729         and C4X_FLOAT_FORMAT.
11730         (BOOL_TYPE_SIZE): Document.
11731
11732 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
11733
11734         * unroll.c (loop_iterations): Fix miscalculation of initial
11735         giv offset.
11736
11737 2001-07-13  Andrew Haley  <aph@redhat.com>
11738
11739         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
11740         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
11741         * config/sh/sh.c (sh_can_redirect_branch): New function.
11742         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
11743         * reorg.c (steal_delay_list_from_target): Use
11744         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
11745
11746 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
11747
11748         * flow.c (try_simplify_condjump): Unlink insn chain on
11749         fallthru edge; use can_fallthru.
11750
11751 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
11752
11753         * basic-block.h (find_sub_basic_block): Declare.
11754         * flow.c (make_edges): New arguments MIN and MAX;
11755         (find_sub_basic_blocks): Revamp to use make_edges
11756         and purge_dead_edges.
11757         (find_basic_blocks): Update call of find_sub_basic_block.
11758
11759         * recog.c (split_all_insns): Always expect CFG to be consistent;
11760         call find_sub_basic_blocks in case something has changed.
11761         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
11762         has been built.
11763
11764         * basic-block.h (delete_noop_moves): Declare.
11765         * combine.c (combine_instructions): Call it.
11766         (recog_for_combine): Tolerate noop moves
11767         (distribute_notes): Force refresh when register dies at noop move.
11768         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
11769         too.
11770         (life_analysis): Update delete_noop_moves call.
11771         (set_noop_p): Move too ...
11772         * rtlanal.c (noop_move_p): ... here.
11773         * rtl.h (noop_move_p): Declare.
11774
11775         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
11776         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
11777         after combine.
11778         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
11779         (cprop_jump): Likewise; call purge_dead_edges if substitution succeeded.
11780
11781 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
11782
11783         * reload.c (push_reload): Fix typo in comment.
11784         (find_reloads_address): Ditto.
11785         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
11786
11787 2001-07-22  Richard Henderson  <rth@redhat.com>
11788
11789         * flow.c: Grammar check and clarify a lot of comments.
11790         (try_simplify_condjump): Rename variables to be clearer.
11791         (try_forward_edges): Skip complex and fallthru edges.
11792         Rearrange tests to avoid duplicate checks.
11793         (flow_find_cross_jump): Likewise.
11794         (outgoing_edges_match): Allow match if neither branch has
11795         probability data.  Loosen probability match to 5%.
11796         (try_crossjump_to_edge): Hoist repeated indirection into
11797         local variables.
11798         (try_crossjump_bb): Don't check complex edges.  Eliminate
11799         redundant crossjump tests.
11800         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
11801         checks before more expensive checks.
11802
11803 2001-07-22  Richard Henderson  <rth@redhat.com>
11804
11805         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
11806         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
11807         arguments.
11808
11809 2001-07-22  Richard Henderson  <rth@redhat.com>
11810
11811         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
11812         (const_sint32_operand): Likewise.
11813         * m68k.md (anon mulsi pattern): Use const_int_operand not
11814         const_sint32_operand.
11815         (umulsi3_highpart): Zero extend a constant input.
11816         (smulsi3_highpart): Don't bother checking SImode constant.
11817         (const_umulsi3_highpart): Give op3 DImode.
11818         (const_smulsi3_highpart): Likewise.
11819
11820 2001-07-22  Richard Henderson  <rth@redhat.com>
11821
11822         * flow.c (split_block): Make sure bb_note is included in the
11823         new block when splitting before a label.
11824
11825 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
11826
11827         * basic-block.h (redirect_edge_and_branch_force,
11828         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
11829         * flow.c (redirect_edge_and_branch_force,
11830         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
11831         (redirect_edge_and_branch_force): Fix copying of lifeness information.
11832         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
11833         * ifcvt.c (dead_or_predictable): Take BB as an new destination
11834         instead of label; update CFG after transformation.
11835         (find_if_case_1): Update call, use redirect_edge_and_branch_force
11836         for finishing the transformation; handle even case where ELSE
11837         does not follow THEN.
11838         (find_if_case_2): Update call of dead_or_predictable; simplify
11839         CFG update.
11840
11841         * emit-rtl.c (split_branch_probability): New global variable.
11842         (try_split): Take care to set split_branch_probability and
11843         create REG_BR_PROB note for new jump insns.
11844         * md.texi (define_split): Document new feature.
11845
11846         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
11847
11848 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11849
11850         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
11851         (asm_out_file): Remove redundant declaration.
11852         (assemble_asm): Remove old #if 0 block.
11853         (assemble_variable): Remove end of function; debug output is
11854         now handled with global_decl.  Remove old #if 0 block.  Update.
11855         Remove saved_in_section and associated no-op code.
11856         * Makefile.in (varasm.o): Correct dependencies.
11857
11858 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
11859
11860         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11861         the definition in defaults.h.
11862
11863 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
11864
11865         * jump.c: Update comments.
11866         (delete_barrier_successors, delete_unreferenced_labels,
11867         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
11868         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
11869         jump_optimize, jump_optimize_minimal): Kill.
11870         (rebuild_jump_labels): Move code from jump_optimize_1.
11871         (purge_line_number_notes): Likewise.
11872         (copy_loop_headers): Likewise.
11873         * reg-stack.c: Update comment.
11874         * stmt.c: Likewise.
11875         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
11876         JUMP_AFTER_REGSCAN): Kill.
11877         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
11878         purge_line_number_notes and copy_loop_headers.
11879
11880 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
11881            Richard Henderson  <rth@redhat.com>
11882
11883         * dbxout.c (dbxout_global_decl): New.
11884         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
11885         * sdbout.c (sdbout_finish): New.
11886         (sdbout_debug_hooks): Use it, add comments.
11887         (sdbout_global_decl): Defer initialised public vars to
11888         sdbout_finish.
11889         * varasm.c (assemble_variable): Don't output debug information
11890         for file-scope variables.
11891
11892 2001-07-22  Richard Henderson  <rth@redhat.com>
11893
11894         * config/alpha/alpha.c (get_trap_mode_suffix): New.
11895         (get_round_mode_suffix): New.
11896         (print_operand): Use them for [/].  Remove support for [&'`()+].
11897         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
11898         * config/alpha/alpha.md (attr round_suffix): New.
11899         (attr trap_suffix): New.
11900         (all insns): Set them appropriately.  Use %/ instead of the
11901         myriad punctuators.
11902
11903 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11904
11905         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
11906
11907 2001-07-22  Richard Henderson  <rth@redhat.com>
11908
11909         * regrename.c (regrename_optimize): Compute nregs for each
11910         potential target register.
11911
11912 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
11913            Richard Henderson  <rth@redhat.com>
11914
11915         * dbxout.c (dbxout_global_decl): New.
11916         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
11917         * sdbout.c (sdbout_finish): New.
11918         (sdbout_debug_hooks): Use it, add comments.
11919         (sdbout_global_decl): Defer initialised public vars to
11920         sdbout_finish.
11921         * varasm.c (assemble_variable): Don't output debug information
11922         for file-scope variables.
11923
11924 2001-07-21  H.J. Lu  (hjl@gnu.org)
11925
11926         * config/mips/mips.c (mips_cpu): Moved into ...
11927         (override_options): Here.
11928
11929         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
11930         mips_tune.
11931         (mips_cpu): Removed.
11932
11933 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11934
11935         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
11936         ("iorqi3"): Likewise.
11937         ("xorqi3"): Likewise.
11938         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
11939         ("*subhi3_sp): Likewise.
11940         ("*subhi3"): Likewise.
11941         ("extendhisi2"): Accept D, X and Y as source operand to avoid
11942         reload problems.
11943
11944 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11945
11946         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
11947         * config/freebsd.h: Likewise.
11948         * config/linux.h: Likewise.
11949         * config/openbsd.h: Likewise.
11950         * config/alpha/linux-elf.h: Likewise.
11951         * config/arm/linux-elf.h: Likewise.
11952         * config/d30v/d30v.h: Likewise.
11953         * config/fr30/fr30.h: Likewise.
11954         * config/ia64/aix.h: Likewise.
11955         * config/ia64/ia64.h: Likewise.
11956         * config/mips/linux.h: Likewise.
11957         * config/pj/pj.h: Likewise.
11958         * config/rs6000/linux.h: Likewise.
11959         * config/sparc/linux.h: Likewise.
11960         * config/sparc/linux64.h: Likewise.
11961
11962 2001-07-20  Bruce Korb  <bkorb@gnu.org>
11963
11964         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
11965         because getc() and char* may disagree on signedness.
11966
11967 2001-07-20  Richard Henderson  <rth@redhat.com>
11968
11969         * doc/rtl.texi (REG_DEAD): Update for current semantics.
11970
11971         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
11972         insns to delete in the presence of cc0 in a jump insn.
11973
11974 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
11975                                 Jan Hubicka  <jh@suse.cz>
11976
11977         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
11978         of doing the change by hand.
11979
11980 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
11981
11982         * rtlanal.c (set_noop_p): Return true for noop jumps.
11983
11984         * expr.c (emit_single_push_insn): Add call to push expander.
11985         * expr.h (optab_index): Add OTI_push
11986         (push_optab): New constant.
11987         * genopinit.c (optabs): Add push_optab.
11988         * optabs.c (init_optab): Init push optab.
11989         * md.texi (push??1): Document
11990
11991 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11992
11993         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
11994         expand to emit the pattern; put a REG_INC note for push/pop
11995         instructions.
11996         ("movdf", "movdf_internal"): Likewise.
11997         ("movsi", "movsi_internal"): Likewise.
11998         ("movsf", "movsf_internal"): Likewise.
11999         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
12000
12001 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12002
12003         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
12004         gen_highpart.
12005
12006 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
12007
12008         * params.def: Change default max inline insns to 100.
12009
12010 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
12011
12012         * combine.c (combine_simplify_rtx): Generate a new shift operation
12013         when simplifying the first operand of a (neg (ashift)) expression.
12014
12015 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12016
12017         * regclass.c (N_REG_INTS): Use only 32 bits per element.
12018
12019 2001-07-20  Kelley Cook  <kelley.cook@home.com>
12020
12021         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
12022         information.   Move rest into ...
12023         (*-*-solaris): ... here.  Eliminate redundant information and
12024         reword necessary packages section.  Delete 4.x assembler bug info.
12025         (sparc-sun-*): Merge into ...
12026         (sparc-sun-sunos*): here.
12027
12028 2001-07-20  Catherine Moore  <clm@redhat.com>
12029
12030         * config/v850/v850.md (casesi): Generate LABEL_REF
12031         with Pmode.
12032
12033 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
12034
12035         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
12036         * i386.c (ix86_zero_extend_to_Pmode): Make global.
12037         * i386.md (strclrsi expander): Use it.
12038
12039 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12040
12041         * integrate.c (copy_insn_list): handle
12042         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
12043         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
12044         identically as to CODE_LABEL.
12045
12046         * fold-const (fold): Convert A/B/C to A/(B*C) and
12047         A/(B/C) to (A/B)*C
12048
12049         * except.c (connect_post_landing_pads): Delete the RESX insns.
12050
12051 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
12052
12053         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
12054
12055         * config/mips/mips.md (nmadd/nmsub): Use macro.
12056
12057 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
12058
12059         * cppinit.c (remove_dup_dir): Make static.
12060         (remove_dup_dirs): Make static. Only warn about preempting a
12061         system directory with a non-system directory.
12062
12063 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
12064
12065         * ifcvt.c (noce_try_store_flag_constants): Correct order
12066         of parameters to trunc_int_for_mode.
12067
12068 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
12069
12070         * reorg.c (fill_simple_delay_slots): If an instruction might throw
12071         an exception that will be caught within this function, do not fill
12072         its delay slot with any subsequent instruction.
12073
12074 2001-07-19  Steve Ellcey <sje@cup.hp.com>
12075
12076         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
12077         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
12078         pointer extension instruction.
12079         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
12080         * simplify-rtx.c (simplify_unary_operation) Likewise.
12081         * explow.c (convert_memory_address) Check value of
12082         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
12083         less than zero.
12084         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
12085         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
12086         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
12087         Add Multilib Support.
12088         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
12089         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
12090         Add Multilib Support.
12091         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
12092         support.
12093         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
12094         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
12095         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
12096
12097 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
12098
12099         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
12100         old and new operands in `<', `3' and `b'.
12101
12102 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12103
12104         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
12105         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
12106         (toplev.o): Don't depend on xcoffout.h.
12107         * c-decl.c: Include debug.h
12108         (duplicate_decls): Use debug hook.
12109         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
12110         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12111         (dbxout_types): Remove.
12112         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
12113         * debug.c (do_nothing_debug_hooks): Update.
12114         (debug_true_tree, debug_nothing_rtx): New.
12115         * debug.h (struct rtx_def): New.
12116         (struct gcc_debug_hooks): New hooks ignore_block,
12117         outlining_inline_function and label.
12118         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
12119         dwarf2out_frame_finish): New.
12120         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
12121         Make static, update prototype.
12122         (dwarf2_debug_hooks): Update.
12123         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
12124         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
12125         * dwarfout.c (dwarf_debug_hooks): Update.
12126         * emit-rtl.c: Include debug.h.
12127         (remove_unnecessary_notes): Use debug hook.
12128         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
12129         (final_scan_insn): Use debug hook.
12130         * integrate.c (output_inline_function): Use debug hook.
12131         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
12132         (sdb_debug_hooks): Update.
12133         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
12134         * toplev.c: Don't include xcoffout.h.
12135         (note_outlining_of_inline_function, debug_ignore_block): Remove.
12136         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
12137         Remove.
12138         * tree.h (dwarf2out_do_frame): Remove.
12139
12140 2001-07-19  Catherine Moore  <clm@cygnus.com>
12141
12142         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
12143
12144 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
12145
12146         * reload1.c (eliminate_regs_in_insn): When updating a set
12147         to the frame pointer to the hardware frame pointer, perform
12148         the update always not just when REPLACE is set.
12149
12150         * reload1.c (choose_reload_regs): Don't inherit a reload
12151         that crosses multiple registers if registers past the first
12152         don't fit in the desired class.
12153
12154         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
12155         when negating constants.
12156
12157 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
12158
12159         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
12160         * doc/tree.texi: Ditto.
12161
12162 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
12163             Jakub Jelinek  <jakub@redhat.com>
12164
12165         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
12166         (extract_cie_info): Handle "eh" augmentation properly,
12167         remember eh_ptr.
12168         (struct frame_state, __frame_state_for): New.
12169
12170 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12171
12172         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
12173         HANDLE_SYSV_PRAGMA): Define.
12174         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
12175         previous args.
12176         (copy_object): Caller changed.
12177
12178 2001-07-19  Andreas Schwab  <schwab@suse.de>
12179
12180         * configure.in (assembler dwarf2 debug_line support): Define nop
12181         insn for m68k.
12182         * configure: Regenerated.
12183
12184 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12185
12186         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
12187         dwarfout.h.
12188         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
12189         to conditionally compiled block.
12190         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12191         * dbxout.h (dbxout_function): Remove.
12192         * debug.c (do_nothing_debug_hooks): Update.
12193         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
12194         global_decl, deferred_inline_function.
12195         * dwarf2out.c (dwarf2_debug_hooks): Update.
12196         (dwarf2out_global_decl): New.
12197         * dwarfout.c: Don't include dwarfout.h.
12198         (dwarfout_global_decl, dwarfout_function_decl,
12199         dwarfout_deferred_inline_function): New.
12200         (dwarf_debug_hooks): Update.
12201         * dwarfout.h: Remove.
12202         * final.c: Don't include dwarfout.h.
12203         * sdbout.c (sdbout_global_decl): New.
12204         (sdbout_debug_hooks): Update.
12205         * toplev.c: Don't include dwarfout.h.
12206         (check_global_declarations, rest_of_compilation): Use new debug hooks.
12207         (note_deferral_of_defined_inline_function): Remove.
12208         * toplev.h (note_deferral_of_defined_inline_function): Remove.
12209         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
12210         * ch/lex.c: Don't include dwarfout.h.
12211         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
12212         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
12213         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
12214         * cp/optimize.c: Include debug.h.
12215         (maybe_clone_body): Use debug hook.
12216         * cp/semantics.c: Include debug.h.
12217         (expand_body): Use debug hook.
12218         * po/POTFILES.in: Remove dwarfout.h.
12219
12220 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12221
12222         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
12223         * c-parse.in (yyerror, _yylex): Similarly.
12224         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
12225         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
12226         Update comments.
12227         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
12228         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
12229
12230 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
12231
12232         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
12233         in-class declaration at -g1.  Fixes c++/2814.
12234
12235 2001-07-18  Richard Henderson  <rth@redhat.com>
12236
12237         * doc/md.texi (reload_in/out): Document restrictions in predicates
12238         and constraints for these patterns.  Document empty string matching
12239         ALL_REGS.
12240
12241 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12242
12243         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
12244
12245 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
12246
12247         * cse.c: Undo my previous patch.
12248
12249 2001-07-18  Tom Tromey  <tromey@redhat.com>
12250
12251         For PR java/2812:
12252         * configure: Rebuilt.
12253         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
12254         instead.
12255         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
12256
12257 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
12258                                 Jan Hubicka  <jh@suse.cz>
12259
12260         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
12261         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
12262         * jump.c (mark_jump_label): Do not forward branches.
12263
12264 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
12265
12266         * cse.c (delete_trivially_dead_insns): Delete the libcall block
12267         when return value is unused.
12268
12269 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12270
12271         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
12272
12273 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
12274
12275         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
12276         on error.  We can't blindly return the result of
12277         pthread_mutex_trylock because it returns a positive number on
12278         error, while we must return -1 on error.
12279         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
12280         fixes.
12281         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
12282
12283 2001-07-18  Andreas Jaeger  <aj@suse.de>
12284
12285         * integrate.c (output_inline_function): Correct type of debug_hooks.
12286
12287 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12288
12289         * combine.c (combine_simplify_rtx): DIV can be treated
12290         associatively for floats if unsafe math optimisations are enabled.
12291
12292 2001-07-17  Richard Henderson  <rth@redhat.com>
12293
12294         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
12295
12296 2001-07-17  Richard Henderson  <rth@redhat.com>
12297
12298         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
12299         don't force the function address into a register.
12300         (expand_call, emit_library_call_value_1): Update callers.
12301         * builtins.c (expand_builtin_apply): Likewise.
12302         * expr.h (prepare_call_address): Update decl.
12303
12304 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
12305
12306         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
12307         config directory.
12308         * config/i386/chorus.h: Move up.
12309         * config/sparc/chorus.h: Likewise.
12310         * config/rs6000/chorus.h: Likewise.
12311         * config/chorus.h: Moved here.
12312
12313 2001-07-17  Andreas Schwab  <schwab@suse.de>
12314
12315         * configure.in  (assembler eh_frame optimization): Handle big
12316         endian.
12317         * configure: Regenerated.
12318
12319 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
12320
12321         * expr.c (epxand_expr): Convert divisions into multiplications by
12322         reciprocals if -ffast-math.
12323
12324 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12325
12326         * dbxout.c (dbxout_really_begin_function): Rename to
12327         dbxout_begin_function.
12328         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12329         (dbxout_begin_function): Remove.
12330         (dbxout_function): Update.
12331         (dbxout_source_line): Update prototype.
12332         * dbxout.h (dbxout_begin_function): Remove.
12333         * debug.c (do_nothing_debug_hooks): Update.
12334         (debug_nothing_tree): Update.
12335         (debug_nothing_charstar_rtx): Remove.
12336         * debug.h (union tree_node): Declare.
12337         (struct rtx_def): Remove.
12338         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
12339         begin_function.  Change source_line prototype.
12340         (debug_nothing_tree): New.
12341         (debug_nothing_charstar_rtx): Delete.
12342         (dwarf2out_begin_prologue): Moved from ...
12343         * tree.h: ... here.
12344         * dwarf2out.c (dwarf2_debug_hooks): Update.
12345         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
12346         debug info, call dwarf2out_source_line.
12347         (dwarf2out_souce_line): Update prototype.
12348         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
12349         Change prototype, make static.
12350         (dwarfout_source_line): Update prototype.
12351         (dwarf_debug_hooks): Update.
12352         * dwarfout.h (dwarfout_begin_function): Remove.
12353         * final.c (final_start_function, final_scan_insn): Use appropriate
12354         debug hooks, update to use notice_source_line.
12355         (output_source_line): Rename notice_source_line.  Don't call the
12356         source_line debug hook.
12357         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
12358         make static, update prototype.
12359         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
12360         prototype.
12361         (sdbout_end_prologue): New.
12362         (sdbout_source_line): Update prototype.
12363         (sdbout_debug_hooks): Update.
12364         (sdbout_symbol): Remove unused var.
12365         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
12366         Delete.
12367         * varasm.c: Include debug.h.
12368         (assemble_start_function): Use begin_function debug_hook.
12369         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
12370         update with prototype.
12371         (xcoffout_source_line): Update prototype.
12372         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
12373         update prototype.
12374         (xcoffout_source_line): Update prototype.
12375
12376 2001-07-17  Richard Henderson  <rth@redhat.com>
12377
12378         * c-typeck.c (build_binary_op): Do not shorten unsigned
12379         right shift after sign extension.
12380
12381 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
12382
12383         * combine.c (combine_simplify_rtx): Attempt to simplify
12384         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
12385
12386         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
12387         (simplify_binary_operation, simplify_unary_operation,
12388          simplify_relational_operation): Use it.
12389
12390         * combine.c (combine_simplify_rtx): Don't do associative law
12391         on divisions; allow associative law on floats.
12392
12393 2001-07-17  H.J. Lu <hjl@gnu.org>
12394             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12395
12396         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
12397         ASM_OUTPUT_WEAK_ALIAS are defined.
12398         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
12399         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
12400         Moved ...
12401         * config/mips/iris5.h: ... here.
12402         (HANDLE_SYSV_PRAGMA): Defined as 1.
12403         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
12404         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
12405         symbol.
12406
12407 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
12408
12409         * c-parse.in (all_prefix_attributes): New variable.
12410         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
12411         (maybe_resetattrs): New production.
12412         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
12413         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
12414         notype_initdcl, nested_function, notype_nested_function,
12415         component_decl, components, components_notype,
12416         component_declarator, component_notype_declarator,
12417         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
12418         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
12419         after a comma being applied to more than one declarator.
12420         * doc/extend.texi (Attribute Syntax): Update.  Remove
12421         documentation of bugs that are no longer present.
12422
12423 2001-07-13  Eric Christopher  <echristo@redhat.com>
12424
12425         * config/mips/mips.h: Change TUNE_MIPS* options to use
12426         mips_tune.
12427         (EXTRA_SPECS): Add cc1_cpu_spec.
12428         * config/mips/mips.md (muldf3): Fix typo.
12429
12430 2001-07-16  Richard Henderson  <rth@redhat.com>
12431
12432         * config/m68k/m68k.c: Include expr.h and reload.h.
12433         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
12434         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
12435
12436 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
12437             Richard Henderson  <rth@redhat.com>
12438
12439         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
12440         (insn_live_p): Fix fall off end of function.
12441         (dead_libcall_p): Remove COUNTS argument; update callers.
12442         (delete_trivially_dead_insns): Remove unused variables.
12443
12444 2001-07-17  Andreas Jaeger  <aj@suse.de>
12445
12446         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
12447         x86-64 pic support.
12448
12449         * lcm.c (optimize_mode_switching): Avoid warning for unused
12450         variable if !NORMAL_MODE.
12451
12452         * flow.c (try_crossjump_to_edge): Remove unused variable.
12453
12454 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12455
12456         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
12457         atexit declaration in stdlib.h.
12458
12459 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
12460
12461         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
12462
12463 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12464
12465         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
12466         * except.c (finish_eh_generation): Update call of cleanup_cfg;
12467         do rebuild_jump_labels instead of jump_optimize
12468         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
12469         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
12470         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
12471
12472         * flow.c: Include timevar.h
12473         (find_basic_block): Push/pop timevar;
12474         (cleanup_cfg): Likewise.
12475         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
12476         * Makefile: Add dependencies on timevar.h
12477
12478         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
12479         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
12480
12481         * rtl.h (delete_trivially_dead_insns): Add new parameter.
12482         * toplev.c (rest_of_compilation): Update calls.
12483         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
12484         (delete_trivially_dead_insns): ... here; accept new argument
12485         preserve_basic_blocks; preserve basic blocks if set.
12486
12487         * reg-stack.c (stack_regs_mentioned): Return 0 if
12488         stack_regs_mentioned_data is not initialized.
12489         (reg_to_stack): Make stack_regs_mentioned survive after the
12490         reg-stack is completted; do not call cleanup_cfg.
12491         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
12492         make cleanup_cfg after bb-reorder to output to debug file.
12493
12494 2001-07-16  Richard Henderson  <rth@redhat.com>
12495
12496         * regclass.c (init_reg_sets): Use only 32 bits per initializer
12497         from int_reg_class_contents.
12498
12499 2001-07-16  Richard Henderson  <rth@redhat.com>
12500
12501         * hard-reg-set.h (regs_invalidated_by_call): Declare.
12502         * regclass.c (regs_invalidated_by_call): Move from cse.c.
12503         (init_reg_sets_1): Move initialization from cse_main.
12504         * cse.c (regs_invalidated_by_call): Move to regclass.c.
12505         (cse_main): Move its initialization also.
12506         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
12507         * flow.c (propagate_one_insn): Likewise.
12508         * gcse.c (compute_hash_table): Likewise.
12509         (compute_kill_rd, compute_store_table): Likewise.
12510         * sched-deps.c (sched_analyze_1): Likewise.
12511
12512 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
12513
12514         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
12515         gen_rtx_SET.
12516
12517 2001-07-16  Steve Ellcey <sje@cup.hp.com>
12518
12519         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
12520         in if statement so we don't access undefined memory.
12521
12522 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
12523
12524         * gcse.c: Update comment at top.
12525         Update comment on mem handling.
12526         mem_last_set, mem_first_set, mem_set_in_block: gone.
12527         Declaration of reg_set_info: gone.
12528         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
12529         pointless with load_killed_in_block_p (they are *more*
12530         conservative then it, not less, and less accurate).
12531         (oprs_not_set_p): Ditto.
12532         (alloc_gcse_mem): Don't allocate mem_set_in_block
12533         (free_gcse_mem): Don't free it, either.
12534         (record_last_mem_set_info): Update comment in front, remove
12535         mem_*set_* stuff. Note the reason we don't handle stores directly
12536         here.
12537         (compute_hash_table): Update comments to reflect reality. Remove
12538         mem_*set_* references.
12539         (reset_opr_set_tables): Remove mem_*set_* references.
12540         (mark_call): Ditto.
12541         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
12542         (mark_clobber): Ditto (on both parts, we double set here too).
12543         (expr_killed_p): Remove mem_set_in_block test.
12544         (compute_transp): Remove mem_set_in_block test.
12545
12546         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
12547         of edge, and removal of phi alternative to dump file.
12548         (ssa_ccp_substitute_constants): Add note about register now being
12549         constant, and which uses were replaced in what insns to dump file.
12550
12551 2001-07-16  Andreas Jaeger  <aj@suse.de>
12552
12553         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
12554         variables of type HOST_WIDEST_INT.
12555
12556         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
12557         (__bb_exit_func): Correct type of count_max to avoid overflow.
12558         (num_digits): Handle long long argument.
12559
12560         * combine.c (gen_lowpart_for_combine): Remove unused variable.
12561
12562 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
12563
12564         * output.h (sdb_begin_function_line): Restore as an extern
12565         variable.
12566         * sdbout.c (sdb_begin_function_line): Make extern.
12567
12568 2001-07-15  Richard Henderson  <rth@redhat.com>
12569
12570         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
12571         * genrecog.c (maybe_both_true_mode): New.
12572         (maybe_both_true_2): Use it.
12573         (write_switch): Don't put Pmode in a switch.
12574         * rtl.c (mode arrays): Don't explicitly size them.
12575
12576 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
12577
12578         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
12579         handling; move unconditional splitting before mode switching.
12580
12581         * i386.md (type): Add fistp type.
12582         (i387, length_attr, scheduling definitions): Handle this type.
12583         (fix_trunc?f?i2): Revamp to use mode switching.
12584         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
12585         * i386.h (fp_cw_mode): New enum
12586         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
12587         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
12588
12589 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12590
12591         * Makefile.in (integrate.o): Add debug.h.
12592         * integrate.c (debug.h): Add.
12593         (output_inline_function): Save, reset, and restore debug_hooks.
12594
12595 2001-07-15  Richard Henderson  <rth@redhat.com>
12596
12597         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
12598         instead of COMPARE for the EQUIV expression.
12599
12600 2001-07-15  Richard Henderson  <rth@redhat.com>
12601
12602         * flow.c (redirect_edge_and_branch_force): Initialize
12603         global_live_at_start and global_live_at_end.
12604         (allocate_bb_life_data): Export.
12605         * basic-block.h (allocate_bb_life_data): Declare.
12606         * toplev.c (rest_of_compilation): Call it.
12607
12608 2001-07-15  Richard Henderson  <rth@redhat.com>
12609
12610         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
12611         (alpha_tablejump_best_label): New.
12612         * config/alpha/alpha-protos.h: Declare them.
12613         * config/alpha/alpha.md: Use braced strings for code blocks.
12614         (tablejump_osf): Break out add with r29.
12615         (tablejump_osf_internal): Remove.
12616         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
12617         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
12618
12619 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
12620
12621         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
12622         of the movable.
12623
12624         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
12625
12626         * i386-protos.h (ix86_split_fp_branch): Update prototype.
12627         (ix86_fp_jump_nontrivial_p): New.
12628         * i386.md (fp_jcc_?): Update call of split_fp_branch;
12629         use ix86_fp_jump_nontrivial_p.
12630         * i386.c (ix86_fp_jump_nontrivial_p): New.
12631         (ix86_split_fp_branch): Accept code instead of rtx.
12632         (ix86_expand_compare): Expand comparison early in case
12633         doing so is resonably cheap.
12634
12635 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
12636
12637         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
12638         not 'machine'.
12639         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
12640         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
12641
12642 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
12643
12644         * dbxout.c (dbxout_source_line): Make static, update prototype.
12645         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
12646         (dbxout_init, dbxout_finish, dbxout_source_line,
12647         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
12648         * dbxout.h (dbxout_source_line): Delete.
12649         * debug.c (debug_nothing_file, debug_nothing_file_int,
12650         debug_nothing_file_charstar_rtx): New.
12651         (do_nothing_debug_hooks): Update.
12652         (debug_nothing_void, debug_nothing_charstar_rtx,
12653         dwarf2out_end_epilogue): New.
12654         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
12655         * debug.h (struct rtx_def): Declare.
12656         (gcc_debug_hooks): New hooks source_line, end_epilogue
12657         and end_function.
12658         (debug_nothing_void, debug_nothing_charstar_rtx,
12659         dwarf2out_end_epilogue): New.
12660         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
12661         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
12662         (dwarf2_debug_hooks): Update.
12663         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
12664         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
12665         * dwarf2out.h (dwarf2out_source_line): Remove.
12666         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
12667         Make static, update prototype.
12668         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
12669         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
12670         (dwarf_debug_hooks): Update.
12671         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
12672         dwarfout_end_function): Remove.
12673         * final.c (profile_function): Use debug hooks for ending functions
12674         and epilogues.
12675         (output_source_line, final_end_function): Update prototype,
12676         use debug hooks.
12677         (final_start_function, final_scan_insn): Update.
12678         * output.h (sdb_begin_function_line): Remove.
12679         (final_end_function): Update prototype.
12680         * sdbout.c (sdb_begin_function_line): Make static.
12681         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
12682         (sdbout_source_line): New.
12683         (sdbout_end_epilogue, sdbout_end_function): Make static, update
12684         prototypes.
12685         (sdb_debug_hooks): Update.
12686         (sdbout_init, sdbout_source_line,
12687         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
12688         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
12689         * toplev.c (compile_file, rest_of_compilation): Update.
12690         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
12691         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
12692         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
12693         Update for prototype changes.
12694         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
12695         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
12696
12697 2001-07-15  Richard Henderson  <rth@redhat.com>
12698
12699         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
12700         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
12701         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
12702         * config/alpha/alpha.c: Likewise.
12703         * config/alpha/alpha.md: Likewise.
12704         * config/alpha/alpha32.h: Likewise.
12705         * config/alpha/vms.h: Likewise.
12706         (OPEN_VMS): Remove.
12707
12708 2001-07-14  Richard Henderson  <rth@redhat.com>
12709
12710         * config/alpha/alpha.md: Use define_constants for unspec values.
12711         Substitute throughout.
12712
12713 2001-07-14  Tim Josling  <tej@melbpc.org.au>
12714
12715         * tree.def (EXPON_EXPR) remove. Never supported anyway.
12716
12717 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12718
12719         * pa.md: Remove unused constraints from define_split's.
12720
12721 2001-04-14  Richard Henderson  <rth@redhat.com>
12722
12723         * ifcvt.c (find_cond_trap): Test for exit block.
12724
12725 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
12726
12727         Re-install recently reverted patch.
12728         * emit-rtl.c (try_split): Update mark_jump_label call.
12729         * flow.c (find_sub_basic_blocks): Likewise.
12730         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
12731         jump_back_p): Kill.
12732         (mark_all_labels): Kill second parameter.
12733         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
12734         (rebuild_jump_labels, jump_optimize_minimal): Update call
12735         of jump_optimize_1.
12736         (jump_optimize_1): Kill crossjumping code.
12737         (mark_jump_label): Kill cross_jump parameter.
12738         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
12739         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
12740         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
12741          splitting.
12742         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
12743         DFI_bpro.
12744         (dump_file_info): Likewise.
12745         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
12746         reorganize passes to do reg-stack first, bb-reorder second.
12747         * invoke.texi (-d letters doc): Remove the jump2 pass.
12748
12749 2001-07-14  Richard Henderson  <rth@redhat.com>
12750
12751         * ifcvt.c (find_cond_trap): New.
12752         (find_if_header): Call it.
12753         (merge_if_block): Relax existing jump sanity check.
12754         * jump.c (jump_optimize_1): Remove conditional trap handling.
12755
12756 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
12757
12758         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
12759         millicode.
12760         (insn_refs_are_delayed): Correct comment.
12761         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
12762         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
12763         instead of r31.  Make associated insn !TARGET_64BIT, and
12764         provide an additional 64-bit insn that clobbers r2.
12765         (divsi3): Likewise.
12766         (udivsi3): Likewise.
12767         (modsi3): Likewise.
12768         (umodsi3): Likewise.
12769
12770 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
12771
12772         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
12773
12774         * flow.c (redirect_edge_and_branch_force, split_edge,
12775         try_crossjump_to_edge): Use set_block_for_new_insns.
12776         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
12777
12778 2001-07-13  H.J. Lu  (hjl@gnu.org)
12779
12780         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
12781         the correct patch.
12782
12783 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
12784
12785         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
12786
12787 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
12788
12789         * c-common.c (decl_attributes): Take a pointer to the node to
12790         which attributes are to be attached, and a flags argument.
12791         * c-common.h (enum attribute_flags): New.
12792         (decl_attributes): Update prototype.
12793         * c-decl.c (start_decl, push_parm_decl, finish_struct,
12794         finish_enum, start_function): Update calls to decl_attributes.
12795         * c-parse.in (component_declarator, component_notype_declarator,
12796         label): Update calls to decl_attributes.
12797
12798 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
12799
12800         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
12801         * config/avr/avr.c (legitimate_address_p): Return value changed
12802         from letter to register classes. For better debugging.
12803
12804 2001-07-13  Kazu Hirata  <kazu@hxi.com>
12805
12806         * jump.c (reversed_comparison_code_parts): Fix comment typos.
12807
12808 2001-07-13  H.J. Lu  (hjl@gnu.org)
12809
12810         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
12811
12812 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
12813
12814         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
12815         correctly for shared configurations.
12816         * config/t-libgcc-pic:  New.
12817         * config/{i386,m68k,sparc}/t-openbsd:  New.
12818         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
12819         Support -shared.  Support debugging libraries with -g.
12820         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
12821         frame information does not emit pointer diffs.
12822         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
12823         emit pointer diffs.
12824
12825 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
12826
12827         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
12828
12829 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
12830
12831         * combine.c (try_combine): Ensure const_int pow2 is positive.
12832
12833 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
12834
12835         * config.gcc: Add configuration for s/390.
12836         * config/s390/s390.c: New. Subroutines for code generation.
12837         * config/s390/s390.h: New. Definitions for s/390.
12838         * config/s390/s390-protos.h: New. Prototypes.
12839         * config/s390/linux.h: New. Definitions for linux for s/390.
12840         * config/s390/linux64.h: New. Definitions for linux for zSeries.
12841         * config/s390/t-linux: New. Makefile fragment.
12842         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
12843         * config/s390/fixdfdi.h: New. Fix L_fix*di.
12844
12845 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
12846
12847         * emit-rtl.c (try_split): Update mark_jump_label call.
12848         * flow.c (find_sub_basic_blocks): Likewise.
12849         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
12850         jump_back_p): Kill.
12851         (mark_all_labels): Kill second parameter.
12852         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
12853         (rebuild_jump_labels, jump_optimize_minimal): Update call
12854         of jump_optimize_1.
12855         (jump_optimize_1): Kill crossjumping code.
12856         (mark_jump_label): Kill cross_jump parameter.
12857         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
12858         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
12859         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
12860          splitting.
12861         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
12862         DFI_bpro.
12863         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
12864         reorganize passes to do reg-stack first, bb-reorder second.
12865         * invoke.texi (-d letters doc): Remove the jump2 pass.
12866
12867 2001-07-12  Steve Ellcey <sje@cup.hp.com>
12868
12869         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
12870
12871 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
12872
12873         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
12874         basic blocks.
12875         (verify_flow_info): Make diagnostics prettier.
12876
12877 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
12878
12879         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
12880
12881         * flow.c (outgoing_edges_match): Return early if condition reversal
12882         failed.
12883
12884 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
12885
12886         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
12887         (mips_move_2words): When splitting a move into two instructions,
12888         prefix the second address operand with '%D'.
12889
12890 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
12891
12892         * Makefile.in (final.o): Depend on debug.h.
12893         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
12894         (dbx_debug_hooks): Add new hooks.
12895         (xcoff_debug_hooks): New.
12896         * debug.c (debug_nothing_file_int_int): New.
12897         (do_nothing_debug_hooks): Update.
12898         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
12899         (debug_nothing_file_int_int): New.
12900         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
12901         static, update prototype.
12902         (dwarf2_debug_hooks): Update.
12903         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
12904         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
12905         static, update prototype.
12906         (dwarf_debug_hooks): Update.
12907         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
12908         * final.c: Include debug.h.
12909         (final_scan_insn): Use debug hooks when beginning and ending blocks.
12910         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
12911         static, update prototype.
12912         (sdb_debug_hooks): Update.
12913         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
12914         * toplev.c: Distinguish between xcoff and dbx.
12915
12916         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
12917         Call all debug hooks, not just dwarf ones.
12918
12919 2001-07-11  Timothy Wall  <twall@redhat.com>
12920
12921         * config.gcc: Add configuration for AIX5/IA64.
12922         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
12923         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
12924         support prefix/suffix code.
12925         * config/ia64/t-aix: New.  Makefile fragment.
12926         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
12927
12928 2001-07-11  Kazu Hirata  <kazu@hxi.com>
12929
12930         * recog.c (validate_change): Fix a comment typo.
12931
12932 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
12933
12934         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
12935         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
12936         hooks directly.
12937         * dbxout.c (dbx_debug_hooks): Add new hooks.
12938         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
12939         make static.
12940         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
12941         make static.
12942         * dbxout.h (dbxout_start_new_source_file,
12943         dbxout_resume_previous_source_file): Delete.
12944         * debug.c (do_nothing_debug_hooks): Add new hooks.
12945         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
12946         (debug_nothing_int_charstar, debug_nothing_int): New.
12947         * debug.h (gcc_debug_hooks): New hooks define, undef,
12948         start_source_file and end_source_file.
12949         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
12950         (debug_nothing_int_charstar, debug_nothing_int): New.
12951         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
12952         the conditionally compiled section.
12953         (dwarf2out_start_source_file, dwarf2out_end_source_file,
12954         dwarf2out_define, dwarf2out_undef): Make static.
12955         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
12956         dwarf2out_define, dwarf2out_undef): Remove.
12957         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
12958         (dwarfout_start_source_file, dwarfout_end_source_file,
12959         dwarfout_define, dwarfout_undef): Make static.
12960         (dwarfout_start_source_file_check,
12961         dwarfout_end_source_file_check): New.
12962         (dwarfout_define, dwarfout_finish): Update.
12963         * dwarfout.h (dwarfout_start_new_source_file,
12964         dwarfout_resume_previous_source_file, dwarfout_define,
12965         dwarfout_undef): Remove.
12966         * sdbout.c (sdb_debug_hooks): Add new hooks.
12967         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
12968         make static.
12969         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
12970         make static, take an arg.
12971         * sdbout.h (sdbout_start_new_source_file,
12972         sdbout_resume_previous_source_file): Delete.
12973         * toplev.c (debug_start_source_file, debug_end_source_file,
12974         debug_define, debug_undef): Delete.
12975         * toplev.h (debug_start_source_file, debug_end_source_file,
12976         debug_define, debug_undef): Delete.
12977
12978         * java/jcf-parse.c: Include debug.h.
12979         (parse_class_file): Update to use debug hooks directly.
12980         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
12981
12982 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12983
12984         * alias.c (set_mem_alias_set): New function.
12985         * rtl.h (set_mem_alias_set): Declare it.
12986         * builtins.c (expand_builtin_return_addr): Call it instead of
12987         using MEM_ALIAS_SET accessor.
12988         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
12989         (get_memory_rtx, expand_builtin_va_arg): Likewise.
12990         (expand_builtin_va_copy):Likewise.
12991         * caller-save.c (setup_save_areas): Likewise.
12992         * calls.c (compute_argument_addresses): Likewise.
12993         * explow.c (set_mem_attributes): Likewise.
12994         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
12995         (expand_assignment, store_constructor_field, store_field): Likewise.
12996         (expand_expr_unaligned): Likewise.
12997         * function.c (assign_stack_temp_for_type): Likewise.
12998         (put_reg_into_stack, gen_mem_addressof): Likewise.
12999         * ifcvt.c (noce_try_cmove_arith): Likewise.
13000         * reload1.c (reload, alter_reg): Likewise.
13001         * config/alpha/alpha.c (get_aligned_mem): Likewise.
13002         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
13003         (alpha_expand_unaligned_store): Likewise
13004         (alpha_expand_unaligned_load_words): Likewise.
13005         (alpha_expand_unaligned_store_words): Likewise.
13006         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
13007         (alpha_expand_epilogue): Likewise.
13008         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
13009         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
13010         * config/i386/i386.c (legitimize_pic_address): Likewise.
13011         * config/i960/i960.c (setup_incoming_varargs): Likewise.
13012         * config/ia64/ia64.c (spill_restore_mem): Likewise.
13013         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
13014         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
13015         * config/mips/mips.c (mips_va_arg): Likewise.
13016         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
13017         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
13018         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
13019         (setup_incoming_varargs, rs6000_va_arg): Likewise.
13020         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
13021         (rs6000_emit_epilogue): Likewise.
13022         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
13023         * config/sparc/sparc.c (sparc_va_arg): Likewise.
13024         * config/v850/v850.c (v850_va_arg): Likewise.
13025
13026 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
13027
13028         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
13029         when fallthru edge is present.
13030         (mege_blocks): Handle case where creation of jump insn
13031         is required.
13032
13033         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
13034         CLEANUP_POST_REGSTACK): New constants.
13035         * except.c (finish_eh_generation): Update call of cleanup_cfg,
13036         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
13037         * output.h (cleanup_cfg): Update prototype.
13038         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
13039         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
13040         cleanup_cfg call; kill missleading comment.
13041         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
13042         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
13043         parameter; control optimizations performed using it.
13044         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
13045         try_crossjump_bb): New functions.
13046
13047 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13048
13049         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
13050         extern.
13051         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
13052         pa_output_function_prologue.
13053         * pa-protos.h (pa_output_function_prologue): New prototype.
13054
13055 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13056
13057         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
13058         and low to get correct sign extension in low+high test.
13059
13060 2001-07-11  Janis Johnson <janis@us.ibm.com>
13061
13062         * gcov.c (arcdata): Use gcov_type to fix branch percentage
13063         for large hit count.
13064
13065         * profile.c (branch_prob): Fix .bbg info for computed gotos
13066         and C++ EH code.
13067
13068 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
13069
13070         * stmt.c (parse_output_constraint): New function, split out
13071         from ...
13072         (expand_asm_operands): ... here.  Use parse_output_constraint.
13073         * tree.h (parse_output_constraint): Declare it.
13074
13075 2001-07-11  Richard Henderson  <rth@redhat.com>
13076
13077         * bitmap.c: Comment some functions; fiddle whitespace.
13078         (bitmap_free): Don't export.
13079         (bitmap_element_allocate): Use memset.
13080         * bitmap.h (bitmap_free): Don't declare.
13081
13082 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
13083
13084         * gcse.c, lcm.c, sched-deps.c:
13085         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
13086
13087         * flow.c (flow_loops_find): Free dom if we found no loops, since
13088         we aren't going to save it.
13089
13090         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
13091         done.
13092
13093 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
13094
13095         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
13096
13097 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13098
13099         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
13100         #ifndef DWARF2_DEBUGGING_INFO.
13101
13102 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13103
13104         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
13105
13106 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13107
13108         * config/mips/mips.c (gen_int_relational): Tell the caller not to
13109         reverse a branch if a NE comparison is implemented with GTU.
13110
13111 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
13112             H.J. Lu  <hjl@gnu.org>
13113
13114         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
13115         constant addresses.
13116         (call_internal2): Likewise.
13117         (call_value_internal1): Likewise.
13118         (call_value_internal2): Likewise.
13119         (call_value_multiple_internal1): Likewise.
13120         (call_value_multiple_internal2): Likewise.
13121
13122 2001-07-10  Kazu Hirata  <kazu@hxi.com>
13123
13124         * calls.c (emit_library_call_value_1): Fix a comment typo.
13125         * dwarf2out.c (mem_loc_descriptor): Likewise.
13126         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
13127
13128 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
13129
13130         * simplify-rtx.c (simplify_subreg): Fix typo in comment
13131
13132 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13133
13134         * recog.c (offsettable_address_p): Handle LO_SUM case.
13135         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
13136         instead of plus_constant.
13137
13138 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13139
13140         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
13141         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
13142
13143 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13144
13145         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
13146         adjust_address_nv instead of plus_constant.
13147
13148 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
13149
13150         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
13151         dwarf2out.o): Depend on debug.h, wrap long lines.
13152         * dbxout.c: Include debug.h.
13153         (dbx_debug_hooks): New.
13154         (dbxout_init): Make static, take just 2 args.
13155         (dbxout_finish): Make static.
13156         * dbxout.h (dbxout_init, dbxout_finish): Delete.
13157         * debug.c: New file.
13158         * debug.h: New file.
13159         * dwarf2out.c: Include debug.h.
13160         (dwarf2_debug_hooks): New.
13161         (dwarf2out_init): Make static.
13162         (dwarf2out_finish): Make static, take 2 args.
13163         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
13164         * dwarfout.c: Include debug.h.
13165         (dwarf_debug_hooks): New.
13166         (dwarfout_init): Make static.
13167         (dwarfout_finish): Make static, take 2 args.
13168         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
13169         * sdbout.c: Include debug.h.
13170         (sdb_debug_hooks): New.
13171         (sdbout_init): Make static, take 2 args.
13172         * sdbout.h (sdbout_init): Delete.
13173         * toplev.c: Include debug.h.
13174         (debug_hooks): New.
13175         (compile_file): Set deubg_hooks based on command line options.
13176         Use the hooks unconditionally rather than conditional compilation.
13177
13178 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
13179
13180         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
13181         first_insn_after_basic_block_note instead.
13182
13183         * df.c (df_bb_refs_unlink): #if 0 out for now.
13184
13185 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
13186
13187         * ssa.h: Add prototype for ssa_const_prop
13188         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
13189         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
13190         (ssa_fast_dce): Remove unused variable
13191
13192 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13193
13194         * diagnostic.c (finish_diagnostic): Rename to
13195         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
13196         calls thourghout.
13197
13198 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
13199
13200         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
13201         .loc support.
13202
13203         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
13204         (dump_file): Only pad the demangled name with spaces if the
13205         mangled name was padded with spaces.
13206
13207 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
13208
13209         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
13210         edge detection.
13211
13212 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13213
13214         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
13215         extraction if no direct load if either EXPAND_CONST_ADDRESS or
13216         EXPAND_INITIALIZER.
13217
13218         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
13219         whether can put offset inside LO_SUM to check mode alignment, not size.
13220
13221 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13222
13223         * doc/tm.texi (Misc): Fix thinko.
13224
13225 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
13226
13227         * regmove.c (replace_in_call_usage): Fix warnings.
13228         * sched-deps.c (add_dependence): Fix warnings.
13229         * simplify-rtx.c (simplify_subreg): Likewise.
13230         Return NULL_RTX instead of NULL.
13231
13232         * reg-stack.c (emit_swap_insn): Eliminate warnings.
13233         (subst_asm_stack_regs): Likewise.
13234
13235         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
13236         warnings.
13237
13238         * dwarf2out.c (output_call_frame_info): Declare i as int.
13239         (build_abbrev_table): Declare n_alloc as int.
13240         (dwarf2out_finish): Initialize die.
13241         * except.c: Declare sjlj_funcdef_number as unsigned.
13242         (connect_post_landing_pads): Declare j as unsigned.
13243         (convert_to_eh_region_ranges): Initialize call_site.
13244         (output_function_exception_table): Initialize tt_format_size.
13245         * expr.c (move_by_pieces_1): Initialize to1.
13246         (store_constructor): Initialize minelt and maxelt.
13247         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
13248         * function.c (instantiate_decls): Avoid signed/unsigned warning.
13249
13250         * c-decl.c (combine_parm_decls): Unused, remove.
13251         * c-tree.h: Remove prototype for combine_parm_decls.
13252
13253         * reload.c (push_reload): Fix warning.
13254         (regno_clobbered_p): Likewise.
13255         * reload1.c (replace_pseudos_in_call_usage): Likewise.
13256         (reload_combine): Likewise.
13257
13258         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
13259         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
13260         warnings.
13261         * bitmap.c (bitmap_operation): Change user.
13262         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
13263
13264 2001-07-10  Eric Christopher  <echristo@redhat.com>
13265
13266         * config/mips/mips.c (override_options): Fix typo.
13267
13268 2001-07-09  Stan Shebs  <shebs@apple.com>
13269
13270         * target.h (struct gcc_target): New fields init_builtins and
13271         expand_builtin.
13272         * target-def.h (TARGET_INIT_BUILTINS): New macro.
13273         (TARGET_EXPAND_BUILTIN): New macro.
13274         (TARGET_INITIALIZER): Add them.
13275         * builtins.c: Include target.h.
13276         (expand_builtin): Use targetm.expand_builtin.
13277         (default_init_builtins): New function.
13278         (default_expand_builtin): New function.
13279         * expr.h (default_init_builtins): Declare.
13280         (default_expand_builtin): Declare.
13281         * c-common.c (c_common_nodes_and_builtins): Use
13282         targetm.init_builtins.
13283         * defaults.h (MD_INIT_BUILTINS): Remove.
13284         * Makefile.in (builtins.o): Depend on target.h.
13285
13286         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
13287         (TARGET_EXPAND_BUILTIN): Define.
13288         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
13289         (MD_EXPAND_BUILTIN): Remove.
13290
13291         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
13292         (TARGET_EXPAND_BUILTIN): Define.
13293         (c4x_init_builtins): Make endlink arg a local.
13294         (c4x_print_operand): Fix typos in adjust_address usages.
13295         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
13296         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
13297         (MD_EXPAND_BUILTIN): Remove.
13298
13299         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
13300         (TARGET_EXPAND_BUILTIN): Define.
13301         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
13302         (ix86_init_builtins): Call new function only if TARGET_MMX.
13303         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
13304         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
13305         (MD_EXPAND_BUILTIN): Remove.
13306
13307         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
13308         (TARGET_EXPAND_BUILTIN): Define.
13309         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
13310         (MD_EXPAND_BUILTIN): Remove.
13311
13312         * doc/tm.texi: Document these changes.
13313
13314 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
13315
13316         * basic-block.h (tree_node): Forward declare if needed.
13317         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
13318         (BLOCK_HEAD_TREE): Define.
13319         (BLOCK_END_TREE): Define.
13320         (struct loops): Rename field 'tree' to 'tree_root'.
13321         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
13322         'end_tree'.
13323         (flow_loops_tree_build): Rename reference to field 'tree' to
13324         'tree_root'.
13325         (flow_loops_level_compute): Ditto.
13326         * predict.c (estimate_bb_frequencies): Ditto.
13327         * tree.h (struct tree_common): Add field 'aux'.
13328
13329 2001-07-09  Stan Shebs  <shebs@apple.com>
13330
13331         * config/darwin.c (darwin_encode_section_info): Don't mark any
13332         DECL_EXTERNAL node as defined.
13333
13334 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13335
13336         * pa.c (pa_init_machine_status, pa_mark_machine_status,
13337         pa_free_machine_status, hppa_init_pic_save): Delete.
13338         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
13339         (hppa_profile_hook): Use hppa_pic_save_rtx.
13340         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
13341         hppa_init_pic_save): Delete.
13342         (hppa_pic_save_rtx): Declare.
13343         * pa.md (call, call_value, sibcall, sibcall_value,
13344         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
13345
13346 2001-07-09  Kazu Hirata  <kazu@hxi.com>
13347
13348         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
13349         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
13350
13351 2001-07-09  Andreas Jaeger  <aj@suse.de>
13352
13353         * output.h: Add declaration of final_forward_branch_p.
13354
13355         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
13356
13357         * varray.c: Include errors.h for internal_error and trim_filename
13358         declarations.
13359
13360         * Makefile.in (varray.o): Add errors.h.
13361
13362 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
13363
13364         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
13365         * optabs.c (have_add2_insn): Check whether the add insn chosen
13366         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
13367         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
13368
13369 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
13370
13371         * Makefile.in (OBJS): Add ssa-ccp.o
13372         (ssa-ccp.o): Add dependencies.
13373         * toplev.c (DFI_ssa_ccp): New dump file enum.
13374         (dump_file): Add entry for dumping after SSA CCP.
13375         (flag_ssa_ccp): New flag variable.
13376         (f_options): Add -fssa-ccp.
13377         (rest_of_compilation): Run SSA CCP if requested.
13378         * timevar.def (TV_SSA_CCP): New timevar.
13379         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
13380         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
13381         Fix minor typo in SSA DCE documentation.
13382         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
13383         Add documentation for new dump option.  Renumber dump files
13384         appropriately.
13385
13386 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
13387
13388         * emit-rtl.c (gen_highpart_mode): New.
13389         * rtl.h (gen_highpart_mode): Declare.
13390         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
13391         operand can be VOIDmode constant.
13392
13393 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
13394
13395         * flow.c (redirect_edge_and_branch_force): New.
13396         (can_fallthru): Ensure that basic blocks are succeeding.
13397         (try_optimize_cfg): Do not delete basic block if it is the last one.
13398
13399         * flow.c (try_redirect_by_replacing_jump): Do not remove
13400         jumps with side effects, unlink chain on fallthru edge;
13401         set block for new jump instruction; avoid basic block to
13402         over by line number note.
13403
13404         * flow.c (try_simplify_condjump): Verify that the condjump
13405         is not always falling through.
13406
13407         Re-install patch:
13408         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
13409
13410         * flow.c (forwarder_block_p): Fix for fallthru blocks.
13411         (try_redirect_by_replacing_jump): Update properly the count
13412         and frequency information.
13413
13414 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13415
13416         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
13417         address that is a LO_SUM specially.
13418         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
13419
13420         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
13421
13422         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
13423         (operand_subword): Use them.
13424         (change_address_1): Renamed from change_address; new arg VALIDATE.
13425         * expr.h: Reflect above changes; change_address now macro.
13426         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
13427         making MEM.
13428         * cselib.c (add_mem_for_addr): Likewise.
13429         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
13430         * regmove.c (try_apply_stack_adjustment): Likewise.
13431         * reload.c (push_reload, make_memloc): Likewise.
13432         * reload1.c (eliminate_regs): Likewise.
13433         * simplify-rtx.c (simplify_replace_rtx): Likewise.
13434         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
13435         adjust_addess.
13436         * combine.c (make_extraction, simplify_shift_const): Likewise.
13437         (gen_lowpart_for_combine): Likewise.
13438         * cse.c (gen_lowpart_if_possible): Likewise.
13439         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
13440         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
13441         * optabs.c (gen_move_insn): Likewise.
13442         * reload1.c (alter_reg): Likewise.
13443         * simplify-rtx.c (simplify_subreg): Likewise.
13444         * stmt.c (expand_anon_union_decl): Likewise.
13445         * recog.c (validate_replace_rtx_1): Likewise.
13446         (expr.h): Include.
13447         * Makefile.in (recog.o): Add $(EXPR_H).
13448         * explow.c (stabilize): Call replace_equiv_address.
13449         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
13450         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
13451
13452 2001-07-03  Andrew Haley  <aph@redhat.com>
13453
13454         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
13455         the mode of the memory location.
13456
13457 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
13458
13459         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
13460
13461 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13462
13463         * final.c (output_addr_const): Use target opening and
13464         closing parentheses.
13465         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
13466         defaults, add to TARGET_ASM_OUT.
13467         * target.h (struct gcc_target): Add open_paren and close_paren.
13468         * doc/md.texi: Update.
13469         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
13470         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
13471         TARGET_ASM_CLOSE_PAREN.
13472         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
13473         Override.
13474         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
13475         Override.
13476         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
13477         * config/a29k/a29k.h: Similarly.
13478         * config/alpha/alpha.h: Similarly.
13479         * config/arc/arc.h: Similarly.
13480         * config/arm/aof.h: Similarly.
13481         * config/arm/aout.h: Similarly.
13482         * config/avr/avr.h: Similarly.
13483         * config/c4x/c4x.h: Similarly.
13484         * config/clipper/clipper.h: Similarly.
13485         * config/convex/convex.h: Similarly.
13486         * config/d30v/d30v.h: Similarly.
13487         * config/dsp16xx/dsp16xx.h: Similarly.
13488         * config/elxsi/elxsi.h: Similarly.
13489         * config/fr30/fr30.h: Similarly.
13490         * config/h8300/h8300.h: Similarly.
13491         * config/i370/i370.h: Similarly.
13492         * config/i386/i386.h: Similarly.
13493         * config/i860/i860.h: Similarly.
13494         * config/i960/i960.h: Similarly.
13495         * config/ia64/ia64.h: Similarly.
13496         * config/m32r/m32r.h: Similarly.
13497         * config/m68hc11/m68hc11.h: Similarly.
13498         * config/m68k/m68k.h: Similarly.
13499         * config/m88k/m88k.h: Similarly.
13500         * config/mcore/mcore.h: Similarly.
13501         * config/mips/mips.h: Similarly.
13502         * config/mn10200/mn10200.h: Similarly.
13503         * config/mn10300/mn10300.h: Similarly.
13504         * config/ns32k/ns32k.h: Similarly.
13505         * config/pa/pa.h: Similarly.
13506         * config/pdp11/pdp11.h: Similarly.
13507         * config/pj/pj.h: Similarly.
13508         * config/romp/romp.h: Similarly.
13509         * config/rs6000/rs6000.h: Similarly.
13510         * config/sh/sh.h: Similarly.
13511         * config/sparc/sparc.h: Similarly.
13512         * config/v850/v850.h: Similarly.
13513         * config/vax/vax.h: Similarly.
13514         * config/we32k/we32k.h: Similarly.
13515
13516 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
13517
13518         * doc/c-tree.texi: Document representation of attributes.
13519
13520 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13521
13522         * doc/tm.texi: Update some places for the rename of target to
13523         targetm.  Fix typo.
13524
13525 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13526
13527         * target.h (struct gcc_target): Add insert_attributes.
13528         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
13529         (TARGET_INITIALIZER): Update.
13530         * tree.c, tree.h (default_insert_attributes): New function.
13531         Update comments on other default functions to refer to targetm,
13532         not target.
13533         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
13534         TARGET_INSERT_ATTRIBUTES.
13535         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
13536         * c-common.c (decl_attributes): Use targetm.insert_attributes.
13537         Don't use PRAGMA_INSERT_ATTRIBUTES.
13538         * Makefile.in (c-common.o): Depend on $(TARGET_H).
13539         * c-decl.c (start_decl, start_function): Don't call
13540         SET_DEFAULT_DECL_ATTRIBUTES.
13541         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
13542         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
13543         declare.
13544         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
13545         (c4x_check_attribute): Avoid modifying attribute list itself.
13546         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
13547         Make static.
13548         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
13549         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
13550         declare.
13551         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
13552         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
13553         Make static.
13554         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
13555         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
13556         declare.
13557         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
13558         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
13559         Adjust parameters.  Make static.
13560
13561 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13562
13563         * c-common.c (decl_attributes): Only take a single attributes
13564         parameter.
13565         * c-common.h (decl_attributes): Update prototype.
13566         * c-decl.c (start_decl, start_function): Only take a single
13567         attributes parameter.  Update calls to decl_attributes.
13568         (finish_struct, finish_enum): Update calls to decl_attributes.
13569         (push_parm_decl): Expect unified list of attributes.  Update call
13570         to decl_attributes.
13571         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
13572         notype_nested_function, component_declarator,
13573         component_notype_declarator, label): Update calls to
13574         decl_attributes.
13575         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
13576         lists that are passed to push_parm_decl.
13577         * c-tree.h (start_function, start_decl): Update prototypes.
13578         * config/sh/sh-protos.h, config/sh/sh.c
13579         (sh_pragma_insert_attributes): Only take a single attributes
13580         parameter.
13581         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
13582         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
13583         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
13584         build_module_descriptor, generate_static_references,
13585         generate_strings, build_selector_translation_table,
13586         generate_descriptor_table, generate_protocols,
13587         generate_ivars_list, generate_dispatch_table,
13588         generate_protocol_list, generate_category,
13589         generate_shared_structures, really_start_method, add_objc_decls,
13590         generate_classref_translation_entry): Update calls to start_decl
13591         and start_function.
13592         (build_tmp_function_decl, start_method_def): Unify attribute lists
13593         that are passed to push_parm_decl.
13594
13595 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13596
13597         * final.c (no_asm_to_stream): New.
13598         (final_scan_insn): Use target structures for prologue ends
13599         and epilogue starts.
13600         * output.h (no_asm_to_stream): New.
13601         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
13602         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
13603         (TARGET_ASM_OUT): Update.
13604         * target.h (struct gcc_target): New members function_end_prologue
13605         and function_begin_epilogue.
13606         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
13607         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
13608         * config/alpha/alpha.c (output_end_prologue): Rename to
13609         alpha_output_function_end_prologue.  Use in target struct
13610         and make static.
13611         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
13612         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
13613         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
13614         ia64_output_function_end_prologue.  Use in target struct
13615         and make static.
13616         (ia64_function_prologue, ia64_funciton_epilogue): Rename
13617         mistyped prototypes.
13618         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
13619         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
13620         Delete.
13621         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
13622         an use in target struct, make static.
13623         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
13624         Delete.
13625
13626 2001-07-08  Richard Henderson  <rth@redhat.com>
13627
13628         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
13629
13630 2001-07-08  Richard Henderson  <rth@redhat.com>
13631
13632         * config/i386/i386.md: Remove constraints strings from define_split
13633         and define_peephole2 patterns.
13634         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
13635         (eh_return): Use them.
13636
13637 2001-07-08  Richard Henderson  <rth@redhat.com>
13638
13639         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
13640         Document MD_FALLBACK_FRAME_STATE_FOR.
13641
13642 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13643
13644         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
13645         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
13646         elimination.
13647         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
13648
13649 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
13650
13651         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
13652         of the label inside NAME as opposed to just the end of NAME.
13653
13654 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
13655
13656         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
13657         * config/alpha/alpha.c (alpha_init_machine_status,
13658         alpha_mark_machine_status, alpha_free_machine_status): Delete.
13659         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
13660         (vms_valid_decl_attribute_p): Make static, conditionally compile.
13661         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
13662
13663 2001-07-06  Stan Shebs  <shebs@apple.com>
13664
13665         * target.h (targetm): Rename global from "target", so as not to
13666         conflict with local variables.
13667         * c-decl.c: Ditto.
13668         * c-typeck.c: Ditto.
13669         * final.c: Ditto.
13670         * tree.c: Ditto.
13671         * cp/decl.c: Ditto.
13672         * cp/decl2.c: Ditto.
13673         * cp/typeck.c: Ditto.
13674         * 1750a/1750a.c: Ditto.
13675         * a29k/a29k.c: Ditto.
13676         * arc/arc.c: Ditto.
13677         * arm/arm.c: Ditto.
13678         * avr/avr.c: Ditto.
13679         * clipper/clipper.c: Ditto.
13680         * convex/convex.c: Ditto.
13681         * d30v/d30v.c: Ditto.
13682         * dsp16xx/dsp16xx.c: Ditto.
13683         * elxsi/elxsi.c: Ditto.
13684         * fr30/fr30.c: Ditto.
13685         * h8300/h8300.c: Ditto.
13686         * i370/i370.c: Ditto.
13687         * i386/i386.c: Ditto.
13688         * i860/i860.c: Ditto.
13689         * i960/i960.c: Ditto.
13690         * ia64/ia64.c: Ditto.
13691         * m32r/m32r.c: Ditto.
13692         * m68hc11/m68hc11.c: Ditto.
13693         * m68k/m68k.c: Ditto.
13694         * m88k/m88k.c: Ditto.
13695         * mips/mips.c: Ditto.
13696         * ns32k/ns32k.c: Ditto.
13697         * pa/pa.c: Ditto.
13698         * pdp11/pdp11.c: Ditto.
13699         * romp/romp.c: Ditto.
13700         * rs6000/rs6000.c: Ditto.
13701         * sh/sh.c: Ditto.
13702         * sparc/sparc.c: Ditto.
13703         * vax/vax.c: Ditto.
13704         * we32k/we32k.c: Ditto.
13705         * doc/tm.texi: Update the manual to match.
13706
13707 2001-07-06  Richard Henderson  <rth@redhat.com>
13708
13709         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
13710         DWARF2_UNWIND_INFO not just whether it is defined.
13711
13712 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
13713
13714         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
13715         call to simplify_binary_operation returns a new pattern.
13716
13717 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
13718
13719         * glimits.h (__SHRT_MAX__): New.
13720         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
13721         (SHRT_MAX): Define in terms of __SHRT_MAX__.
13722
13723 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
13724
13725         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
13726         avoid warnings.
13727
13728 2001-07-06  Richard Henderson  <rth@redhat.com>
13729
13730         * bitmap.c (bitmap_release_memory): Move adjacent to the
13731         allocation functions.
13732         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
13733         the implementation.  Binary search for the set bit.
13734         (bitmap_union_of_diff): Allocate the temporary on the stack
13735         instead of using xmalloc.
13736
13737 2001-07-06  Richard Henderson  <rth@redhat.com>
13738
13739         * genrecog.c (validate_pattern): Warn for constraints in
13740         define_{expand,split,peephole2}.  Remove strict_low_part
13741         before looking up match_dup.
13742
13743 2001-07-06  DJ Delorie  <dj@redhat.com>
13744
13745         * doc/gcc.texi (Makefile): Rename to be a more general purpose
13746         chapter about various build hints and history.  Add section
13747         talking about the various types of native and cross builds.
13748
13749 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
13750
13751         * Makefile.in (final.o): Depend on target.h.
13752         * final.c: Include target.h.
13753         (default_function_pro_epilogue): New.
13754         (final_start_function): Use target structure for function prologues.
13755         (final_end_function): Use target structure for function epilogues.
13756         * fold-const.c (real_hex_to_f): Constify s and p.
13757         * output.h (default_function_pro_epilogue): New.
13758         * real.h (real_hex_to_f): Update prototype.
13759         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
13760         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
13761         (TARGET_INITIALIZER): Update.
13762         * target.h (gcc_target): Add struct asm_out.
13763         * doc/tm.texi: Update.
13764
13765 config:
13766         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
13767         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
13768         in cpu/cpu.c, or rename old functions consistently.  Take
13769         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
13770         redundant macros and prototypes.  Make new functions static.
13771
13772         * 1750a/1750a.c: Similarly.
13773         * 1750a/1750a.h: Similarly.
13774         * a29k/a29k-protos.h: Similarly.
13775         * a29k/a29k.c: Similarly.
13776         * a29k/a29k.h: Similarly.
13777         * arc/arc-protos.h: Similarly.
13778         * arc/arc.c: Similarly.
13779         * arc/arc.h: Similarly.
13780         * arm/arm-protos.h: Similarly.
13781         * arm/arm.c: Similarly.
13782         * arm/arm.h: Similarly.
13783         * avr/avr-protos.h: Similarly.
13784         * avr/avr.c: Similarly.
13785         * avr/avr.h: Similarly.
13786         * clipper/clipper-protos.h: Similarly.
13787         * clipper/clipper.c: Similarly.
13788         * clipper/clipper.h: Similarly.
13789         * convex/convex.c: Similarly.
13790         * convex/convex.h: Similarly.
13791         * d30v/d30v-protos.h: Similarly.
13792         * d30v/d30v.c: Similarly.
13793         * d30v/d30v.h: Similarly.
13794         * d30v/d30v.md: Similarly.
13795         * dsp16xx/dsp16xx-protos.h: Similarly.
13796         * dsp16xx/dsp16xx.c: Similarly.
13797         * dsp16xx/dsp16xx.h: Similarly.
13798         * elxsi/elxsi.c: Similarly.
13799         * elxsi/elxsi.h: Similarly.
13800         * fr30/fr30.c: Similarly.
13801         * fr30/fr30.md: Similarly.
13802         * h8300/h8300-protos.h: Similarly.
13803         * h8300/h8300.c: Similarly.
13804         * h8300/h8300.h: Similarly.
13805         * i370/i370-protos.h: Similarly.
13806         * i370/i370.c: Similarly.
13807         * i370/i370.h: Similarly.
13808         * i386/i386.c: Similarly.
13809         * i386/osf1elf.h: Similarly.
13810         * i386/osfrose.h: Similarly.
13811         * i860/i860-protos.h: Similarly.
13812         * i860/i860.c: Similarly.
13813         * i860/i860.h: Similarly.
13814         * i960/i960-protos.h: Similarly.
13815         * i960/i960.c: Similarly.
13816         * i960/i960.h: Similarly.
13817         * ia64/ia64-protos.h: Similarly.
13818         * ia64/ia64.c: Similarly.
13819         * ia64/ia64.h: Similarly.
13820         * m32r/m32r-protos.h: Similarly.
13821         * m32r/m32r.c: Similarly.
13822         * m32r/m32r.h: Similarly.
13823         * m68hc11/m68hc11-protos.h: Similarly.
13824         * m68hc11/m68hc11.c: Similarly.
13825         * m68hc11/m68hc11.h: Similarly.
13826         * m68k/crds.h: Similarly.
13827         * m68k/dpx2.h: Similarly.
13828         * m68k/m68k-protos.h: Similarly.
13829         * m68k/m68k.c: Similarly.
13830         * m68k/m68k.h: Similarly.
13831         * m68k/news.h: Similarly.
13832         * m88k/m88k-protos.h: Similarly.
13833         * m88k/m88k.c: Similarly.
13834         * m88k/m88k.h: Similarly.
13835         * mips/mips-protos.h: Similarly.
13836         * mips/mips.c: Similarly.
13837         * mips/mips.h: Similarly.
13838         * ns32k/merlin.h: Similarly.
13839         * ns32k/ns32k.c: Similarly.
13840         * ns32k/ns32k.h: Similarly.
13841         * ns32k/tek6000.h: Similarly.
13842         * pa/pa-protos.h: Similarly.
13843         * pa/pa.c: Similarly.
13844         * pa/pa.h: Similarly.
13845         * pdp11/2bsd.h: Similarly.
13846         * pdp11/pdp11-protos.h: Similarly.
13847         * pdp11/pdp11.c: Similarly.
13848         * pdp11/pdp11.h: Similarly.
13849         * romp/romp-protos.h: Similarly.
13850         * romp/romp.c: Similarly.
13851         * romp/romp.h: Similarly.
13852         * rs6000/rs6000-protos.h: Similarly.
13853         * rs6000/rs6000.c: Similarly.
13854         * rs6000/rs6000.h: Similarly.
13855         * rs6000/sysv4.h: Similarly.
13856         * sh/sh-protos.h: Similarly.
13857         * sh/sh.c: Similarly.
13858         * sh/sh.h: Similarly.
13859         * sparc/sparc-protos.h: Similarly.
13860         * sparc/sparc.c: Similarly.
13861         * sparc/sparc.h: Similarly.
13862         * vax/vax.c: Similarly.
13863         * vax/vax.h: Similarly.
13864         * vax/vms.h: Similarly.
13865         * we32k/we32k.c: Similarly.
13866         * we32k/we32k.h: Similarly.
13867
13868 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
13869
13870         * basic-block.h (first_insn_after_basic_block_note): Declare.
13871         * flow.c (first_insn_after_basic_block_note): Define.  Moved
13872         from...
13873         * ssa.c (first_insn_after_basic_block_note): Remove.
13874         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
13875         necessary.
13876         (ssa_eliminate_dead_code): Properly update the CFG and PHI
13877         nodes when we find a dead conditional branch.  Insert BARRIERs
13878         after any blocks with no successors, but which do not have
13879         any BARRIERs.
13880
13881 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
13882
13883         * varray.c (varray_check_failed): Use internal_error.
13884
13885 2001-07-05  Andrew Haley  <aph@redhat.com>
13886
13887         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
13888         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
13889         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
13890
13891 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
13892
13893         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
13894         reference if the target constant is also a SYMBOL_REF.
13895
13896 2001-07-05  Eric Christopher  <echristo@redhat.com>
13897
13898         * config/mips/mips.h (MASK_MIPS3900): Remove.
13899         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
13900         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
13901         (TARGET_MIPS3900): Change to use mips_arch.
13902         (TARGET_MIPS4000): New.
13903         (TARGET_MIPS4100): New.
13904         (TARGET_MIPS4300): New.
13905         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
13906         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
13907         for -mipsX.
13908         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
13909         (ISA_HAS_BRANCHLIKELY): To here.
13910         (CC1_CPU_SPEC):  New.
13911         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
13912         (mips_arch_string): Declare.
13913         (mips_arch): Declare.
13914         (TARGET_OPTIONS): Add -march and -mtune.
13915
13916         * config/mips/mips.c (mips_arch_string): New.
13917         (mips_arch): New.
13918         (override_options): Handle -march for codegen and -mtune
13919         for scheduling. Use mips_arch. Move tx39 target default here.
13920         (mips_parse_cpu): Move error message to override_options.
13921
13922         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
13923
13924         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
13925
13926         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
13927         (MIPS Options): Ditto.  Change mcpu entry to historical text.
13928
13929 2001-07-05  H.J. Lu  (hjl@gnu.org)
13930
13931         * config/mips/mips.c (mips_parse_cpu): New function to parse
13932         -march=*/-mcpu=*.
13933
13934 2001-07-05  Jim Wilson  <wilson@redhat.com>
13935
13936         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
13937         * config/ia64/t-ia64: Likewise.
13938         (LIB1ASMFUNCS): Update comment.
13939
13940 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
13941
13942         * doc/install.texi (Install GCC: Binaries): Fix typo.
13943
13944 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13945
13946         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
13947         reference using the stack pointer, adjust it since we push Y
13948         temporarily.
13949         ("*ashrsi3"): Likewise.
13950         ("*lshrsi3"): Likewise.
13951
13952 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13953
13954         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
13955         when -fomit-frame-pointer is used.
13956
13957 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
13958
13959         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
13960         (try_redirect_by_replacing_jump): Reverse updating properly the
13961         count and frequency information.  Reverse removing cc0 setter.
13962         (forwarder_block_p): Reverse fixing for fallthru blocks.
13963
13964 2001-07-05  DJ Delorie  <dj@redhat.com>
13965
13966         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
13967         (translate_options): If the above is defined, use it to map
13968         given options to new options.
13969         * doc/tm.texi: Document it.
13970
13971 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
13972             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13973
13974         * doc/invoke.texi (Optimize Options): Document that -fgcse may
13975         cause programs using computed gotos to run more slowly.
13976
13977 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13978
13979         * doc/install.texi (Specific): Markup, spelling and typo fixes.
13980         Fixed sorting.
13981         Consistently require binutils 2.11.2, not prereleases.
13982         (Specific, decstation-*): Canonicalize as mips-dec-*.
13983         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
13984         always necessary.
13985         (Specific, m68k-altos): Removed reference to README.altos, deleted.
13986         (Specific, mips-*): Reword MIPS C compiler requirements.
13987         (Specific, powerpc*-*-*): New, mention --with-cpu once.
13988         (Specific, sunv5): Removed, obsolete.
13989
13990 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
13991
13992         * dwarf2out.c (output_loc_list): Use an all ones mask for
13993         .text asm output and don't rely on long long
13994         literals. Reformat some long lines.
13995
13996 2001-07-05  Andreas Jaeger  <aj@suse.de>
13997
13998         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
13999         section.
14000
14001 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14002
14003         * dwarf2out.c (dwarf2out_define): Update comment.
14004         (dwarf2out_undef): Ditto.
14005         (dwarf2out_start_source_file): Ditto.
14006         (dwarf2out_end_source_file): Ditto.
14007         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
14008         since we never call the start/end debug hook for the primary file.
14009
14010 2001-07-04  Kazu Hirata  <kazu@hxi.com>
14011
14012         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
14013         from shll.
14014
14015 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
14016
14017         * cppinit.c (remove_dup_dirs): Inform if a system include
14018         directory is being reordered.
14019         * doc/invoke.texi (Directory Options): GCC warns if you hide a
14020         system include.
14021         * doc/cpp.texi (Search Paths): Likewise.
14022         * doc/gcc.texi (Interoperation): Remove information about
14023         -I/usr/include.
14024
14025 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
14026
14027         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
14028         (VARRAY_TOP_CHAR_PTR): Likewise.
14029
14030 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14031
14032         * gcc.c (process_command): Don't assign elements of a const char*.
14033
14034 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14035
14036         * emit-rtl.c (change_address): Don't abort if invalid address while
14037         reload is in progress.
14038
14039 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14040
14041         * c-lex.c (cb_file_change): Pass line number to
14042         debug_start_source_file.
14043         (cb_undefine): Pass correct line number to debug_undef.
14044
14045         * toplev.c (debug_start_source_file): Add line number to
14046         parameters. Pass it along to dwarf2out_start_source_file.
14047         (decode_g_option): Stop resetting debug level back to normal when
14048         we change debug formats, unless the current level is
14049         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
14050         3).
14051
14052         * toplev.h (debug_start_source_file): Add line number to
14053         parameters.
14054
14055         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
14056         parameters.
14057
14058         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
14059         parameters.
14060         Output debug_macinfo data for starting file if requested.
14061         (dwarf2out_end_source_file): Output debug_macinfo data for ending
14062         file if requested.
14063         (dwarf2out_define): Output debug_macinfo data for defining a macro
14064         if requested.
14065         (dwarf2out_undef): Output debug_macinfo data for undefining a
14066         macro if requested.
14067         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
14068         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
14069         (macinfo_section_label): New. DWARF2 macro info section label.
14070         (dwarf2out_init): If we want macro info, output the start label
14071         for the section.
14072         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
14073         attribute to the compilation unit die pointing to the macro info.
14074
14075 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
14076
14077         * dwarf2out.c (new_loc_list): Move to inside #ifdef
14078         DWARF2_DEBUGGING_INFO.
14079         (add_loc_descr_to_loc_list): Ditto.
14080         (output_loc_list): Ditto.
14081         Also, fix thinko in curr not being initialized.
14082         (gen_internal_sym): Ditto.
14083
14084 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14085
14086         * emit-rtl.c (replace_equiv_address): New function.
14087         * expr.h (replace_equiv_address): New declaration.
14088         * explow.c (validize_mem): Call it instead of change_address and
14089         also call if -fforce-addr and address is constant.
14090         * expr.c: Replace more calls to change_address with adjust_address
14091         and/or replace_equiv_address or to validize_mem.
14092         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
14093         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
14094         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
14095         * config/i370/i370.md, config/i860/i860.md: Likewise.
14096         * config/i960/i960.md, config/mips/mips.c: Likewise.
14097         * config/mips/mips.md, config/pa/pa.md: Likewise.
14098         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
14099         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
14100
14101 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14102
14103         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
14104
14105         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
14106         function.
14107
14108 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
14109
14110         * doc/include: New directory.
14111         * doc/fdl.texi: Move to doc/include/fdl.texi.
14112         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
14113         * doc/include/funding.texi, doc/include/gpl.texi: New files.
14114         * doc/gcc.texi: Use funding.texi and gpl.texi.
14115         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
14116         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
14117         Update dependencies and use -I $(docdir)/include.
14118
14119 2001-07-04  Anthony Green  <green@redhat.com>
14120
14121         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
14122
14123 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14124
14125         * doc/install.texi (sparc64-*-*): Remove garbage.
14126
14127 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
14128
14129         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
14130         Fix typo in last change to use adjust_address.
14131
14132 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14133
14134         * doc/install.texi (Specific): Update information for *-*-solaris*.
14135
14136 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14137
14138         * explow.c (plus_constant_wide): Reinitialize Y for restart.
14139
14140 2001-07-03  Stan Shebs  <shebs@apple.com>
14141
14142         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
14143         case for flag_no_mach_text_sections.
14144         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
14145         * config/darwin.c (flag_no_mach_text_sections): Remove.
14146         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
14147
14148 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14149
14150         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
14151         and avoid checking for constant as first operand.
14152         * recog.c (find_constant_term_loc): No longer static.
14153         (adj_offettable_operand): Delete.
14154         * rtl.h (adj_offsettable_operand): Delete declaration.
14155         (find_constant_term): Add declaration.
14156         * caller-save.c: Replace calls to adj_offsettable_operand with calls
14157         to adjust_address.
14158         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
14159         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
14160         * config/i386/i386.c, config/i386/i386.md: Likewise.
14161         * config/i860/i860.c, config/i960/i960.c: Likewise.
14162         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
14163         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
14164         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
14165         * config/mips/mips.c, config/mips/mips.md: Likewise.
14166         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
14167         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
14168         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
14169         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
14170         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
14171         * config/ns32k/ns32k.md: Likewise.
14172
14173 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
14174
14175         * rtl.c (copy_rtx): Handle 'T' format letter.
14176         * gensupport.c (collect_insn_data): Likewise.
14177         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
14178
14179 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
14180
14181         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
14182         -B option.  Use 'dir' not 'foo' as example directory name.
14183
14184 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14185
14186         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
14187         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
14188
14189 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
14190
14191         * doc/cppinternals.texi: Improve formatting and logical markup.
14192
14193 2001-07-03  Andreas Jaeger  <aj@suse.de>
14194
14195         * Makefile.in (insn-recog.o): Add dependency on reload.h.
14196
14197         * genrecog.c (write_header): Include reload.h for prototypes in
14198         insn-recog.c.
14199
14200 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14201
14202 config:
14203         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
14204         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
14205         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
14206         i386_pe_valid_type_attribute_p): Add.
14207         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
14208         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
14209
14210 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14211
14212         * explow.c (plus_constant_wide, case LO_SUM): New case.
14213         (plus_constant_for_output_wide): Delete.
14214         * rtl.h (plus_constant_for_output): Delete.
14215         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
14216         instead of plus_constant_for_output.
14217         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
14218         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
14219         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
14220         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
14221         * config/sparc/sparc.md: Likewise.
14222         Convert some change_address calls to adjust_address.
14223
14224 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
14225
14226         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
14227         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
14228         documentation of -std and -Wwrite-strings.
14229
14230 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
14231
14232         * cse.c (canon_hash): Don't register registers in very small
14233         register classes, as extending their lifetime might cause
14234         reload to fail.
14235
14236 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
14237
14238         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
14239
14240         * flow.c (forwarder_block_p): Fix for fallthru blocks.
14241         (try_redirect_by_replacing_jump): Update properly the count
14242         and frequency information.
14243
14244 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
14245
14246         * toplev.c (dump_file_index): Move SSA dumps just after first
14247         jump dump.
14248         (dump_file): Corresponding changes.
14249         (rest_of_compilation): Move SSA path to just after the first
14250         jump pass.
14251         * doc/gcc.texi (Passes): Update due to movement of SSA path.
14252         * doc/invoke.texi: Update dump file #s as they were completely
14253         out of date with reality.
14254
14255 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
14256
14257         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
14258
14259         * expr.c (emit_move_insn_1): Deal with non-default
14260         STACK_PUSH_CODE.
14261
14262         * expr.c (emit_single_push_insn): Fix warning.
14263
14264 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
14265
14266         * expr.c (emit_move_insn_1): Avoid modifying
14267         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
14268
14269 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14270
14271         * emit-rtl.c (adjust_address): New function.
14272         * expr.h (adjust_address): Add declaration.
14273         * builtins.c: Replace some calls to change_address with calls to it
14274         or to validize_mem.
14275         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
14276         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
14277         * config/arm/arm.c, config/convex/convex.c: Likewise.
14278         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
14279         * config/i386/i386.c, config/i386/i386.md: Likewise.
14280         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
14281         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
14282         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
14283         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
14284         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
14285
14286 2001-07-02  Jim Wilson  <wilson@redhat.com>
14287
14288         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
14289
14290 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
14291
14292         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
14293         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
14294
14295 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
14296
14297         * cppinit.c (lang_defaults): New table.
14298         (set_lang): Just read from lang_defaults into the live options
14299         structure.
14300
14301 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
14302
14303         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
14304         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
14305         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
14306
14307 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14308
14309         * doc/install.texi: Various spelling and markup fixes.
14310         (Installing GCC): Component specific installation instructions are
14311         gone.
14312         Fix reference.
14313         Warn about removing old install dir in the presence of shared libs.
14314         (Configuration): Invoke with options target to match configure
14315         --help.
14316         Consistently refer to gas, gld pathnames.
14317         Invert --enable-multilib documentation.
14318         Remove references to old compiler versions.
14319
14320 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14321
14322         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
14323
14324 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14325
14326         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
14327         section.
14328         (Specific, mips*-sgi-irix5): Note IDO download.
14329         Reworded MIPS C hints.
14330         Use GNU as instead of GAS.
14331         Markup fixes.
14332         Removed SGI Freeware reference, IRIX 6 only.
14333         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
14334         Note N64 library requirement/workaround.
14335         Update O32 hints.
14336         Complete list of structure passing bug victims.
14337
14338 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14339
14340         * doc/install.texi: Remove CVS Id.
14341
14342 2001-07-02  Andreas Jaeger  <aj@suse.de>
14343
14344         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
14345         (find_inherently_necessary): Remove unused variable.
14346
14347 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
14348
14349         * c-common.h (TDI_inlined): New ast dump phase.
14350         (dump_flag_name): New function.
14351         * c-dump.c (dump_files): Add inlined phase.
14352         (dump_flag_name): Define.
14353         * doc/invoke.texi (-fdump-ast-inlined): Document.
14354
14355 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14356
14357         * stor-layout.c (layout_decl): Revert change to handling of alignment
14358         in packed types.
14359
14360 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14361
14362         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
14363         for FIELD_DECL.
14364
14365 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
14366
14367         * doc/tm.texi (FUNCTION_ARG): Document that the last call
14368         is special.
14369
14370 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
14371
14372         * tlink.c (recompile_files): Remove COMPILER_PATH and
14373         LIBRARY_PATH from the environment.
14374
14375 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
14376
14377         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
14378         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
14379         enumerators.
14380         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
14381
14382         * c-parse.in (OBJC_STRING): Kill.
14383         (objc_string): Decompose to [objc_string] '@' STRING.
14384         (reswords): Take the leading '@' off all the Objective C keywords.
14385         (objc_rid_sans_at): Kill.
14386         (init_reswords): Don't initialize it.
14387         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
14388         (_yylex): Kill reconsider label.  Look ahead one token after
14389         an '@'; if we get an identifier, check whether it's an
14390         Objective C @-keyword.  If so, return the keyword.  Otherwise,
14391         put back the token and return the '@' as a terminal.
14392
14393         * cpplib.c (lex_macro_node): Remove unnecessary check for
14394         leading '@' on identifier.  Clarify control flow and commentary.
14395
14396 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14397
14398         * cse.c (new_label_ref): Variable deleted.
14399         (insert): Remove set of new_label_ref.
14400         (check_for_label_ref): New function.
14401         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
14402
14403 See ChangeLog.5 for earlier changes.