OSDN Git Service

* cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-11-07  Neil Booth  <neilb@earthling.net>
2
3        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
4
5 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6
7         * c-common.c (combine_strings): Only warn about long strings for C.
8
9 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
10
11         * combine.c (distribute_notes): Fix typo in last change.
12
13 2000-11-07  Geoff Keating  <geoffk@redhat.com>
14
15         * config/rs6000/rs6000.md (movdi_internal32+1): Use
16         operand_subreg_force rather than gen_rtx_SUBREG.
17         (movdi_internal32+2): Likewise.
18
19 2000-11-07  Philip Blundell  <philb@gnu.org>
20
21         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
22         * config/arm/linux-aout.h: Likewise.
23         * configure: Regenerate.
24
25 2000-11-07  Philipp Thomas  <pthomas@suse.de>
26
27         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
28         accepted my the gettext maintainer.
29
30 2000-11-07  DJ Delorie  <dj@redhat.com>
31
32         * testsuite/gcc.dg/20000614-1.c: Add return so that test can pass.
33
34 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
35
36         * builtins.c (expand_builtin_strpbrk): New function.
37         (expand_builtin): Handle BUILT_IN_STRPBRK.
38
39         * builtins.def (BUILT_IN_STRPBRK): New entry.
40
41         * c-common.c (c_common_nodes_and_builtins): Declare builtin
42         strpbrk.
43
44 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
45
46         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
47         * POTFILES.in: Add config/alpha/freebsd.h
48         * configure.in: Add alpha*-freebsd support.
49         * configure: Regenerate.
50
51 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
52
53         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
54         copy of ptr_type_node rather than ptr_type_node itself.
55
56 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
57
58         * combine.c (recog_for_combine): Allocate uninitialized vector with
59         rtvec_alloc.
60         * recog.c (apply_change_group): Likewise.
61
62 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
63
64         * flow.c (verify_local_live_at_start): Back out last change.
65         * combine.c (distribute_notes): When parts of a hard reg are
66         neither set nor referenced in PLACE, search backwards for a
67         place to put a REG_UNUSED note; if none found, ask for flow
68         info refresh.
69
70 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
71
72         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
73         with (clobber (match_scratch...)).
74
75 2000-11-06  Neil Booth  <neilb@earthling.net>
76
77         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
78         error status.
79
80 2000-11-06  Neil Booth  <neilb@earthling.net>
81
82         * tradcpp.c (special_symbol): Assign an null string rather
83         than writing to an unallocated buffer.
84
85 2000-11-06  Neil Booth  <neilb@earthling.net>
86
87         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
88         CPP_MACRO_ARG case.
89
90 2000-11-06  Neil Booth  <neilb@earthling.net>
91
92         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
93         tok.val.arg_no as appropriate.
94         * cppexp.c (lex): Similarly.
95         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
96         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
97         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
98         cpp_macro_definition): Similarly.
99         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
100
101 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
102
103         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
104         operands[1] is constant, calculate the sum and generate movdi.
105         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
106         (subsi3): Use SImode in call to arith_4096_operand.
107
108 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
109
110         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
111         adjust %o1, not %o0 if the return type is large structure.
112
113 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
114
115         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
116         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
117
118 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
119
120         * expmed.c (expand_divmod): For signed divide by 2, prefer
121         a branch and fewer shifts if branches are very cheap.
122
123 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
124
125         * Makefile.in: Remove all targets related to building
126         distributions and diffs, or INSTALL.
127         * INSTALL, install1.texi: Remove.
128         * configure.in: Remove mention of distdir.
129         * configure: Regenerate.
130         * objc/Make-lang.in: Remove mention of distdir.
131
132 2000-11-04  Neil Booth  <neilb@earthling.net>
133
134         * cpp.texi: Update for _Pragma.
135
136 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
137
138         * gcc.texi (Contributing): Update URL for projects web page.
139
140 2000-11-04  Neil Booth  <neilb@earthling.net>
141
142         * cpplex.c (parse_string): Don't allow multiline strings in
143         #include family directives.
144
145 2000-11-04  Neil Booth  <neilb@earthling.net>
146
147         * cpplib.c (do_line): Only warn pedantically if not reading
148         preprocessed input.
149
150 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
151
152         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
153         RETURN_POPS_ARGS().
154
155 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
156
157         * builtins.c (expand_builtin_strlen): Remove unused mode
158         argument.
159         * gcc.c (process_command): Remove unused variable.
160         * fold-const.c: Include expr.h.
161         * recog.c: Include reload.h.
162         * Makefile.in (recog.o, fold-const.o): Update deps.
163
164 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
165
166         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
167
168 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
169
170         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
171         handling.
172         (STARTFILE_SPEC): Likewise.
173         (LINK_SPEC): Likewise.
174
175 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
176
177         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
178         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
179         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
180
181 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
182
183         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
184         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
185         perm_calloc, get_identifier, maybe_get_identifier,
186         real_value_from_int_cst, simple_cst_equal), varasm.c
187         (assemble_name, assemble_real, immed_real_const_1,
188         compare_constant_1, decode_rtx_const, output_constant_pool): Use
189         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
190         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
191         bzero ().
192
193 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
194
195         * cppfiles.c (open_file): If already read, then don't reopen.
196         Immediately close an empty file.
197
198 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
199
200         * expr.h (fold_builtin): Move declaration...
201         * tree.h (fold_builtin): ... here.
202
203 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
204
205         * flow.c (verify_local_live_at_start): Allow hard regs to die.
206
207 2000-11-02  Neil Booth  <neilb@earthling.net>
208
209 config:
210         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
211         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
212         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
213         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
214         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
215         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
216         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
217         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
218         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
219         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
220         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
221         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
222         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
223         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
224         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
225         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
226         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
227         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
228         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
229         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
230         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
231         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
232         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
233         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
234         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
235         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
236         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
237         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
238         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
239         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
240         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
241         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
242         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
243         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
244         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
245         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
246         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
247         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
248         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
249         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
250         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
251         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
252         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
253         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
254         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
255         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
256         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
257         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
258         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
259         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
260         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
261         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
262         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
263         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
264         vax/vaxv.h, vax/vms.h, we32k/we32k.h
265         
266         Replace -A() with -A=, the new assertion syntax.
267
268 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
269
270         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
271         elim_i1.
272         In REG_DEAD handling: When handling parts of multi-hard-reg hard
273         registers, increment the loop counter by the size of the parts;
274         use recursion to handle individual parts.
275
276 2000-11-02  Neil Booth  <neilb@earthling.net>
277
278         * configure.in: Make integrated CPP the default.
279         * configure: Regenerate.
280
281 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
282
283         * reload.c (find_equiv_reg): Test all hard registers for membership
284         in the requested class.
285
286 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
287
288         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
289         process_command, main), gcov.c (open_files, output_data), tlink.c
290         (frob_extension, scan_linker_output), toplev.c
291         (file_name_nondirectory): Use strchr () and strrchr () instead of
292         index () and rindex ().
293
294 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
295
296         * c-common.c (get_flag_spec, check_format_info_main,
297         check_format_types): Use strchr () instead of index ().  Compare
298         against error_mark_node instead of comparing the TREE_CODE against
299         ERROR_MARK.
300
301 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
302
303         Integrated CPP.
304           
305         * c-lex.c (init_c_lex): Update cpp_start_read call.
306         (cb_ident): Update for new callback prototype.
307         (cb_def_pragma): Update for new cpp_get_token prototype.
308         (c_lex): Similarly.  Use cpp_get_line.
309           
310         * c-parse.in (finish_parse): Update for new cpp_finish
311         prototype.
312           
313         * cp/lex.c (finish_parse): Similarly.
314
315 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
316
317         * machmode.def: Add V16QImode.
318
319 2000-11-01  Richard Henderson  <rth@redhat.com>
320
321         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
322         from rtl_for_decl_location.
323         (add_location_or_const_value_attribute): Likewise.
324
325 2000-11-01  Neil Booth  <neilb@earthling.net>
326
327         * cpplib.c (run_directive): Use correct line number for output
328         of _Pragma.  Remember any in-progress directive. 
329   
330         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
331
332 2000-11-01  Richard Henderson  <rth@redhat.com>
333
334         * stmt.c (expand_start_null_loop): Set continue_label.
335
336 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
337
338         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
339         (expand_builtin_constant_p): Move parts of the code into
340         fold_builtin_constant_p.
341         (expand_builtin_strlen): Move parts of the code into fold_builtin.
342         * expr.h (fold_builtin): Declare.
343         * fold-const.c (fold): Handle builtin calls.
344
345         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
346
347 2000-11-01  Richard Henderson  <rth@redhat.com>
348
349         * stmt.c (expand_start_null_loop): New.
350         (expand_end_null_loop): New.    
351         * c-semantics.c (genrtl_do_stmt): Use them.
352         * tree.h: Declare them.
353
354 2000-11-01  Richard Henderson  <rth@redhat.com>
355
356         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
357
358 2000-11-01  Neil Booth  <neilb@earthling.net>
359
360         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
361         * cp/spew.c: Similarly.
362         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
363         * cppmacro.c (stringify_arg): Similarly.
364         * cpplib.h (CPP_BACKSLASH): Delete.
365
366 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
367
368         * builtins.c (expand_builtin_strstr): New function.
369         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
370
371         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
372
373         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
374         and builtin strchr.
375
376 2000-10-31  Richard Henderson  <rth@redhat.com>
377
378         * config/i386/i386.c (fcmov_comparison_operator): Check for
379         CCFPmode or CCFPUmode instead of CCmode.
380         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
381         unordered operations as well.
382
383 2000-10-31  Richard Henderson  <rth@redhat.com>
384
385         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
386         of integer_zero_node.
387
388 2000-10-31  Richard Henderson  <rth@redhat.com>
389
390         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
391
392 2000-10-31  Nick Clifton  <nickc@redhat.com>
393
394         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
395         -fdata-sections to override the section attribute of a DECL.
396
397 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
398
399         * libgcc2.c (__shtab): Remove __shtab variable.
400         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
401         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
402         members.
403
404 2000-10-31  Jim Wilson  <wilson@redhat.com>
405
406         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
407         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
408         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
409         instead of ASM_OUTPUT_INTERNAL_LABEL.
410         (dwarf2out_end_block, dwarf2out_label): Likewise.
411         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
412         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
413         
414 2000-10-31  Richard Henderson  <rth@redhat.com>
415
416         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
417         (size_of_locs): Set it.
418         (output_loc_operands): Use it to compute branch displacement.
419         (int_loc_descriptor): New.
420         (mem_loc_descriptor): Dereference memory in the proper size.
421         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
422         (loc_descriptor_from_tree): New.
423         (rtl_for_decl_location): Break out from ...
424         (add_location_or_const_value_attribute): ... here.
425         (add_bound_info): Use loc_descriptor_from_tree.
426
427 2000-10-31  Neil Booth  <neilb@earthling.net>
428
429         * cpp.texi: Update for new command line assertion syntax.
430         * cpplib.c (cpp_define): Simplify a bit.
431         (cpp_assert, cpp_unassert): Use handle_assertion.
432         (handle_assertion): New function; accept new command line
433         syntax with '='.
434         * testsuite/gcc.dg/cpp/assert3.c: New tests.
435
436 2000-10-31  Neil Booth  <neilb@earthling.net>
437
438         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
439         undefined.  Remove #ifdef check.
440         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
441         Define STDC_0_IN_SYSTEM_HEADERS to 1.
442
443 2000-10-31  Jan Hubicka  <jh@suse.cz>
444             Jakub Jelinek  <jakub@redhat.com>
445
446         * config/i386/i386.h: Clarify CCNOmode description in comment.
447         (EXTRA_CC_MODES): Remove CCRCmode.
448         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
449         (put_condition_code, ix86_match_ccmode): Likewise.
450         (ix86_cc_mode): Likewise.  Fix comment.
451         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
452         * config/i386/i386.md: Add unspec 12 description.
453         (adddi3 split): Use unspec 12 instead of CCRCmode.
454         (addsi3_carry_rc): Remove.
455         (addsi3_cc, addqi3_cc): New patterns.
456         (addsi_3): Swap operands, match CCZmode.
457         (addsi_4): Rewritten.
458         (addsi_5): Renamed from addsi_6.
459         (addsi_6): Removed.
460         (addhi_3): Swap operands, match CCZmode.
461         (addhi_4): Rewritten.
462         (addhi_5): Renamed from addhi_6.
463         (addhi_6): Removed.
464         (addqi_3): Swap operands, match CCZmode.
465         (addqi_4): Rewritten.
466         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
467         (subsi3_carry_rc): Removed.
468         (iorqi_3): Use =q constraint for clobber.
469         (xorqi_cc_2): Likewise.
470         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
471         (x86_movsicc_0_m1_rc): Removed.
472         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
473
474 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
475
476         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
477         and decrement of complex types.
478
479 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
480
481         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
482         builtin fputs, ensure we still evaluate the stream in case it
483         has side-effects.
484
485 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
486
487         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
488         to expand_shift.
489
490 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
491
492         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
493         (fp_extended_operand, emit_fpscr_use): Likewise.
494         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
495         (fpul_operand): New function.
496         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
497         fp_extended_operand.  Add fpul_operand.
498         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
499         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
500         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
501         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
502         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
503         (divdf3_i): Likewise.
504         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
505         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
506         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
507         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
508         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
509
510 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
511
512         * config/i386/i386.c (ix86_init_builtins): Correct return type
513         building v4hi_ftype_v4hi_int_int tree node.
514         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
515         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
516
517         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
518         for operand 1.
519         (mmx__uavgv8qi3): Correct insn mnemonic.
520         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
521         (mmx_punpckhwd): Correct insn mnemonic.
522         (mmx_punpckhdq): Likewise.
523         (mmx_punpcklwd): Likewise.
524         (mmx_punpckldq): Likewise.
525         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
526         Renumber case labels to match the _mm_prefetch constants defined in
527         xmmintrin.h.
528
529         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
530         if the splitter didn't emit new insns.
531         Make sure we call cleanup_subreg_operands even when splitting the last
532         insn in a basic block.
533
534         * invoke.texi (Debugging Options): Describe -do.
535         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
536         (dump_file): Likewise.
537         (rest_of_compilation): Split .greg dump into .greg and .postreload.
538
539 2000-10-30  Neil Booth  <neilb@earthling.net>
540
541         * cppfiles.c (stack_include_file): Check for stacked contexts
542         here.
543         * cpphash.h (_cpp_do__Pragma): New prototype.
544         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
545
546         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
547         escaped newlines if !(buffer->from_stage3).
548         (_cpp_lex_token): Warn about missing newlines iff
549         !buffer->from_stage3.
550
551         * cpplib.c (get__Pragma_string, destringize,
552         _cpp_do__Pragma): New functions.
553         (run_directive): Set output_line for _Pragma to avoid line
554         markers in output.  Set from_stage3 and prevent macro expansion
555         for _Pragma and command-line options.  Check buffer exhaustion.
556         (cpp_push_buffer): Don't check for stacked macro contexts, as
557         this is perfectly legitimate for _Pragma.  Move the check to
558         stack_include_file instead. Set from_stage3 iff buffer is
559         preprocessed input.
560
561         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
562         unsigned. New boolean from_stage3.
563         (struct spec_nodes): Add n__Pragma.
564
565         * cppmacro.c (enter_macro_context): Flip sense of return value.
566         (_cpp_get_token): Handle _Pragma operator.
567
568 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
569
570         * gcc.texi:  The C++ standard isn't "draft" anymore.
571
572 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
573
574         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
575
576 2000-10-29  Neil Booth  <neilb@earthling.net>
577
578         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
579
580 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
581
582         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
583         fixinc/inclhack.def: Change comments mentioning C9X to refer to
584         C99 instead.
585
586         * invoke.texi: Document that -V will only work for very similar
587         versions of driver and compiler.
588
589 2000-10-29  Neil Booth  <neilb@earthling.net>
590
591         * cppmacro.c (_cpp_create_definition): Optimize the case of
592         a macro defined to itself.
593
594 2000-10-29  Neil Booth  <neilb@earthling.net>
595
596         * cpplex.c (save_comment): Don't store new lines in C++ comments.
597
598 2000-10-29  Michael Hayes  <mhayes@redhat.com>
599
600         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
601
602 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
603
604         * cpphash.c (cpp_forall_identifiers): Add context variable
605         for callback routine.
606         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
607         change.
608         (main): Call cpp_forall_identifiers with null context.
609         * cpplib.h (cpp_forall_identifiers): Update prototype.
610
611         * cppmain.c: Make `parse_in' and `print' static.
612
613 2000-10-28  Alan Modra <alan@linuxcare.com.au>
614
615         * c-decl.c (finish_function): Clear c_function_name_declared_p.
616
617 2000-10-28  Richard Henderson  <rth@redhat.com>
618
619         * regrename.c (scan_rtx_address): Frob action, not class,
620         when trying to disable optimization.
621
622 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
623
624         * c-semantics.c (make_rtl_for_local_static): Don't clobber
625         DECL_ASSEMBLER_NAME.
626
627 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
628
629         * configure.in: Determine and substitute gcc_version_full.
630         * configure: Regenerate.
631         * gccbug.in: Use it to give full version.  Don't allow
632         confidential PRs.
633
634 2000-10-28  Richard Henderson  <rth@redhat.com>
635
636         * recog.c (split_all_insns): Run cleanup_subreg_operands
637         after reload.
638
639         * regrename.c (regrename_optimize): Verify that all registers of
640         a multiple register mode are available.
641         (scan_rtx_address): Accept the mode of the address; all callers
642         changed.
643
644         * cpplib.c (run_directive): Fix prototype.
645
646 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
647
648         * reload.c (find_reloads): Distinguish "wins" so that we know whether
649         a given operand won because of a matching constraint or not; then use
650         that information to compute goal_alternative_matched properly.
651         * reload1.c (choose_reload_regs): Never set reload_override_in for an
652         optional reload.
653
654         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
655         accurate value for MULT.
656         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
657         2% or > 98% before using static branch prediction bits.
658
659 2000-10-28  Neil Booth  <neilb@earthling.net>
660
661         New macro expander.
662         
663         * cpplib.c (struct answer): New.
664         (struct if_stack): Use cpp_lexer_pos rather than line and col.
665         Rename cmacro mi_cmacro.
666         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
667         IN_I): New directive and flags.
668         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
669         parse_answer, parse_assertion, find_answer): New functions.
670         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
671         (lex_macro_node): New function to replace parse_ifdef and
672         get_define_node.
673
674         (_cpp_handle_directive): New function, combines _cpp_check_directive
675         and _cpp_check_linemarker.
676
677         (do_define, do_undef, parse_include, do_include, do_import,
678         do_include_next, read_line_number, do_line, do_ident, do_pragma,
679         do_pragma_once, do_pragma_poison, do_pragma_dependency):
680         Update for new token getting interface.
681
682         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
683         : Update for new multiple-include optimisation technique.
684         (do_elif): Don't forget to invalidate controlling macros.
685
686         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
687         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
688         Functions to handle assertions with the new token interface.
689         (do_assert, do_unassert): Use them.
690
691         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
692         Use run_directive.
693
694         (_cpp_init_stacks): Register directive names.  Don't register special
695         nodes.
696
697         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
698         new position recording regime.
699         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
700         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
701         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
702         (cpp_type2name): Move to cpplex.c.
703
704         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
705         (parse_defined): Update to handle new multiple include optimisation
706         method.  Remove poisoned identifier warning.
707         (parse_assertion, TYPE_NAME): Delete.
708         (lex): Update for multiple include optimisation, removal of
709         CPP_DEFINED, to use _cpp_test_assertion for assertions and
710         cpp_token_as_text.
711         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
712         (op_as_text): New function, to wrap cpp_token_as_text.
713
714         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
715         Update for MI optimisation.
716         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
717         segfault on diagnostic.
718         (_cpp_compare_file_date): Take a token rather than 3 args.
719         (cpp_read_file): Work correctly for zero-length files.
720
721         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
722         _cpp_init_hashtable and _cpp_cleanup_hashtable.
723         (cpp_lookup): Place identifiers at front of identifier pool
724         for _cpp_lookup_with_hash.
725         (_cpp_lookup_with_hash): Require identifiers to be at the front of
726         the identifier pool.  Commit the memory if not already in the
727         hash table.
728
729         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
730         Initialise various members of cpp_reader, memory pools, and the
731         special nodes.
732         (cpp_printer_init): Delete.
733         (cpp_cleanup): Update.
734         (struct builtin, builtin_array, initialize_builtins): Update for new
735         hashnode definition and builtin handling.
736         (cpp_start_read, cpp_finish): Don't take or initialise a
737         printer.  Update.
738
739         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
740         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
741         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
742         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
743         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
744         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
745         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
746         struct toklist, struct cpp_context, struct specnodes,
747         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
748         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
749         enum builtin_type, cpp_can_paste): New.
750         (struct cpp_token): Delete line and col members.
751         (struct cpp_buffer): New member output_lineno.
752         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
753         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
754         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
755         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
756         base_context, context, directive, mi_state, mi_if_not_defined,
757         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
758         mlstring_pos, macro_buffer, macro_buffer_len.
759         Delete members mls_line, mls_column, token_list, potential_control_macro,
760         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
761         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
762         save_parameter_spellings, need_newline, .
763         Change type of date, time and spec_nodes members.
764         Change prototypes for include and ident callbacks.
765         (struct cpp_hashnode): Change type of name.  Remove union members
766         expansion and code.  Add members macro, operator and builtin.
767
768         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
769         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
770         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
771         cpp_stop_lookahead): New prototypes.
772         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
773
774         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
775         Move from cpphash.h.
776
777         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
778         ufputs): Move to cpplib.h.
779         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
780         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
781         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
782         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
783         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
784         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
785         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
786         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
787         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
788         _cpp_parse_assertion, _cpp_find_answer): Delete.
789         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
790         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
791         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
792         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
793         _cpp_handle_directive, DSC): New.
794         (struct include_file): New member defined.
795
796         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
797         _cpp_compare_file_date): Update.
798         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
799         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
800         _cpp_cleanup_hashtable.
801
802         * Makefile.in: Remove cppoutput.c.
803         
804         * cppoutput.c: Delete
805
806         * fixheader.c (read_scan_file): Update for new cpp_get_token
807         prototype.
808         (recognized_function): New argument LINE.
809
810         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
811         new cpp_get_token prototype.
812
813         * scan.h (recognized_function): Update prototype.
814
815         * po/POTFILES.in: Remove cppoutput.c.
816         
817 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
818
819         * c-typeck.c (check_init_type_bitfields): Remove.
820         (constructor_incremental): Likewise.
821         (struct constructor_stack): Remove incremental bit.
822         (struct initializer_stack): Likewise.
823         (start_init): Don't play with constructor_incremental.
824         (finish_init): Likewise.
825         (really_start_incremental_init): Likewise.
826         (push_init_level): Likewise.
827         (pop_init_level): Likewise.
828         (output_init_level): Likewise.
829         (output_pending_init_elements): Likewise.
830
831 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
832
833         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
834         Improve error messages.  Correct parsing of 
835         #pragma pack(pop [,id]).  Do not check the user-supplied
836         alignment if we're popping.
837
838         * gcc.dg/pack-test-1.c: New test case.
839         * gcc.dg/pack-test-2.c: New test case.
840         * gcc.dg/pack-test-1.h: New file.
841
842 2000-10-27  Neil Booth  <neilb@earthling.net>
843
844         * cpp.texi: Update.
845
846 2000-10-27  Kelley Cook <kelley.cook@home.com>
847
848         * invoke.texi: Document -mintel-syntax
849
850 2000-10-27  Richard Henderson  <rth@redhat.com>
851
852         * invoke.texi: Document -frename-registers.  Add it to -O3.
853         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
854         (enum dump_file_index, dump_file): Update order.
855         (main): Set flag_rename_registers at -O3.
856
857 2000-10-27  Richard Henderson  <rth@redhat.com>
858
859         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
860         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
861         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
862         * config/alpha/alpha.md (call_osf_1): Use it.
863         (call_value_osf_1): Likewise.
864
865         * config/ia64/ia64.c: Revert 10-23 patch.
866         (ia64_hard_regno_rename_ok): New.
867         * config/ia64/ia64-protos.h: Declare it.
868         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
869
870 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
871             Richard Henderson  <rth@redhat.com>
872
873         * regrename.c: Rewrite to handle multi-register modes and
874         cond_exec instructions.
875         * Makefile.in (regrename.o): Update dependancies.
876         * recog.h (struct operand_alternative): Add is_address.
877         * recog.c (preprocess_constraints) [case 'p']: Set it.
878
879 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
880
881         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
882         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
883         top level.  Kill oldstyle_subdirs.  Do not include
884         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
885         $outputs.  Do not run configure.lang from config.status.
886         Rearrange warning-flag logic to correspond to what the
887         makefile wants.  Put special vax stage1 options in
888         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
889         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
890         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
891         switch is given, nothing otherwise.
892         * configure.lang: Delete.
893
894         * Makefile.in: Expunge all traces of extra_c_objs,
895         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
896         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
897         warning options via a three level scheme so that -pedantic and
898         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
899         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
900         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
901         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
902         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
903         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
904         generation rules.  Wrap all rules that change the current
905         directory in parentheses; pmake doesn't spawn a new shell for
906         each command.  Expunge all references to $(P).  When one
907         command depends on another and they're run all at once, use &&
908         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
909         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
910         and beyond.
911
912         * objc/Make-lang.in: Wrap all rules that change the current
913         directory in parentheses.  Expunge all references to $(P).
914         When one command depends on another and they're run all at
915         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
916         all object-file generation rules.  Delete obsolete variables.
917         * objc/Makefile.in: Delete.
918
919 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
920
921         * calls.c (expand_call): If sibcall_failure is set during pass 1,
922         clear tail_call_insns as well.
923
924 2000-10-27  Nick Clifton  <nickc@redhat.com>
925
926         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
927         prototype.
928
929 2000-10-26  Richard Henderson  <rth@redhat.com>
930
931         * calls.c (expand_call): Supress sibcall if we have a
932         BLKmode return in registers.
933
934 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
935
936         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
937         into memory.
938
939 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
940
941         * tree.c (make_node, case 't'): Set alignment to that of
942         char_type_node.
943         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
944
945 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
946
947         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
948         * configure.in (enable-libstdcxx-v3): Arrange to have
949         HAVE_LIBSTDCXX_V3 substituted into the output files.
950
951 2000-10-25  Richard Henderson  <rth@redhat.com>
952
953         * recog.c (constrain_operands): Initialize which_alternative
954         before no alternatives early exit.
955
956         * cse.c (find_comparison_args): Check that we can reverse a
957         comparison if needed before accepting the substitution.
958
959         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
960
961         * simplify-rtx.c (simplify_relational_operation): Sign extend
962         low words before sign extending to high words.
963
964 2000-10-25  Nick Clifton  <nickc@redhat.com>
965
966         * config/mcore/mcore.c: Include config.h before system.h.
967
968 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
969
970         * config/mcore/mcore.md (return): Force function epilogue to
971         always be generated to work around epilogue suppression bug in
972         M*Core backend.
973
974 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
975
976         * c-decl.c (grokdeclarator): Move warning for qualified void
977         return types with -pedantic to when the function type is
978         constructed.  At -W, warn in general for qualified function return
979         types, except for volatile void.
980         * invoke.texi: Document this new warning at -W.
981
982 2000-10-25  Neil Booth  <neilb@earthling.net>
983
984         * cpp.texi: Update with implementation-defined behavior and
985         internal limits.
986
987 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
988
989         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
990         incomplete type force it into alias set 0.
991
992 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
993
994         * alias.c: Include basic-block.h.
995         (loop_p): New function.
996         (mark_constant_function): Use it.
997         * Makefile.in (alias.o): Update dependencies.
998
999 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
1000
1001         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
1002         like memory.
1003
1004 2000-10-24  Jim Wilson  <wilson@cygnus.com>
1005
1006         * expmed.c (store_bit_field): Move integer pun code down after
1007         code that calls emit_move_insn for entire register move.
1008         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
1009         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
1010
1011 2000-10-24  Richard Henderson  <rth@cygnus.com>
1012
1013         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
1014         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
1015
1016 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
1017
1018         * gcse.c (cprop_insn): do not propagate constants into jump_insn
1019         for machines with CC0 more than once.
1020
1021 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
1022
1023         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
1024         pseudos just like memory.
1025
1026 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
1027
1028         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
1029         when deleting libcall sequence collapsed to a single instruction.
1030
1031 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
1032
1033         * expr.c (do_store_flag): Don't crash if either side of a
1034         comparison is error_mark_node.
1035
1036 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
1037
1038         * sibcall.c (purge_mem_unchanging_flag): New function.
1039         (optimize_sibling_and_tail_recursive_calls): Call it.
1040
1041 2000-10-24  Philipp Thomas  <pthomas@suse.de>
1042
1043         * Makefile.in (check-po): New target for doing checks in the po
1044         subdir if all languages configured.
1045         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
1046         configure if NLS is enabled.
1047         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
1048         otherwise leave empty.
1049         * configure: Regenerate.
1050
1051 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
1052
1053         * i386.c (print_operand): Handle new 'A' formatting code.
1054         387 opcodes need suffixes even with -mintel-syntax.
1055         Check for explicit size override (codes 'b', 'w' and 'k').
1056         (print_operand_address): Check if register prefix is needed when
1057         emitting `ds' segment override.
1058         * i386.h: Add comment about new 'A' formatting code.
1059         * i386.md (jump and call patterns): Emit absolute references using %A.
1060
1061 2000-10-23  Richard Henderson  <rth@cygnus.com>
1062
1063         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
1064         output registers as fixed.
1065         (ia64_function_epilogue): Undo output fixation.
1066
1067 2000-10-23  Richard Henderson  <rth@cygnus.com>
1068
1069         * config/alpha/alpha.md: Add names for all unnamed insns; use
1070         define_insn_and_split in some obvious places.
1071         (lda): Remove.
1072         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
1073         (zero_extendqisi2, zero_extendqidi2): Likewise.
1074         (zero_extendhisi2, zero_extendhidi2): Likewise.
1075         (abs splitters): Fix match_scratch operand number.
1076         (bcc_reverse): Swap pc & label instead of non-canonical compare.
1077
1078 2000-10-23  Jim Wilson  <wilson@cygnus.com>
1079
1080         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
1081         CONST_INT.
1082         * ia64.md (cmpsi_adjusted): Use %r3.
1083         (cmpdi_adjusted): Likewise.
1084
1085 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
1086
1087         * config/i386/att.h (ASM_FILE_START): Define.
1088
1089 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
1090
1091         * config/i386/linux.h (ASM_FILE_START): Define.
1092
1093 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
1094
1095         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
1096         since this (only) drags in a crt0.o reference that the .ld files
1097         also introduce.
1098
1099 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
1100
1101         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
1102         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
1103         reloads just like an RELOAD_FOR_OUTPUT would.
1104
1105         * local-alloc.c (update_equiv_regs): Add an abort().  When
1106         deleting or moving insns, update reg_equiv[regno].init_insns.
1107
1108 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
1109
1110         * c-tree.texi: Improve documentation for IF_STMTs and related
1111         conditional statements.
1112
1113 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
1114
1115         * expr.c (do_preexpand_calls): Remove.
1116         (same_from_p): Don't use CALL_EXPR_RTL.
1117         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
1118         (preexpand_calls): Remove.
1119         * tree.c (first_rtl_op): Remove CALL_EXPR case.
1120         (unsave_expr_1): Likewise.
1121         * tree.def (CALL_EXPR): Give it only two slots.
1122         * tree.h (CALL_EXPR_RTL): Remove.
1123
1124 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
1125
1126         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
1127         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
1128         New functions.
1129
1130 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
1131
1132         * calls.c (combine_pending_stack_adjustment_and_call): Don't
1133         adjust stack when unadjusted_alignment ends up as zero.
1134
1135 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1136
1137         * fixinc/genfixes: Remove EGCS reference.
1138         * install.texi: Remove EGCS reference.
1139         * INSTALL: Regenerate.
1140
1141 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
1142
1143         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
1144
1145 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1146
1147         * diagnostic.c: Remove EGCS reference in comment.
1148
1149 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1150
1151         * loop.c (strength_reduce): Fix error in last change.
1152
1153 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
1154
1155         * Makefile.in (SHLIB_NM_FLAGS): New.
1156         (libgcc.mk): Pass it.
1157         * mklibgcc.in (libgcc.map): Use it.
1158
1159         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
1160         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
1161
1162 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1163
1164         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
1165
1166         * sparc.c (load_pic_register): Delete unused varaible.
1167
1168         * libgcc2.c (__addvsi3): Delete unused variable.
1169
1170         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
1171         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
1172         __negvdi2): Prototype.
1173
1174         * ssa.c (apply_delayed_renames): Avoid undefined operation.
1175
1176         * toplev.c (display_target_options): Make static to match
1177         prototype.  Delete empty declaration.
1178
1179 2000-10-20  Tom Tromey  <tromey@cygnus.com>
1180
1181         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
1182         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
1183
1184 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1185
1186         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
1187         returned MEM.
1188         (expand_expr_unaligned, case ARRAY_REF): Check that index is
1189         a constant before comparing it; use tree_low_cst.
1190         * tree.c (save_expr): Set TREE_READONLY.
1191         (substitute_expr): Return inside of NON_LVALUE_EXPR.
1192         (build, build1): Set TREE_READONLY if all operands are.
1193         (build_index_type): If upper bound is a negative number, lower
1194         bound is zero and sizetype is unsigned, use upper bound of one and
1195         lower of zero.
1196
1197 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
1198
1199         * gcc.c (process_command, main): Use "because" instead of
1200         "since" in error messages.
1201
1202 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1203
1204         * stor-layout.c (compute_record_mode): Use tree_low_cst.
1205         Don't use mode of field for record unless sizes are the same.
1206         (layout_type, case ARRAY_TYPE): Remove special bounds handling
1207         previously added for Ada; also change to using host_integerp
1208         and tree_low_cst.
1209
1210         * loop.c (strength_reduce): Show when new register made for
1211         giv is known to be a pointer and its aligment if so and known.
1212         (loop_dump_aux): Show VERBOSE parameter unused.
1213
1214         * gcse.c (set_hash_table_size): Now unsigned.
1215         * sdbout.c (template_name_p): Add "const" to avoid warnings.
1216         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
1217         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
1218         (sdbout_end_epilogue): Remove variable NAME.
1219         * system.h (getopt): Add default definition.
1220         * config/alpha/alpha.c (print_operand): Don't continue processing
1221         after issuing error.
1222         (summarize_insn): Avoid use of UL in constant.
1223
1224         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
1225
1226         * fold-const.c (force_fit_type): Unsigned values can overflow
1227         if they are sizetype.
1228         (int_const_binop): Don't use cache if overflows.
1229
1230 2000-10-20  Richard Henderson  <rth@cygnus.com>
1231
1232         * function.c (locate_and_pad_parm): Zero alignment_pad.
1233
1234         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
1235         perform substitutions, and apply_change_group to see if it worked.
1236
1237 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1238
1239         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
1240
1241         * combine.c (struct undo): Change int to unsigned int.
1242         (do_SUBST_INT): Args are unsigned int.
1243         (make_extraction, force_to_mode): Use proper type when forming mask.
1244         (make_field_assignment): Likewise.
1245
1246 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1247
1248         * c-common.c (check_format_info_recurse): Extract string constant
1249         initializers from non-volatile constant arrays and check them as
1250         formats.
1251         * c-typeck.c (decl_constant_value): Don't check pedantic or check
1252         for DECL_MODE (decl) != BLKmode.
1253         (decl_constant_value_for_broken_optimization): New function which
1254         includes these checks.
1255         (default_conversion, convert_for_assignment, digest_init): Use
1256         decl_constant_value_for_broken_optimization instead of
1257         decl_constant_value.
1258
1259 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
1260
1261         * tree.h (DECL_ALIGN_UNIT): New macro.
1262
1263 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
1264
1265         * config/avr/avr-protos.h (avr_output_bld): New.
1266         (out_shift_with_cnt): Add t_len argument.
1267         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
1268         (output_movqi, output_movhi, output_movsisf): Optimize loading
1269         any constant with exactly one bit set to NO_LD_REGS.
1270         (out_shift_with_cnt): Optimize output code for size or speed,
1271         depending on optimize_size.  Handle small shift counts as well
1272         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
1273         with or without a scratch register, with help of __tmp_reg__
1274         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
1275         length of TEMPLATE in words, return total insn length in *LEN.
1276         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
1277         out_shift_with_cnt to work with the above change.
1278         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
1279         lshrsi3_out): Likewise.  Optimize more known shift count cases.
1280         Remove cases already well optimized in out_shift_with_cnt.
1281         (avr_output_bld): New function.
1282         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
1283         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
1284         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
1285         Add reload_completed to insn condition - only for peepholes.
1286         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
1287         in a register or memory.
1288         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
1289         Do not require a scratch register.
1290         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
1291         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
1292         Optimize shifts by known count using a scratch register, but only
1293         if one is still available after register allocation.
1294
1295 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1296
1297         * t-vax: New file.  Don't build modules from libgcc1.c.
1298
1299 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
1300
1301         * alias.c: (mark_constant_function): Don't check pure functions.
1302         Initialize and end alias analysis.
1303         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
1304         Don't make a special exception for recursion.  Handle
1305         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
1306         unless it's volatile.
1307
1308         * local-alloc.c (equivalence): New structure.
1309         (reg_equiv): Define.
1310         (contains_replace_regs): Remove array and use
1311         field in reg_equiv.
1312         (memref_referenced_p): Likewise.
1313         (no_equiv): Likewise.
1314         (update_equiv_regs): Likewise.
1315
1316         (equiv_init_varies_p,
1317         equiv_init_movable_p): New functions.
1318         (update_equiv_regs): Use them.  Use rtx_varies_p
1319         instead of function_invariant_p.  Process insns
1320         from end to beginning.  Allow a REG_EQUIV insn
1321         within the same loop as a use to be moved, also
1322         allow it to be moved out of a loop.  Update
1323         REG_DEAD notes when substituting into an insn.
1324
1325 2000-10-19  Jim Wilson  <wilson@cygnus.com>
1326
1327         * c-decl.c (start_decl): Check for error_mark_node type before using
1328         COMPLETE_TYPE_P.
1329         (finish_decl): Likewise.  Don't give an error if decl type is
1330         already error_mark_node.
1331
1332         * haifa-sched.c (compute_trg_info): Add explanatory comments.
1333         New local update_blocks.  Use update_blocks to remove duplicates
1334         when computing update blocks.  Check for bblst_table overflow.
1335         (schedule_block): Add explanatory comment.  Reduce bblst_size by
1336         factor of 2.
1337         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
1338         notes.
1339
1340 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1341
1342         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
1343
1344 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1345
1346         * expmed.c: Minor corrections in comments.
1347         * invoke.texi: Added desciption for the new option -ftrapv.
1348
1349 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1350
1351         * libgcc2.c: Added the missing #endif.
1352
1353 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1354
1355         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
1356
1357 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
1358
1359         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
1360         Use smulv_optab for -ftrapv.
1361         (expand_mult_highpart): Use unsigned multiply.
1362         (expand_divmod): Special-case division by -1.
1363         For EXACT_DIV_EXPR, do right shift first, then the multiply.
1364         For complex divide, use abs with unsigned result.
1365         * expr.c (force_operand): Use unsigned multiply.
1366         (expand_expr): Use overflow-trapping optabs for signed types if
1367         flag_trapv.
1368         If flag_trapv, don't generate a recursive call with EXPAND_SUM
1369         if the type is signed and the original call wasn't EXPAND_SUM or
1370         EXPAND_INITIALIZER.
1371         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
1372         (negv_optab, absv_optab): Declare.
1373         * flags.h (flag_trapv): Declare.
1374         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
1375         smulv_optab, sdivv_optab, negv_optab and absv_optab.
1376         (gen_insn): Interpret '$P' as requiring an integer mode,
1377         including partial integer modes.
1378         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
1379         (product_cheap_p): Use unsigned expand_mult.
1380         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
1381         (negv_optab, absv_optab): Define.
1382         (expand_binop): Use overflow-trapping optabs for signed types if
1383         flag_trapv.
1384         Handle negv_optab libe neg_optab.
1385         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
1386         Use overflow-trapping optabs for signed result if flag_trapv.
1387         (expand_complex_abs): Use overflow-trapping optabs for signed types if
1388         flag_trapv.
1389         Don't open-code complex absolute-value operation for flag_trapv.
1390         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
1391         sdivv_optab, negv_optab and absv_optab.
1392         * toplev.c (flag_trapv): Define.
1393         (lang_independent_options f_options): Include flag_trapv.
1394         * tree.h (TYPE_TRAP_SIGNED): Define.
1395         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
1396         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
1397         New functions.
1398         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
1399         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
1400
1401 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
1402             David V. Henkel-Wallace  <gumby@cygnus.com>
1403
1404         * config/i386/t-netware: Bring in from the Red Hat tree.
1405         * config/i386/netware.h: Likewise.
1406         * config/netware.h: Likewise.
1407         * config/rs6000/netware.h: Delete.
1408         * configure.in: Add i[34567]86-*-netware.
1409         * configure: Hand-edit to match configure.in change.
1410
1411 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
1412
1413         * c-common.h (flag_no_builtin): Declare.
1414         (flag_no_nonansi_builtin): Likewise.
1415         (c_common_nodes_and_builtins): Change prototype.
1416         * c-common.c (flag_no_builtin): New variable.
1417         (flag_no_nonansi_builtin): Likewise.
1418         (c_common_nodes_and_builtins): Remove parameters.  Adjust
1419         accordingly.
1420         * c-decl.c (flag_no_builtin): Remove.
1421         (flag_no_nonansi_builtin): Likewise.
1422         (init_decl_processing): Adjust call to
1423         c_common_nodes_and_builtins.
1424
1425 2000-10-18  Marc Espie <espie@openbsd.org>
1426
1427         * tm.texi (LIBGCC_SPEC): Synch with reality.
1428
1429 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1430
1431         * c-common.c (check_format_types): Check for writing through a
1432         NULL pointer argument.
1433
1434 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
1435
1436         * tm.texi (Exception Region Output): Document
1437         DWARF_CIE_DATA_ALIGNMENT.
1438         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
1439         #ifndef.
1440         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
1441         DWARF_CIE_DATA_ALIGNMENT.
1442
1443 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
1444
1445         * basic-block.h (struct loop): Delete fields pre_header_root
1446         and pre_header_trace and replace with pre_header_edges
1447         and num_pre_header_edges.
1448         * flow.c (flow_loop_dump): Dump pre_header_edges.
1449         (flow_loops_free): Free pre_header_edges.
1450         (flow_loop_pre_header_scan): Calculate pre_header_edges.
1451
1452 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1453
1454         * contrib.texi: Update references to steering committee members
1455         and Jeff Law's entry.
1456
1457 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1458
1459         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
1460         (maybe_read_dollar_number, check_format_info_main): Use them for
1461         pedantic warning messages.
1462
1463 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1464
1465         * c-common.c (check_format_info_main): Minor cleanup: move
1466         variables into inner scopes; initialize declarations where
1467         appropriate; don't hardcode "scanf" name on warning for zero
1468         width.
1469
1470 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
1471
1472         * c-common.c (back_end_hook): New variable.
1473         * c-common.h (back_end_hook): Declare it.
1474         * c-lang.c (finish_file): Use it.
1475
1476         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
1477         earlier.
1478
1479 2000-10-18  Jan Hubicka  <jh@suse.cz>
1480
1481         * i386.c (ix86_comparison_operator, put_condition_code,
1482         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
1483         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
1484         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
1485         * i386.md (adddi and negdi splitter): Use CCRCmode.
1486         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
1487         (subsi3_carry): add '*'
1488         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
1489         (cmp to add peep2): Use CCRCmode; swap operands.
1490
1491 2000-10-18  Kazu Hirata  <kazu@hxi.com>
1492
1493         * h8300.c: Fix a comment typo.
1494         (round_frame_size): New.
1495         (compute_saved_regs): Likewise.
1496         (push): Likewise.
1497         (pop): Likewise.
1498         (push_order): Remove.
1499         (pop_order): Likewise.
1500         (function_prologue): Rearrange code for readability.
1501         (function_epilogue): Likewise.
1502
1503         * config/h8300/h8300.md: Remove an unnecessary sign_extend
1504         expander that is used when not optimizing.  Output a tab after
1505         each assembly insns.
1506
1507         * reorg.c: Fix formatting.
1508
1509 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
1510
1511         * reload1.c (move2add_note_store): Check for simple
1512         auto-inc in destination.
1513
1514 2000-10-17  Michael Chastain  <chastain@redhat.com>
1515
1516         * config/i386/i386-aout.h: define INT_ASM_OP.
1517
1518 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
1519
1520         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
1521
1522 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
1523
1524         * i370.md: Fix spelling typo.
1525
1526 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1527
1528         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
1529         Fixes execute/20001017-1.c on powerpc-linux-gnu.
1530
1531         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
1532         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
1533         LABEL_REF.
1534
1535         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
1536         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
1537         here...
1538         * rs6000/aix.h: ...to here.
1539         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
1540
1541 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
1542
1543         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
1544
1545         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
1546         sure linker can relax even the delay slot mov %g1,%o7, fix output
1547         formating.
1548
1549 2000-10-17  Kazu Hirata  <kazu@hxi.com>
1550
1551         * config/h8300/h8300.md: Remove an unnecessary zero_extend
1552         expander that is used when not optimizing.  Output a tab after
1553         each assembly insns.
1554
1555 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
1556
1557         * gcc.c: New options --target-help.
1558         (process_command): Added code to parse this new option.
1559         * toplev.c (display_target_options): New function to support the
1560         above new option.
1561         * cppinit.c (new_pending_directive) : New option OPT_target__help.
1562         (cpp_handle_option): Support this new option.
1563         * invoke.texi: Added notes about --target-help option.
1564
1565 2000-10-17  Graham Stott  <grahams@redhat.com>
1566
1567         * config/i386/i386.md (testqi_1): Add missing operand prefix
1568         for operand 0.
1569         * config/i386/i386-protos.h: Add missing prototype.
1570
1571 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
1572
1573         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
1574         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
1575         using -mintel-syntax.
1576
1577 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1578
1579         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
1580         (format_types): Use it for printf.
1581         (maybe_read_dollar_number): Add parameter for the kind of format
1582         involved.  Warn for multiple use for arguments if this is
1583         inappropriate for the kind of format involved.
1584         (check_format_info_main): Update calls to maybe_read_dollar_number.
1585
1586 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1587
1588         * inclhack.def (hpux_maxint): Also apply fix to values.h.
1589         * fixincl.x: Rebuilt.
1590
1591 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
1592
1593         * genrecog.c (write_switch): Return the first condition that needs a
1594         label.
1595
1596 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
1597
1598         * c-tree.h (warn_sequence_point): Move declaration to...
1599         * c-common.h (warn_sequence_point): ... here.
1600         * c-decl.c (warn_sequence_point): Move definition to...
1601         * c-common.c (warn_sequence_point): ... here.
1602         (struct reverse_tree): New.
1603         (reverse_list, reverse_max_depth): New static variables.
1604         (build_reverse_tree, common_ancestor, modify_ok
1605         verify_sequence_points): New functions.
1606         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
1607         * c-typeck.c (check_modify_expr): Delete.
1608         (build_modify_expr): Don't call it.
1609
1610 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1611
1612         * c-common.h (warn_missing_format_attribute): New variable.
1613         * c-decl.c (warn_missing_format_attribute): New variable.
1614         (c_decode_option): Decode -Wmissing-format-attribute and
1615         -Wno-missing-format-attribute.
1616         * c-common.c (check_function_format): If
1617         -Wmissing-format-attribute, give a warning where a vprintf or
1618         vscanf function is called by a function without its own printf or
1619         scanf attribute.
1620         * toplev.c (documented_lang_options): Add
1621         -Wmissing-format-attribute.
1622         * invoke.texi: Document -Wmissing-format-attribute.
1623
1624 2000-10-17  Marc Espie <espie@openbsd.org>
1625
1626         * invoke.texi (-shared): Insist on requiring code generation flags
1627         to be used along with -shared, and document the subtle failure that
1628         may occur otherwise.
1629
1630 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1631
1632         * pa.md (return_internal): Move `use' after `return'.
1633
1634 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1635
1636         * machmode.def: Correct comment.
1637
1638 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
1639
1640         * print-rtl.c (print_rtx_head): Constify.
1641         * rtl.h (print_rtx_head): Similarly.
1642
1643         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
1644         Constify char * return value.
1645         * config/pa/pa/pa.c
1646         (output_64bit_and, output_64bit_ior): Constify char * return value.
1647         (pa_can_combine_p): Make static.
1648         (function_arg): Decorate unused `named' argument. Fix comment typo.
1649         (function_arg_partial_nregs): Decorate unused `named' argument.
1650
1651 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
1652
1653         * c-common.c (format_check_results): New structure.
1654         (finish_dollar_format_checking): Adjust to take a
1655         format_check_results * parameter.
1656         (check_format_info, check_format_info_recurse,
1657         check_format_info_main): Split check_format_info into three
1658         functions, the main checking going in check_format_info_main.
1659         Recurse when any reduction of the format string argument towards a
1660         string literal is done; go down both branches of a conditional
1661         expression.  Don't warn for extra format arguments or empty format
1662         strings if they only occur in some branches of a conditional
1663         expression.
1664
1665 2000-10-16  Kazu Hirata  <kazu@hxi.com>
1666
1667         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
1668
1669 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
1670
1671         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
1672
1673 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
1674
1675         * i386.md (*movsi_or): Switch operand order for intel syntax.
1676
1677 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1678
1679         * PROBLEMS: Remove.
1680
1681         * gcc.texi (Contributing): Update.
1682
1683 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
1684
1685         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
1686         appropriate assembler dialect.
1687
1688 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
1689
1690         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
1691
1692 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
1693
1694         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
1695         constants 1 and 2 to NO_LD_REGS.
1696
1697 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1698
1699         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
1700
1701         * objc/Make-lang.in (objc-parse.c): Likewise.
1702
1703 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1704
1705         * arm.c: Include obstack.h
1706         (minipool_obstack, minipool_startobj): Define.
1707         (arm_add_gc_roots): Initialize them.
1708         (create_fix_barrier): Use our new obstack.
1709         (push_minipool_barrier, push_minipool_fix): Likewise.
1710         (arm_reorg): Release obstack memory.
1711
1712 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
1713
1714         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
1715         (prologue, exception_receiver, builtin_setjmp_receiver): New
1716         patterns.
1717         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
1718         * config/sparc/sparc-protos.h (finalize_pic): Remove.
1719         (load_pic_register): New prototype.
1720         * config/sparc/sparc.c (pic_setup_code): Remove.
1721         (finalize_pic): Rename to...
1722         (load_pic_register): ...this function.
1723         Don't look for nonlocal_goto_receivers and emit pic setup code
1724         directly.  Don't check current_function_uses_pic_offset_table.
1725
1726 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1727
1728         * tree.h (struct obstack): Declare.
1729
1730 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
1731
1732         Remove obstacks.
1733         * Makefile.in (ggc-callbacks.o): Remove target.
1734         (flow.o): Depend on GGC_H.
1735         * alias.c (init_alias_analysis):
1736         Remove ggc_p conditionals.
1737         (end_alias_analysis): Likewise.
1738         * basic-block.h (init_flow): New function.
1739         (allocate_reg_life_data): Declare.
1740         * bb-reorder.c  (function_obstack): Replace with ...
1741         (flow_obstack): ... new variable.
1742         (fixup_reorder_chain): Use it.
1743         * c-decl.c (ggc_p): Remove.
1744         (caller-save.c): Don't call oballoc/obfree.
1745         * combine.c (struct
1746         undobuf): Remove storage.
1747         (try_combine): Don't call oballoc.
1748         (undo_all): Don't call obfree.
1749         * cse.c (insert): Use xmalloc, not
1750         oballoc.
1751         (cse_main): Adjust accordingly.
1752         * dwarf2out.c (save_rtx): Remove
1753         obstack code.
1754         (dwarf2out_init): Remove ggc_p conditionals.
1755         * emit-rtl.c (rtl_obstack): Remove.
1756         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
1757         (make_insn_raw): Likewise.
1758         (emit_insn_before): Likewise.
1759         (emit_insn_after): Likewise.
1760         (emit_insn): Likewise.
1761         (gen_sequence): Likewise.
1762         (copy_insn_1): Remove handling of `b' RTL components.
1763         (init_emit_once): Remove ggc_p conditionals.
1764         * except.c (create_rethrow_ref): Don't fool with obstacks.
1765         (add_partial_entry): Likewise.
1766         (call_get_eh_context): Likewise.
1767         (begin_protect_partials): Likewise.
1768         (protect_with_terminate): Likewise.
1769         * explow.c
1770         (plus_constant_wide): Likewise.
1771         * expr.c (init_expr_once):
1772         Likewise.
1773         (emit_block_move): Likewise.
1774         (clear_storage): Likewise.
1775         (expand_expr): Likewise.
1776         * flow.c (function_obstack): Remove.
1777         (flow_obstack): New variable.
1778         (flow_firstobj): Likewise.
1779         (create_base_block): Use the flow_obstack.
1780         (split_block): Likewise.
1781         (split_edge): Likewise.
1782         (calculate_global_regs_live): Likewise.
1783         (allocate_bb_life_data): Make it static.  Likewiwse.
1784         (init_flow): New function.
1785         (size_int_type_wide): Remove ggc_p conditionals.
1786         * function.c
1787         (push_function_context_to): Don't call save_tree_status.
1788         (pop_function_context_from): Or restore_tree_status.
1789         (assign_stack_local_1): Don't call push_obstacks.
1790         (find_fixup_replacement): Use xmalloc.
1791         (fixup_var_refs_insns): Free the storage.
1792         (insns_for_mem_walk): Don't mess with obstacks.
1793         (instantiate_decls): Likewise.
1794         (trampoline_address): Likewise.
1795         (expand_function_end): Likewise.
1796         * function.h (sturct function):
1797         Remove obstack-related variables.
1798         (save_tree_status): Don't declare.
1799         (restore_tree_status): Likewise.
1800         * gcse.c (compute_can_copy):
1801         Don't call oballoc/obfree.
1802         * genattrtab.c (operate_exp): Remove
1803         ggc_p conditionals.
1804         (simplify_cond): Likewise.
1805         (simplify_test_exp): Don't mess with obstacks.
1806         (optimize_attrs): Likewise.
1807         * gengenrtl.c (gendef): Don't include
1808         ggc_p conditionals.
1809         * ggc-callbacks.c (ggc_p): Remove.
1810         * ggc-none.c (ggc_p): Remove.
1811         * ggc.h (ggc_p): Don't declare.
1812         * integrate.c (save_for_inline): Don't mess with obstacks.
1813         (integrate_decl_tree): Likewise.
1814         (output_inline_function): Likewise.
1815         * lists.c
1816         (init_EXPR_INSN_LIST_cache): Likewise.
1817         * loop.c (temp_obstack):
1818         Remove.
1819         (rtl_obstack): Likewise.
1820         (init_loop): Don't mess with obstacks.
1821         (reg_address_cost): Free BIVs and GIVs.
1822         (check_insns_for_bivs): Use xmalloc, not oballoc.
1823         (find_mem_givs): Likewise.
1824         (record_biv): Likewise.
1825         (general_induction_var): Likewise.
1826         (product_cheap_p): Likewse.
1827         * optabs.c (init_one_libfunc): Remove
1828         ggc_p conditional.
1829         * print-tree.c (debug_tree): Don't use
1830         oballoc/obfree.
1831         (print_node): Likewise.
1832         * profile.c (output_func_start_profiler):
1833         Remove call to temporary_allocation.
1834         * reload1.c
1835         (eliminate_regs_in_insn): Don't mess with obstacks.
1836         * resource.c
1837         (mark_target_live_regs): Use xmalloc.
1838         (free_resource_info): Free the memory.
1839         * rtl.c (rtl_obstack):
1840         Remove.
1841         (rtvec_alloc): Don't mess with obstacks.
1842         (rtx_alloc): Likewise.
1843         (rtx_free): Remove.
1844         (copy_rtx): Don't handle `b' cases.
1845         (read_rtx): Use a local rtl_obstack.
1846         * rtl.h (oballoc): Remove.
1847         (obfree): Likewise.
1848         (pop_obstacks): Likewise.
1849         (push_obstacks): Likewise.
1850         (allocate_bb_life_data): Likewise.
1851         (allocate_reg_life_data): Likewise.
1852         (rtx_free): Likewise.
1853         * sdbout.c (sdbout_queue_anonymous_type):
1854         Use tree_cons, not saveable_tree_cons.
1855         * simplify-rtx.c
1856         (cselib_init): Don't mess with obstacks.
1857         * stmt.c
1858         (mark_block_nesting): Mark the label_chain.
1859         (epxand_label): Use ggc_alloc, not oballoc.
1860         (clear_last_expr): Don't mess with obstacks.
1861         (expand_decl_cleanup): Likewise.
1862         (expand_dcc_cleanup): Likewise.
1863         (expand_dhc_cleanup): Likewise.
1864         (expand_anon_union_decl): Likewise.
1865         (add_case_node): Use xmalloc, not oballoc.
1866         (free_case_nodes): New function.
1867         (expand_end_case): Call it.
1868         * stor-layout.c (layout_type): Don't
1869         mess with obstacks.
1870         (layout_type): Likewise.
1871         * toplev.c (wrapup_global_declarations):
1872         Likewise.
1873         (compile_file): Remove ggc_p conditionals.
1874         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
1875         (decode_f_option): Remove ggc_p conditionals.
1876         * tree.c
1877         (function_maybepermanent_obstack): Remove.
1878         (maybepermanent_obstack): Likewise.
1879         (function_obstack): Likewise.
1880         (tmeporary_obstack): Likewise.
1881         (momentary_obstack): Likewise.
1882         (temp_decl_obstack): Likewise.
1883         (saveable_obstack): Likewise.
1884         (rtl_obstack): Likewise.
1885         (current_obstack): Likewise.
1886         (expression_obstack): Likewise.
1887         (struct obstack_stack): Likewise.
1888         (obstack_stack): Likewise.
1889         (obstack_stack_obstack): Likewise.
1890         (maybepermanent_firstobj): Likewise.
1891         (temporary_firstobj): Likewise.
1892         (momentary_firstobj): Likewise.
1893         (temp_decl_firstobj): Likewise.
1894         (momentary_function_firstobj): Likewise.
1895         (all_types_permanent): Likewise.
1896         (struct momentary_level): Likewise.
1897         (momentary_stack): Likewise.
1898         (init_obstacks): Remove initialization of removed obstacks.
1899         (save_tree_status): Remove.
1900         (restore_tree_status): Likewise.
1901         (temporary_allocation): Liekwise.
1902         (end_temporary_allocation): Liekwise.
1903         (resume_temporary_allocation): Likewise.
1904         (saveable_allocation): Likewise.
1905         (push_obstacks): Likewise.
1906         (push_obstacks_nochange): Likewise.
1907         (pop_obstacks): Likewise.
1908         (allocation_temporary_p): Likewise.
1909         (permanent_allocation): Likewise.
1910         (preserve_data): Likewise.
1911         (preserve_initializer): Likewise.
1912         (rtl_in_current_obstack): Likewise.
1913         (rtl_in_saveable_obstack): Likewise.
1914         (oballoc): Likewise.
1915         (obfree): Likewise.
1916         (savealloc): Likewise.
1917         (expralloc): Likewise.
1918         (print_obstack_name): Likewise.
1919         (debug_obstack): Likewise.
1920         (object_permanent_p): Likewise.
1921         (push_momentary): Likewise.
1922         (perserve_momentary): Likewise.
1923         (clear_momentary): Likewise.
1924         (pop_momentary): Likewise.
1925         (pop_momentary_nofree): Likewise.
1926         (suspend_momentary): Likewise.
1927         (resume_momentary): Likewise.
1928         (make_node): Don't set TREE_PERMANENT.
1929         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
1930         Don't set TREE_PERMANENT.
1931         (get_identifier): Remove ggc_p conditionals.
1932         (build_string): Likewise.
1933         (make_tree_vec): Likewise.
1934         (build_decl_list): Remove.
1935         (build_expr_list): Likewise.
1936         (tree_cons): Remove ggc_p conditionals.
1937         (decl_tree_cons): Remove.
1938         (expr_tree_cons): Likewise.
1939         (perm_tree_cons): Likewise.
1940         (temp_tree_cons): Likewise.
1941         (saveable_tree_cons): Likewise.
1942         (build1): Remove ggc_p conditionals.
1943         (build_parse_node): Likewise.
1944         (build_type_attribute_variant): Don't mess with obstacks.
1945         (build_type_copy): Likewise.
1946         (type_hash_canon): Likewise.
1947         (build_pointer_type): Likewise.
1948         (build_reference_type): Likewise.
1949         (build_index_type): Likewise.
1950         (build_range_type): Likewise.
1951         (dump_tree_statistics): Don't print obstack information.
1952         * tree.h
1953         (struct tree_common): Remove permanent_flag.
1954         (TREE_PERMANENT): Remove.
1955         (TREE_SET_PERMANENT): Likewise.
1956         (TYPE_OBSTACK): Likewise.
1957         (struct tree_type): Remove obstack.
1958         (oballoc): Remove.
1959         (savealloc): Likewise.
1960         (build_decl_list): Likewise.
1961         (build_expr_list): Likewise.
1962         (perm_tree_cons): Likewise.
1963         (temp_tree_cons): Likewise.
1964         (saveable_tree_cons): Likewise.
1965         (decl_tree_cons): Likewise.
1966         (expr_tree_cons): Likewise.
1967         (suspend_momentary): Likewise.
1968         (allocation_temporary_p): Likewise.
1969         (resume_momentary): Likewise.
1970         (push_obstacks_nochange): Likewise.
1971         (permanent_allocation): Likewise.
1972         (push_momentary): Likewise.
1973         (clear_momentary): Likewise.
1974         (pop_momentary): Likewise.
1975         (end_temporary_allocation): Likewise.
1976         (pop_obstacks): Likewise.
1977         (push_obstacks): Likewise.
1978         (pop_momentary_nofree): LIkewise.
1979         (preserve_momentary): Likewise.
1980         (saveable_allocation): Likewise.
1981         (temporary_allocation): Likewise.
1982         (resume_temporary_allocation): Likewise.
1983         (perserve_initializer): Likewise.
1984         (debug_obstack): Likewise.
1985         (rtl_in_current_obstack): Likewise.
1986         (rtl_in_saveable_obstack): Likewise.
1987         (obfree): Likewise.
1988         * varasm.c (current_obstack): Remove.
1989         (saveable_obstack): Remove.
1990         (rtl_obstack): Remove.
1991         (immed_double_const): Don't mess with obstacks.
1992         (immed_real_cons): Likewise.
1993         (output_constant_def): Likewise.
1994         (init_varasm_status): Use xcalloc.
1995         (mark_pool_constant): Mark the pool constant itself.
1996         (free_varasm_status): Free memory.
1997         (decode_rtx_const): Call bzero directly, rather than expanding it
1998         inline.
1999         (record_rtx_const): Don't mess with obstacks.
2000         (force_const_mem): Likewise.
2001         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
2002         conditionals.
2003         (aof_pic_entry): Likewise.
2004         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
2005         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
2006         * config/pa/pa.c (saveable_obstack): Remove.
2007         (rtl_obstack): Likewise.
2008         (current_obstack): Likewise.
2009         (output_call): Don't mess with obstacks.
2010         (hppa_encode_label): Remove ggc_p conditionals.
2011         * config/romp/romp.c (get_symref): Don't mess with obstacks.
2012         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
2013         (rs6000_encode_section_info): Likewise.
2014         * config/sh/sh.c (get_fpscr_rtx): Likewise.
2015
2016 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
2017
2018         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
2019         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
2020         (addsi3_carry): Canonicalize.
2021         (addqi_5): Remove '*'.
2022         (sbb pattern): Canonicalize.
2023
2024         * i386.md (cmp to inc/add peep2): New.
2025
2026 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
2027
2028         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
2029         the exit block.
2030
2031 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2032
2033         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
2034         * README.TRAD, TESTS.FLUNK: Remove.
2035
2036 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2037
2038         * c-common.c (decl_attributes): Don't allow strftime formats with
2039         first_arg_num nonzero.
2040         (check_format_info): Set wanted_type and wanted_type_name to zero
2041         before they are possibly assigned and used.
2042
2043 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2044
2045         * c-common.c (scanf_flag_specs): Add flags ' and I.
2046         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
2047         or the ^ and # flags together.
2048         (scan_char_table): Handle the ' and I flags.
2049         (format_types): Add ' and I flags for scanf.
2050
2051 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2052
2053         * c-common.c (print_char_table): Use the unpromoted type for
2054         lengths "h" and "hh" with conversions dioxXu.
2055         (check_format_types): Apply the default argument promotions where
2056         the wanted type is not a pointer target.
2057
2058 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
2059             Joseph S. Myers  <jsm28@cam.ac.uk>
2060
2061         * c-typeck.c (check_modify_expr): New function.
2062         (build_modify_expr): Call it if warn_sequence_point.
2063         * c-decl.c (warn_sequence_point): New variable.
2064         (c_decode_option): Handle -Wsequence-point and
2065         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
2066         * c-tree.h (warn_sequence_point): Declare.
2067         * invoke.texi (-Wsequence-point): Document.
2068         * toplev.c (documented_lang_options): Add -Wsequence-point and
2069         -Wno-sequence-point.
2070         Original work by Michael Meeks, 16 Jun 1998.
2071
2072 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2073
2074         * tree.c (get_narrower): Don't look at precision of field if
2075         not laid out yet.
2076
2077 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
2078
2079         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
2080         declaration for data with "progmem" attribute.
2081
2082 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
2083
2084         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
2085         Correct insn length if shift count is a memory operand.
2086         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
2087         (*iorhi3_clobber): Change lo8 to hi8.
2088         (zero_extendhisi2): Change %B0 to %A1.
2089         (ashlhi3, ashrhi3): Correct insn length.
2090         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
2091         from "clobber" to "set_n" in some alternatives.
2092
2093 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
2094
2095         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
2096         remove its insn_chain structure as well.
2097
2098 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2099
2100         * dbxout.c (dbxout_source_line): Remove extra tab.
2101
2102 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
2103
2104         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
2105
2106 2000-10-09  Richard Henderson  <rth@cygnus.com>
2107
2108         * Makefile.in (LANG_LIB2FUNCS): Remove.
2109         (LIB2FUNCS): Remove _pure.
2110         (LIB2ADD): Remove LANG_LIB2FUNCS.
2111         (stage_a): Don't set LANG_LIB2FUNCS.
2112         * libgcc2.c (__terminate): Mark noreturn.
2113         (__pure_virtual): Remove.
2114         * mklibgcc.in: Remove LIB2ADD .txt processing.
2115
2116 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
2117
2118         * arm.md (push_multi): Revert unintended change.
2119
2120 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
2121
2122         * arm.c: Miscellaneous white space and comment clean-ups.  No
2123         functional change.
2124         * arm.md: Likewise.
2125
2126 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2127
2128         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
2129         STRING_CST by calling combine_strings.
2130
2131 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
2132
2133         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
2134         (thumb_output_move_mem_multiple): Support new insn format.
2135         * arm.md (movmem12b): Use SSA compatible format.
2136         (movmem8b): Likewise.
2137
2138 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
2139
2140         * arm.md (predicable): New attribute, default to "no".
2141         (all patterns): Mark as predicable if appropriate.
2142         (conditional execution splits): Split using predication format.
2143         (define_cond_exec): Define.
2144         * arm.c (arm_print_operand): handle insn predicate.
2145
2146 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2147
2148         * README.NS32K: Remove file.
2149
2150 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2151
2152         * README-bugs: Remove file.
2153
2154 2000-10-08  Philipp Thomas  <pthomas@suse.de>
2155         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
2156         for test.
2157         * configure: Rebuilt.
2158
2159 2000-10-08  Philipp Thomas  <pthomas@suse.de>
2160         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
2161         disable catalog building if no suitable program was found.
2162         Move warning message from here
2163         (AM_GNU_GETTEXT): To here.
2164         * configure: Rebuilt.
2165
2166 2000-10-08  Philipp Thomas  <pthomas@suse.de>
2167         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
2168         different cache variables.
2169         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
2170         uses different cache variables.
2171         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
2172         * configure: Regenerated.
2173
2174 2000-10-08  Richard Henderson  <rth@cygnus.com>
2175
2176         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
2177         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
2178         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
2179         Use SHLIB_EXT.
2180
2181         * config/t-linux (SHLIB_EXT): New.
2182         (SHLIB_LINK): Use the entire build command, with substitutions.
2183         (SHLIB_LIBS): Remove.
2184         * config/alpha/t-osf4: Likewise.
2185         * config/mips/t-iris6: Likewise.
2186         * config/sparc/t-sol2: Likewise, but move shlib stuff...
2187         * config/sparc/t-slibgcc-sld: ...here.
2188         * config/sparc/t-slibgcc: New file.
2189
2190 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2191
2192         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
2193         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
2194         CTI_UINTMAX_TYPE.
2195         (intmax_type_node, uintmax_type_node): Define.
2196         * c-common.c (decl_attributes): If pedantic, warn if `mode'
2197         attributes create a type wider than intmax_t.
2198         (T_IM, T_UIM): Define properly.
2199         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
2200         defined.
2201         (init_decl_processing): Initialize intmax_type_node and
2202         uintmax_type_node.
2203         * c-lex.c (lex_number): When pedantic and warning for integer
2204         constants that are too large, in C99 mode warn for those that have
2205         a type wider than long long.
2206
2207 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2208
2209         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
2210         FMT_FLAG_FANCY_PERCENT_OK): Define.
2211         (format_char_info): Add flag "4" to comment.
2212         (format_flag_spec, format_flag_pair): New structures.
2213         (format_kind_info): Add additional fields to control format
2214         checking.
2215         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
2216         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
2217         arrays.
2218         (time_char_table): Use "4" flag to handle %Ey.
2219         (format_types): Add entries for new fields.
2220         (get_flag_spec): New function.
2221         (check_format_info): Increase size of flag_chars[] to 256.
2222         Control format checking using the new fields of a format_kind_info
2223         and the new tables; remove all conditionals on printf_format_type,
2224         scanf_format_type or strftime_format_type.  Handle all details of
2225         bad combinations of flags (including width, precision and strftime
2226         modifiers) through data rather than ad hoc code.  Handle all
2227         details of standard versions in which flags appeared through
2228         data.  Use the "4" flag.
2229
2230 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
2231
2232         * config/h8300/h8300.md: Remove the memory alternative and correct
2233         the insn lengths in the templates for sign extention and zero
2234         extention.
2235
2236 2000-10-07  Richard Henderson  <rth@cygnus.com>
2237
2238         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
2239         * flow.c (make_edges): Revert last change.
2240
2241         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
2242         TREE_THIS_VOLATILE.
2243         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
2244
2245 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
2246
2247         * config/alpha/elf.h: Standardize the formatting.
2248
2249 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
2250
2251         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
2252         #undef.
2253
2254 2000-10-06  Richard Henderson  <rth@cygnus.com>
2255
2256         * function.c (diddle_return_value): Examine
2257         current_function_return_rtx instead of the DECL_RESULT.
2258         (expand_function_end): Handle reloading DECL_RESULT from memory
2259         into a hard register.  Query promote_mode for sign of mismatched
2260         modes.
2261
2262 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2263
2264         * haifa-sched.c (schedule_insns): Fix typo in freeing
2265         forward_dependency_cache.
2266
2267 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
2268
2269         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
2270         `TARGET_SH2' as a condition.
2271
2272 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2273
2274         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
2275         forward_dependency_cache): New variables.
2276         (add_dependence, remove_dependence): Use anti_dependency_cache and
2277         output_dependency_cache.
2278         (compute_block_forward_dependences): Use forward_dependency_cache.
2279         (schedule_insns): Allocate and free memory for anti/output/forward
2280         dependencies caches.
2281
2282 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
2283
2284         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
2285         `! TARGET_SH1'.  Reindent.
2286
2287 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2288
2289         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
2290         Move functions from here ...
2291
2292         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
2293         ... to here.
2294         (c_expand_builtin): New function.
2295         (init_function_format_info): Don't set `check_function_format_ptr'.
2296         (c_common_nodes_and_builtins): Set built_in_class type for
2297         printf/__builtin_printf to BUILT_IN_FRONTEND.
2298         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
2299
2300         * c-common.h (build_function_call): Declare.
2301
2302         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
2303         to `lang_expand_expr' rather than `expand_builtin'.
2304
2305         * tree.c (check_function_format_ptr): Delete.
2306
2307         * tree.h (check_function_format_ptr): Likewise.
2308
2309 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
2310
2311         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
2312         DW_OP_bregx when cfa->reg > 31.
2313
2314         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
2315         break.
2316
2317 2000-10-05  Richard Henderson  <rth@cygnus.com>
2318
2319         * c-decl.c (warn_missing_noreturn): Remove.
2320         (c_expand_body): Don't set or check can_reach_end.
2321         * c-tree.h (warn_missing_noreturn): Move ...
2322         * flags.h: ... here.
2323         (can_reach_end): Remove.
2324         * flow.c (check_function_return_warnings): New.
2325         (make_edges): No edge to exit for noreturn sibcalls.
2326         * function.c (expand_function_end): Save the return value
2327         clobber instruction.
2328         (mark_function_status): Mark it.
2329         * function.h (struct function): Add x_clobber_return_insn.
2330         * jump.c (can_reach_end): Remove.
2331         (calculate_can_reach_end): Remove.
2332         (jump_optimize_1): Don't call it.
2333         * output.h (check_function_return_warnings): Declare.
2334         * toplev.c (warn_missing_noreturn): Move from c-decl.c
2335         (rest_of_compilation): Call check_function_return_warnings.
2336
2337 2000-10-05  Richard Henderson  <rth@cygnus.com>
2338
2339         * Makefile.in (NM_FOR_TARGET): New.
2340         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
2341         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
2342         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
2343         shared library build on that and EXTRA_MULTILIB_PARTS.
2344         * mkmap-flat.awk: New file.
2345         * mkmap-symver.awk: New file.
2346         * libgcc-std.ver: New file.
2347         * config/libgcc-glibc.ver: New file.
2348         * config/ia64/libgcc-ia64.ver: New file.
2349         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2350         (SHLIB_LINK): Add --version-script.
2351         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
2352         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2353         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2354         (SHLIB_LINK): Add -M.
2355
2356 2000-10-05  Richard Henderson  <rth@cygnus.com>
2357
2358         * Makefile.in (LIB2FUNCS): Add _clz.
2359         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
2360         (__clz_tab): Put in its own unit, non-static.
2361         * libgcc2.h: Always include longlong.h.
2362
2363         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
2364         a zero instead of -1.
2365         (count_trailing_zeros): Likewise.
2366
2367 2000-10-05  Richard Henderson  <rth@cygnus.com>
2368
2369         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
2370         when second op1 is const0_rtx.  Validate op0 as a register.
2371         * config/alpha/alpha.md (setcc_internal): Don't allow constants
2372         in the first argument of the compare.
2373         (setcc_swapped_internal): Likewise.
2374         (setne_internal): Likewise.
2375
2376 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
2377
2378         * tree.c (tree_size): New function split out of copy_node.
2379         (make_node): Remove obstack handling.  Use tree_size.
2380         (copy_node): Use tree_size.
2381         * tree.h: Prototype tree_size.
2382
2383 2000-10-05  Richard Henderson  <rth@cygnus.com>
2384
2385         * diagnostic.c (output_format): Add missing break.
2386
2387 2000-10-05  Jim Wilson  <wilson@cygnus.com>
2388
2389         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
2390         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
2391         sequence insn to INSN, and delete last sequence insn.
2392
2393 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
2394
2395         * gcc.c (main): Include generated configargs.h header
2396         and use arguments in '-v' output.
2397
2398 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2399
2400         * gcc.c: Move data on prefixes forward in file and reorganize.
2401         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
2402         Always define, but make null if no value.
2403         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
2404         and "md_startfile_prefix_1".
2405         (main): Check whether md_exec_prefix and the others are the
2406         null string rather than whether the macro is defined.
2407
2408 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2409
2410         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
2411         from PSImode to SImode.
2412
2413 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
2414
2415         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
2416         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
2417         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
2418         sizeof(long).
2419
2420 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2421
2422         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
2423         negation in proper type.a
2424
2425 2000-10-04  Richard Henderson  <rth@cygnus.com>
2426
2427         * configure.in (enable-shared): New.
2428         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
2429         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
2430         * mklibgcc.in: Use them to link shared a libgcc.
2431         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
2432         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
2433         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
2434         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
2435
2436         * configure.in (alpha-osf*): Use t-osf and x-osf.
2437         * config/alpha/t-osf: New file.
2438         * config/alpha/t-osf4: New file.
2439         * config/alpha/x-osf: New file.
2440         * config/alpha/x-alpha: Remove file.
2441
2442 2000-10-04  Will Cohen  <wcohen@redhat.com>
2443
2444         * c-typeck.c (process_init_element): Added warning for zero-length
2445         array.
2446
2447         * extend.texi (Zero Length): State that static initializers for
2448         zero-length arrays are not allowed.
2449
2450 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2451
2452         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
2453         to come last.
2454
2455 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2456
2457         * config/float-c4x.h: New.
2458         * configure.in (c4x-*): Set float_format to c4x.
2459         * configure: Regenerate.
2460
2461 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2462
2463         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
2464         compilation for solaris versions 2.7 and greater.
2465
2466 2000-10-02  Marc Espie <espie@openbsd.org>
2467
2468         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
2469         instead of redefining from scratch.
2470
2471 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
2472
2473         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
2474
2475 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
2476
2477         * config/ns32k/genix.h: Remove.
2478         * config/ns32k/x-genix: Likewise.
2479         * config/ns32k/xm-genix.h: Likewise.
2480         * config/fx80: Remove all filee in directory.
2481         * config/pyr: Likewise.
2482         * config/tahoe: Likewise.
2483         * config/gmicro: Likewise.
2484         * config/spur: Likewise.
2485         * configure.in: Remove configury bits for above targets.
2486         * configure: Regenerated.
2487
2488         * configure.in: Don't configure chill by default.
2489         * configure: Regenerated.
2490
2491         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
2492         (lang_mark_false_label_stack): Remove.
2493         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
2494         <top level> string in GC area.
2495         (mark_splay_tree_node): New function.
2496         (mark_splay_tree): Likewise.
2497         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
2498         if it exists.
2499         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
2500         * ggc-common.c (lang_mark_false_label_stack): Change type.
2501         * ggc.h (ggc_alloc_string): Add comment.
2502         (ggc_strdup): New function.
2503
2504 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
2505
2506         * config/avr/avr.h (BRANCH_COST): Define as 0.
2507
2508         * config/pdp11/pdp11.c: #include "tree.h" added.
2509
2510 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
2511
2512         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
2513         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
2514         with known shift count.
2515         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
2516         New alternative for shift count 2 with no scratch register.
2517         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
2518         "set_n" for shift counts 1 and 2.
2519
2520 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
2521
2522         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
2523         the mask value from the individual SET operations.
2524         (return_internal_si): Move the USE after the RETURN.
2525         (return_internal_di): Likewise.
2526         (return_and_restore_fpregs_si): Likewise.
2527         (return_and_restore_fpregs_di): Likewise.
2528         (return_eh_si): Likewise.
2529         (return_eh_di): Likewise.
2530         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
2531         or check, the USE.
2532         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
2533         Don't generate a PARALLEL around a single operation movsi_to_cr.
2534         Generate the RETURN first in any PARALLELs.
2535
2536         * rtlanal.c (single_set_1): Use fatal_insn to display the
2537         invalid insn.  Check for more cases when a USE or CLOBBER occurs
2538         before a SET.
2539         * Makefile.in: Update dependencies for rtlanal.o.
2540
2541 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
2542
2543         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
2544
2545 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
2546
2547         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
2548         Consistently use @email for formatting email addresses.
2549
2550 2000-09-29  Richard Henderson  <rth@cygnus.com>
2551
2552         * cse.c (notreg_cost): New argument outer.
2553         (COST): Pass in SET to notreg_cost
2554         (COST_IN): New.
2555         (fold_rtx): Use COST_IN.  Prefer constants when costs
2556         are the same.
2557
2558 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
2559
2560         * fixinc/inclhack.def (broken_cabs): Generalize regex.
2561         * fixinc/fixincl.x: Regenerate.
2562
2563 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2564
2565         * loop.c (check_final_value): A GIV is not replaceable if used
2566         before set.
2567
2568 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
2569
2570         * version.c: Bump to gcc-2.97.
2571
2572 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2573
2574         * final.c (final_scan_insn): Remove extra extract_insn call;
2575         Use caching for constrain_operands.
2576         (cleanup_subreg_operands): Use caching for extract_insn.
2577         * recog.c (constrain_operands_cached): New.
2578         * recog.h (constrain_operands_cached): Declare.
2579         * i386.c (ix86_attr_length_immediate_default,
2580         ix86_attr_length_address_default, ix86_agi_dependant): Cache
2581         extract_insn call.
2582
2583         * recog.c (asm_noperands): Tweak.
2584         (extract_insn): Do not call asm_noperads for non-asm instructions.
2585
2586 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2587
2588         * recog.c (recog_memoized): Rename to recog_memoized_1.
2589         * recog.h (recog_memoized): Rename to recog_memoized_1.
2590         (recog_memoized): New macro.
2591         * rtl.h (single_set): Rename to single_set_1
2592         (single_set): New macro.
2593         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
2594         to be last.
2595
2596         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
2597         Do not use match_dup of input operands at outputs.
2598         Use register_operand for memory expression.
2599         (rep_movsi): Put use last, canonicalize.
2600         Use register_operand for memory expression.
2601         (rep_movqi): Put use last.
2602         Use register_operand for memory expression.
2603         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
2604         of input operands at outputs.  Use register_operand for memory
2605         expression.
2606         (rep_stossi): Put use last; canonicalize; fix match_dup in
2607         the address expression
2608         (rep_stosqi): Likewise.
2609         (memcmp expander): Update calls.
2610         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
2611         the clobbers.
2612
2613         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
2614         VOIDmode.
2615         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
2616
2617 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
2618
2619         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
2620         Contains the old contents of config/i386/freebsd.h
2621         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
2622         Contains the old contents of config/i386/freebsd-elf.h
2623         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
2624         config/i386/freebsd.h.
2625         * configure.in: Adjust for above changes.
2626         * po/POTFILES.in: Likewise.
2627         * po/en_GB.po: Likewise.
2628         * po/gcc.pot: Likewise.
2629         * configure: Rebuilt.
2630
2631 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2632
2633         * doloop.c (doloop_modify): Prevent delete_insn() from
2634         deleting too much.  Prefer loop->top over loop->start as
2635         target for the new JUMP insn.
2636         (doloop_valid_p): Ignore loop with exit_count != 0.
2637
2638 2000-09-28  Philipp Thomas  <pthomas@suse.de>
2639
2640         * invoke.texi (i386 Options): Add athlon to table of possible
2641         choices for -mcpu=.
2642
2643 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
2644
2645         * diagnostic.h (output_clear_message_text): New function.
2646         (output_message_text): New macro.
2647
2648         * diagnostic.c (clear_text_info): Rename to
2649         output_clear_message_text.
2650         (output_clear): Adjust.
2651         (output_finish): Rename to output_finalize_message.  Tweek.
2652         (output_to_stream): Adjust.
2653
2654 2000-09-28  Neil Booth  <neilb@earthling.net>
2655
2656         * cpperror.c (_cpp_begin_message):  Do the test for suppression
2657         of warnings and pedantic warnings before the "is a warning an
2658         error" tests.
2659         * cppinit.c (cpp_handle_option): Remove surplus \n.
2660         * cpplex.c (ON_REST_ARG): Delete.
2661         (skip_block_comment): Initialise prevc.
2662         (parse_args): Improve error messages.
2663         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
2664         than ON_REST_ARG.
2665         * cpplib.c (cpp_push_buffer): Fix grammar in message.
2666         * cppmain.c (main): Set callbacks for #ident and #pragma
2667         only if no_output option is false.
2668         (do_pragma_implementation): Only call the #pragma handler
2669         if it is set in the cpp_reader structure.
2670
2671 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
2672
2673         * integrate.c (copy_insn_list): if an ignored return value
2674         is being clobbered, skip cloning that into the inline copy.
2675
2676 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
2677
2678         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
2679         use @uref for formatting URLs.
2680
2681 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
2682
2683         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
2684         name and prefix.
2685
2686 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
2687
2688         * gcc.c (cpp_options): Add spec for -ftabstop=.
2689         (invoke_as): New spec that handles invoking as.
2690         Update specs to handle -save-temps and -traditional.
2691         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
2692         Use invoke_as.
2693         * cp/lang-specs.h, objc/lang-specs.h: Update to use
2694         invoke_as, and handle -save-temps and -traditional (if
2695         appropriate).
2696
2697 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
2698
2699         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
2700         op0 is a SUBREG.
2701         (function_arg_slotno): Accept TImode/CTImode.
2702         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
2703         to UNITS_PER_WORD.
2704
2705 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
2706
2707         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
2708         from entry block.
2709
2710 2000-09-25  Jim Wilson  <wilson@cygnus.com>
2711
2712         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
2713         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
2714         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
2715         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
2716
2717 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
2718
2719         * cpplex.c (parse_args): Don't set VOID_REST flag.
2720         (CONTEXT_VARARGS): New flag.
2721         (maybe_paste_with_next): Set context earlier in loop.  Use
2722         it.  Do varargs test with CONTEXT_VARARGS flag.
2723         (push_arg_context): Set CONTEXT_VARARGS flag if we're
2724         pushing an argument context for a varargs argument.
2725         * cpplib.h (VOID_REST): Delete.
2726         * gcc.dg/cpp/vararg1.c: Add test case.
2727
2728 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
2729
2730         * flags.h:  Declare warning flag warn_system_headers.
2731         * toplev.c:  Define it.
2732         (W_options): Add option -Wsystem-headers.
2733         * diagnostic.c (count_error): Test warn_system_headers.
2734         * invoke.texi:  Add description for -Wsystem-headers.
2735         * cpplib.h (cpp_options): New member warn_system_headers.
2736         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
2737         CPP_IN_SYSTEM_HEADER.
2738         * cpplib.c (do_import, do_pragma_once): Likewise.
2739         * cpperror.c (_cpp_begin_message): Test warn_system_headers
2740         and CPP_IN_SYSTEM_HEADER.
2741         * cppinit.c (handle_option): Recognize -Wsystem_headers.
2742         (print_help): Describe -Wsystem_headers.
2743         * cpplex.c (lex_line): Reorganize condition so that warnings
2744         about C++ comments in system headers can be enabled. Remove
2745         label do_line_comment.
2746
2747 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
2748
2749         * cpplex.c (save_comment): Only store the initial '/'
2750         now.
2751         (lex_token): Combine handling of the two comment types.
2752         Pass everything but the initial '/' to save_comment.
2753
2754 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
2755
2756         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
2757         _cpp_can_paste): New library-internal prototypes.
2758         * cpplex.c (dump_param_spelling, output_line_command,
2759         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
2760         cpp_printf, cpp_output_list): Move to cppoutput.c.
2761         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
2762         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
2763         cppoutput.c.
2764         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
2765         dump_param_spelling, output_line_command, cpp_scan_buffer,
2766         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
2767         from elsewhere.
2768         * Makefile.in: Add cppoutput.c.
2769         * po/POTFILES.in: Add cppoutput.c.
2770
2771 2000-09-25  Richard Henderson  <rth@cygnus.com>
2772
2773         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
2774         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
2775         split until after reload.
2776         (rotlsi3, rotldi3): New.
2777
2778 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2779
2780         * diagnostic.c (output_last_position): Define.
2781         (set_real_maximum_length): Tweek.
2782         * diagnostic.h (output_last_position): Declare.
2783
2784 2000-09-25  Kazu Hirata  <kazu@hxi.com>
2785
2786         * config/i386/i386.c: Fix formatting.
2787
2788 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
2789
2790         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
2791         UNITS_PER_WORD is small.
2792
2793 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2794
2795         * c-common.c (format_char_info): Add flags2; update comments.
2796         (print_char_table, scan_char_table, time_char_table): Split some
2797         flags out into flags2.
2798         (check_format_info): Use flags2 for those flags, for identifying
2799         the initial character of a scanf scanset, and for identifying
2800         printf formats where the '0' flag is ignored with precision.
2801
2802 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
2803
2804         Changes below marked "here" add TABs on either or both sides,
2805         covering start of line, up to any operand for all noted .*ASM.*_OP
2806         definitions.  All callers changed.
2807         * tm.texi: Make documented *_ASM.*_OP:s include spacing
2808         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
2809         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2810         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2811         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
2812         Fix typos in description for LONG_LONG_TYPE_SIZE and
2813         FINI_SECTION_ASM_OP.
2814         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
2815         why these defaults don't have leading spacing.
2816         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
2817         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2818         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
2819         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
2820         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
2821         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
2822         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
2823         * varasm.c (ASM_STABS_OP): Here.
2824         * xcoffout.h (ASM_STABS_OP): Here.
2825         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2826         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2827         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
2828         STRING_ASM_OP): Here.
2829         * config/freebsd.h (IDENT_ASM_OP): Here.
2830         * config/linux-aout.h (SET_ASM_OP): Here.
2831         * config/linux.h (SET_ASM_OP): Here.
2832         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2833         INT_ASM_OP): Here.
2834         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2835         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
2836         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2837         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2838         INT_ASM_OP): Here.
2839         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2840         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2841         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
2842         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2843         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
2844         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2845         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
2846         * config/a29k/udi.h (INT_ASM_OP): Here.
2847         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
2848         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2849         SET_ASM_OP): Here.
2850         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
2851         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2852         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2853         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
2854         ASM_STABD_OP): Here.
2855         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
2856         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
2857         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2858         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
2859         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
2860         SIZE_ASM_OP, STRING_ASM_OP): Here.
2861         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
2862         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
2863         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
2864         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
2865         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
2866         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
2867         Here.
2868         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2869         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
2870         * config/arm/coff.h (INT_ASM_OP): Here.
2871         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2872         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
2873         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
2874         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
2875         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2876         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2877         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
2878         STRING_ASM_OP): Here.  Update documentation copy in comments.
2879         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
2880         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
2881         DATA_SECTION_ASM_OP): Here.
2882         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
2883         Here.
2884         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
2885         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2886         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2887         BSS_SECTION_ASM_OP): Here.
2888         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2889         BSS_SECTION_ASM_OP): Here.
2890         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2891         Here.
2892         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
2893         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2894         * config/h8300/h8300.h (ASM_WORD_OP): Here.
2895         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2896         BSS_SECTION_ASM_OP): Here.
2897         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
2898         * config/i386/bsd.h (ASM_BYTE_OP): Here.
2899         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
2900         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
2901         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
2902         Here.
2903         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
2904         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
2905         Here.
2906         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
2907         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2908         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
2909         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2910         SET_ASM_OP): Here.
2911         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
2912         * config/i386/netbsd.h (INT_ASM_OP): Here.
2913         * config/i386/openbsd.h (INT_ASM_OP): Here.
2914         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
2915         IDENT_ASM_OP): Here.
2916         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
2917         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
2918         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
2919         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
2920         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
2921         SHARED_BSS_SECTION_ASM_OP): Here.
2922         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
2923         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2924         DATA_SECTION_ASM_OP): Here.
2925         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2926         CONST_SECTION_ASM_OP): Here.
2927         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
2928         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2929         BSS_SECTION_ASM_OP): Here.
2930         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
2931         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
2932         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
2933         BSS_ASM_OP): Here, but use trailing spaces.
2934         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2935         DATA_SECTION_ASM_OP): Here.
2936         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
2937         Here.
2938         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
2939         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
2940         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2941         TDESC_SECTION_ASM_OP): Here.
2942         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
2943         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2944         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2945         Here.
2946         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2947         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2948         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2949         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
2950         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
2951         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
2952         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2953         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
2954         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
2955         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
2956         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2957         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2958         SET_ASM_OP): Here.
2959         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2960         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2961         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
2962         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
2963         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
2964         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
2965         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
2966         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2967         GLOBAL_ASM_OP): Here.
2968         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
2969         BSS_SECTION_ASM_OP): Here.
2970         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
2971         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2972         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
2973         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
2974         SKIP_ASM_OP): Here.
2975         * config/m68k/newsgas.h (SET_ASM_OP): Here.
2976         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
2977         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
2978         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2979         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2980         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
2981         but use trailing spaces.
2982         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
2983         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
2984         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
2985         Here.
2986         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2987         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
2988         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2989         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2990         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2991         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
2992         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
2993         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
2994         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
2995         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
2996         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2997         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
2998         ASM_BYTE_OP): Here.
2999         * config/m88k/openbsd.h (SET_ASM_OP): Here.
3000         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3001         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
3002         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
3003         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
3004         DTORS_SECTION_ASM_OP): Here.
3005         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
3006         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
3007         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
3008         BSS_SECTION_ASM_OP): Here.
3009         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
3010         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
3011         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
3012         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
3013         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
3014         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
3015         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
3016         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
3017         Here.
3018         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
3019         Here.
3020         * config/mips/osfrose.h (SET_ASM_OP): Here.
3021         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
3022         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
3023         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
3024         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3025         Here.
3026         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
3027         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
3028         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
3029         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
3030         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
3031         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3032         Here.
3033         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3034         Here.
3035         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
3036         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
3037         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
3038         Here.
3039         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
3040         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
3041         * config/sparc/linux.h (COMMON_ASM_OP): Here.
3042         * config/sparc/linux64.h (COMMON_ASM_OP,
3043         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
3044         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
3045         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
3046         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
3047         * config/sparc/pbd.h (ASM_INT_OP): Here.
3048         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
3049         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
3050         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
3051         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
3052         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
3053         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
3054         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
3055         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
3056         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
3057         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3058         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
3059         EH_FRAME_SECTION_ASM_OP): Here.
3060         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
3061         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3062         Here.
3063         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3064         Here.
3065         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
3066         TCOMMON_ASM_OP): Here.
3067         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
3068         Here.
3069         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
3070         ASM_BYTE_OP): Here.
3071
3072 2000-09-25  Richard Henderson  <rth@cygnus.com>
3073
3074         * expmed.c (store_bit_field): Adjust last change to not consider
3075         any word-sized field naturally aligned.
3076
3077 2000-09-24  Richard Henderson  <rth@cygnus.com>
3078
3079         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
3080         TFmode unordered compares properly.  Revalidate integer compare
3081         operands.
3082         (alpha_emit_setcc): New.
3083         (alpha_emit_conditional_move): Revalidate integer compare operands.
3084         * config/alpha/alpha-protos.h: Update.
3085         * config/alpha/alpha.md (cmpdi): Allow general operands.
3086         (sne): Use alpha_emit_setcc.
3087         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
3088         (sunordered, sordered): New.
3089
3090 2000-09-24  Richard Henderson  <rth@cygnus.com>
3091
3092         * config/ia64/ia64-protos.h: Update.
3093         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
3094         (ia64_expand_call): New.
3095         (ia64_expand_prologue): Emit an alloc if we need extra input
3096         registers.
3097         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
3098         instruction if true.
3099         (struct reg_flags): Add is_sibcall.
3100         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
3101         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
3102         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
3103         * config/ia64/ia64.h (PREDICATE_CODES): Update.
3104         * config/ia64/ia64.md (call): Use ia64_expand_call.
3105         (call_value): Likewise.
3106         (sibcall, sibcall_value): New.
3107         (call patterns): Remove extra expanders; tidy.
3108         (sibcall_epilogue): New.
3109         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
3110
3111 2000-09-24  Richard Henderson  <rth@cygnus.com>
3112
3113         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
3114
3115         * sibcall.c (skip_pic_restore): New.
3116         (identify_call_return_value): Use it.
3117
3118 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
3119
3120         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
3121         functions.  Generalize to handle both C and C++.
3122         * Makefile.in (c-tree.info): New target.
3123         (info): Add c-tree.info.
3124
3125 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3126
3127         * expr.c (store_field): If BITSIZE is negative, use size of type.
3128         (expand_expr, case COMPONENT_EXPR): Likewise.
3129
3130 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
3131
3132         * cpplex.c: Update TODO comment.
3133         * cpplib.c (do_error, do_warning): Merge common code of
3134         do_error and do_warning into do_diagnostic.  Use it.
3135         (do_diagnostic): New function.
3136         * cpplib.h: Fix comment typo.
3137
3138 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
3139
3140         * c-common.c (check_format_info): Warn for a wide character string
3141         used as a non-wide format argument.
3142
3143 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
3144
3145         * builtins.def (BUILT_IN_LLABS): Add.
3146         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
3147         * c-common.c (c_common_nodes_builtins): Create builtin functions
3148         __builtin_llabs, and plain llabs unless no_nonansi_builtins
3149         outside of C99 mode.
3150         (expand_tree_builtin): Handle BUILT_IN_LLABS.
3151
3152 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
3153
3154         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
3155         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
3156         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
3157         _cpp_free_toklist): No need to worry about extra dummy token
3158         at the start of token lists any more.
3159         (trigraph_ok): Only warn outside comments.
3160         (skip_block_comment): Set and clear lexing_comment.
3161         (skip_line_comment): Take a cpp_reader not cpp_buffer.
3162         Set and clear lexing_comment.
3163         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
3164         (check_long_token): Delete.
3165         (lex_percent, lex_dot): New subroutines of lex_token to
3166         handle lexing of '.' and '%' without lookback.
3167         (lex_token): Use lex_dot and lex_percent.
3168         (lex_line): Don't check for LIST_OFFSET.
3169         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
3170         * cpplib.c (_cpp_parse_assertion): Similarly.
3171         (cpp_push_buffer): Initialize extra_char.
3172         * cpplib.h (LIST_OFFSET): Delete.
3173         (struct cpp_buffer): New member extra_char.
3174         (struct lexer_state): New members lexing_comment and seen_dot.
3175
3176 2000-09-23  Jason Merrill  <jason@redhat.com>
3177
3178         * config/rs6000/x-aix41 (CLIB): Define here.
3179         * config/rs6000/t-aix43: Not here.
3180         * config/rs6000/t-aix41: Or here.  Remove.
3181         * configure.in: Don't use it.
3182
3183 2000-09-22  Jason Merrill  <jason@redhat.com>
3184
3185         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
3186         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
3187         * config.in: Regenerate.
3188
3189         * configure.in: Fix checks for assembler features when using a
3190         one-tree assembler that has not yet been built.
3191         Fix --disable-threads.
3192
3193 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
3194
3195         * stmt.c (expand_asm_operands): Allow # in constraints.
3196
3197 2000-09-22  Jason Merrill  <jason@redhat.com>
3198
3199         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
3200
3201         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
3202         function-local names.
3203
3204 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
3205             Mark Mitchell  <mark@codesourcery.com>
3206
3207         * toplev.c (warn_disabled_optimization): Declare new warning flag.
3208         * flags.h (warn_disabled_optimization): Add it here.
3209         * gcse.c (gcse_main): Add warning when disabled.
3210         * invoke.texi: Document -Wdisabled-optimization.
3211
3212 2000-09-21  Jason Merrill  <jason@redhat.com>
3213
3214         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
3215
3216         * dwarf2out.c (tree_add_const_value_attribute): New fn.
3217         (gen_variable_die): Call it for non-definitions.
3218
3219         * dwarf2out.c (die_struct): Add die_mark field.
3220         (mark_dies, unmark_dies): New fns.
3221         (clear_die_sizes): Remove.
3222         (print_die): Check die_symbol rather than die_offset.
3223         (build_abbrev_table, output_pubnames, output_aranges): Check
3224         die_mark rather than die_offset.
3225         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
3226         Call mark_dies.
3227
3228 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
3229
3230         * cppfiles.c (lookup_include_file): Rename to open_file.
3231         Always create a splay tree value, even on syscall failures.
3232         Negative entries indicated by fd == -2.
3233         Re-open files closed in the meantime.
3234         (_cpp_fake_include): Create a negative splay tree entry.
3235         (find_include_file, cpp_read_file): Update for function name
3236         change.
3237         * gcc.gd/cpp/mi4.c: Testcase.
3238
3239 2000-09-21  Nick Clifton  <nickc@redhat.com>
3240
3241         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
3242         ARM and THUMB modes.
3243
3244         * config/mcore/mcore.c: Fix compile time warnings.
3245         * config/mcore/mcore-protos.h: Fix compile time warnings.
3246
3247 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3248
3249         * configure.in: Correct test of gcc_cv_glibc.
3250         * configure: Rebuilt.
3251         * config.in: Rebuilt.
3252
3253 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3254
3255         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
3256         (expand_builtin): Handle BUILT_IN_FWRITE.
3257
3258         * builtins.def (BUILT_IN_FWRITE): New entry.
3259
3260         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
3261
3262 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3263
3264         * gcc.c (modify_target): New variable and struct.
3265         (process_command): Handle MODIFY_TARGET_NAME.
3266         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
3267         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
3268
3269         * c-decl.c (finish_decl): Add else's to avoid referencing
3270         TYPE_DOMAIN of an ERROR_MARK.
3271
3272 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
3273
3274         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
3275         `reload_in*' insns.
3276
3277 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
3278
3279         * config/avr/avr.md (neghi2): Add alternative for input and output
3280         operands in different registers, as in negsi2.
3281         (*negsi2): Remove '*' from the name.  Use "movw" if available.
3282
3283 2000-09-19  Jim Wilson  <wilson@cygnus.com>
3284
3285         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
3286         HAVE_GAS_HIDDEN macro.
3287
3288 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
3289
3290         * cpplex.c (lex_line): Drop the EOF token for unknown
3291         directives in assembler.
3292
3293 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
3294
3295         * configure.in: Allow enable_threads_flag value of "aix".  Define
3296         thread_file as "aix" for AIX 4.3 and above.
3297         * configure: Regenerated.
3298
3299         * gthr-aix.h: New file.
3300
3301         * rs6000/t-aix43: Replace soft-float multilib with pthread.
3302         Remove 403 processor multilib match.  Fix rios2 processor multilib
3303         match.
3304
3305         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
3306         to return to appropriate csect.
3307
3308 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3309
3310         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
3311         functions.
3312         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
3313         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
3314         BUILT_IN_PRINTF.
3315
3316         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
3317         New entries.
3318
3319         * c-common.c (init_function_format_info): Handle __builtin_printf.
3320         Set `check_function_format_ptr'.
3321         (c_common_nodes_and_builtins): Set `puts_ftype' and
3322         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
3323         __builtin_printf and printf.
3324
3325         * tree.c, tree.h (check_function_format_ptr): Declare.
3326
3327 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
3328
3329         * cppfiles.c (read_include_file): Take no special action for
3330         zero-length files.
3331
3332 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
3333
3334         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
3335         rather than that of branch.
3336         (shorten_branches): Don't increment insn_current_address twice.
3337
3338         Undo most of the Wed Jan 27 23:39:53 1999 patch:
3339         * loop.h (struct induction): Delete members derived, ix and last_use.
3340         (struct loop_ivs): Delete members first_increment_giv and
3341         last_increment_giv.
3342         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
3343         recombine_givs): Delete functions.
3344         (find_and_verify_loops): Don't initialize cont_dominator.
3345         (strength_reduce): Lose code to try to find bivs that can be
3346         expressed as givs of another biv, and to convert biv increments
3347         into givs.
3348         Lose loop_scan_start variable, always use loop->scan_start.
3349         Don't call recombine_givs.  Don't handle derived givs.
3350         (record_giv): Don't initialize derived and last_use fields.
3351         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
3352         givs.
3353         * unroll.c (derived_regs): Delete static variable.
3354         (unroll_loop): Don't initialize it.
3355         (copy_loop_body): Lose code to handle derived givs.
3356         (find_splittable_givs): Don't check for givs made from biv
3357         increments.
3358         Don't set derived_regs.
3359
3360         Fix misapplied earlier patch:
3361         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
3362         to fpul.
3363         (floatsisf2): Generate floatsisf_ie by default.
3364         (floatsisf_i4): Conditional on TARGET_SH4.
3365
3366         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
3367         predicate for the expanders.
3368
3369 2000-09-19  Richard Henderson  <rth@cygnus.com>
3370
3371         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
3372         in addition to pentium and pentiumpro symbols.
3373         (CPP_CPU_DEFAULT_SPEC): Likewise.
3374
3375         * c-typeck.c (c_expand_asm_operands): Restore the output tree
3376         after expanding.
3377
3378         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
3379         if the tree has side effects.
3380         (warn_if_unused_value): Do not warn about void constructs.
3381
3382         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
3383
3384         * unroll.c (copy_loop_body): Update LABEL_NUSES before
3385         calling invert_jump.
3386
3387 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
3388
3389         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
3390         into anything.
3391
3392 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3393
3394         * Makefile.in (c-common.o): Depend on diagnostic.h.
3395
3396         * c-common.c: Include diagnostic.h.
3397         (tfaff): Delete.
3398         (status_warning): New function.
3399         (check_format_info, maybe_read_dollar_number, check_format_types,
3400         finish_dollar_format_checking, check_function_format): Accept a
3401         `status' parameter.  All callers changed.
3402
3403         * c-common.h (check_function_format): Accept a `status' parameter.
3404
3405         * c-typeck.c: Update call to `check_function_format'.
3406
3407 2000-09-18  Richard Henderson  <rth@cygnus.com>
3408
3409         * c-decl.c (c_expand_body): Call mark_varargs before
3410         expand_function_start.
3411
3412 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
3413
3414         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
3415         * config/rs6000/eabi-ci.asm: Likewise.
3416
3417 2000-09-18  Richard Henderson  <rth@cygnus.com>
3418
3419         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
3420         for BImode.
3421
3422 2000-09-18  Jim Wilson  <wilson@cygnus.com>
3423
3424         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
3425         before passing it to fold_rtx_mult_add.
3426
3427         * unroll.c (final_giv_value): Pass increment through
3428         extend_value_for_giv before passing it to emit_iv_add_mult.
3429
3430         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
3431         paradoxical subreg, then directly substitute the replacement and
3432         return.
3433
3434 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
3435
3436         * cpp.texi: Update documentation, including some clarifications,
3437         the treatment of various newline combinations, and space between
3438         backslash and newline.
3439
3440 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
3441
3442         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
3443         Replace ASM_OUTPUT_LABELREF with assemble_name.
3444
3445 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
3446
3447         * sh.c (addsubcosts): CONST is not cheap.
3448         (find_barrier): For Sh1, take alignment after jumps into account.
3449
3450 2000-09-15  Andrew Haley  <aph@redhat.com>
3451
3452         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
3453         remove all SETs of SUBREGs of hard registers.
3454         * function.c (purge_hard_subreg_sets): New function.
3455         (purge_single_hard_subreg_set): New function.
3456         * rtl.h: (purge_hard_subreg_sets): New function.
3457
3458 2000-09-18  Richard Henderson  <rth@cygnus.com>
3459
3460         * config/ia64/ia64-protos.h: Update.
3461         * config/ia64/ia64.c (signed_inequality_operator): New.
3462         (ia64_expand_compare): New.
3463         (ia64_register_move_cost): Handle PR_REGS moves.
3464         (ia64_secondary_reload_class): Require a GR when moving to a PR.
3465         (struct reg_write_state): Add written_by_and/or.
3466         (struct reg_flags): Add is_and/or.
3467         (rws_update): Set them.
3468         (rws_access_regno): Test them to allow parallel comparisons.
3469         (rtx_needs_barrier): Recognize parallel comparisons.
3470         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
3471         Call recog_memoized; ignore pred_rel_mutex.
3472         (emit_predicate_relation_info): Don't call find_basic_blocks here.
3473         (ia64_reorg): Do it here instead.
3474         * config/ia64/ia64.h: s/CCmode/BImode/g
3475         (MODES_TIEABLE_P): Don't tie BImode.
3476         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
3477         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
3478         (RTX_COSTS): Make multiply 4 insns.
3479         (MEMORY_MOVE_COST): New.
3480         (PREDICATE_CODES): Update.
3481         * config/ia64/ia64.md: s/CCmode/BImode/g
3482         (movcci, movbi): New.
3483         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
3484         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
3485         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
3486         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
3487         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
3488         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
3489         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
3490         (mulsi, muldi): Use xmpy not xma.
3491         (cmpbi): New.
3492         (movcc, movcc_internal): Remove.
3493         (branch expanders): Use ia64_expand_compare.
3494         (setcc expanders): Likewise.
3495         (cmov insns): Use move_operand and ia64_move_ok.
3496         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
3497         scheduler from moving it past a use.
3498         * config/ia64/build.hacks: Remove.
3499
3500 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
3501
3502         * cpphash.h (HASHSTEP): Take character rather than pointer
3503         to character.
3504         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
3505
3506         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
3507
3508         * cpplex.c (auto_expand_name_space, trigraph_replace,
3509         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
3510         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
3511         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
3512         KNOWN_DIRECTIVE): Delete.
3513
3514         (handle_newline, check_long_token, skip_escaped_newlines,
3515         unterminated): New functions.
3516         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
3517
3518         (parse_identifier): Was parse_name, new implementation.
3519         (skip_line_comment, skip_block_comment, skip_whitespace,
3520         parse_number, parse_string, trigraph_ok, save_comment,
3521         adjust_column, _cpp_get_line): New implementations.
3522
3523         (lex_token): New function.  Lexes a token at a time, looking
3524         forwards.  Contains most of the guts of the old lex_line.
3525         (lex_line): New implementation, using lex_token to obtain
3526         individual tokens.
3527         (cpp_scan_buffer): Use the token's line, not the list's line.
3528
3529         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
3530          New implementations.
3531         (do_assert): Don't bother setting the answer's list's line.
3532         (cpp_push_buffer): Initialise new pfile and read_ahead members
3533         of struct cpp_buffer.
3534
3535         * cpplib.h (cppchar_t): New typedef.
3536         (struct cpp_buffer): read_ahead, pfile and col_adjust are
3537         new members.
3538         (struct lexer_state): New structure that determines the state
3539         and behaviour of the lexer.
3540         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
3541         (struct cpp_reader): New member "state". Rename
3542         multiline_string_line and multiline_string_column. Delete
3543         col_adjust, in_lex_line members.
3544         (CPP_BUF_COLUMN): Update.
3545
3546 2000-09-18  Richard Henderson  <rth@cygnus.com>
3547
3548         * combine.c (simplify_comparison): Shift a NOT out of a single
3549         bit test.
3550
3551         * combine.c (if_then_else_cond): Canonicalize BImode true to
3552         STORE_FLAG_VALUE.
3553         * explow.c (trunc_int_for_mode): Likewise.
3554
3555         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
3556         the NOT for De Morgan's rule.
3557         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
3558         of a comparison to the reverse comparison.
3559
3560         * combine.c (try_combine): Allow split to create a single insn.
3561
3562         * machmode.def: Add BImode.  Add a column for bitsize.
3563         * machmode.h (DEF_MACHMODE): Adjust for extra column.
3564         (GET_MODE_BITSIZE): Use it.
3565         * rtl.c (DEF_MACHMODE): Adjust for extra column.
3566         (mode_bitsize): New.
3567         (mode_mask_array): Use bitsize.
3568         * combine.c (combine_simplify_rtx): Require inner and outer
3569         modes to match on nonzero_bits optimizations.
3570
3571 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
3572
3573         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
3574         its entry in spill_reg_store.
3575         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
3576         * sh.c (reg_no_subreg_operand): New function.
3577         * sh-protos.h (reg_no_subreg_operand): Declare it.
3578         * sh.h (PREDICATE_CODES): Add it.
3579         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
3580         input operand that needs to be in fpul.
3581         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
3582         * sh.c (find_barrier): Take into account that machine_dependent_reorg
3583         might add new insns.
3584
3585 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
3586
3587         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
3588         MAYBE_DEAD.
3589         (sh_expand_epilogue): Take the PIC register into account when
3590         computing the frame size.
3591
3592         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
3593         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
3594         LABEL_REFs with a PIC-safe unspec.
3595
3596 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3597
3598         * c-common.c (check_format_info): Properly save the argument
3599         number and parameter for $ operand number formats in case width
3600         and precision arguments are also used.  Allow printf width and
3601         precision arguments to have operand numbers even if none was
3602         specified for the main format, since this is OK for %*.*m.  Only
3603         object to missing $ operand number if the format used requires an
3604         argument.
3605
3606 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3607
3608         * c-common.c (format_char_info): Add 'W' flag to comment.
3609         (print_char_table, scan_char_table): Use it.
3610         (check_format_info): Use the 'W' flag to determine whether a
3611         format argument is written into.
3612
3613 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3614
3615         * c-common.c (check_format_types): Reorganise and clean up,
3616         checking earlier for ERROR_MARKs and making cur_type into its
3617         TYPE_MAIN_VARIANT where convenient.
3618
3619 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3620
3621         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
3622
3623 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
3624
3625         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
3626
3627         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
3628         * i386.c (struct builtin_description): New.
3629         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
3630         (mmx_reg_operand): Declare MODE arg as unused.
3631         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
3632         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
3633         ix86_expand_binop_builtin, ix86_expand_store_builtin,
3634         ix86_init_builtins, ix86_expand_builtin): New functions.
3635         * i386.h (ix86_builtins): New enumeration.
3636         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
3637         * i386.md (attr length_immediate): 0 for mmx/sse types.
3638         (attr prefix_0f): 1 for mmx/sse types.
3639         (setcc_2): Remove "*" so we get gen_setcc_2.
3640         (emms): Account for changed register numbering.  Set "memory" attr
3641         to unknown.
3642         (sfence): Set "memory" attr to unknown.
3643
3644 2000-09-18  Andreas Jaeger  <aj@suse.de>
3645
3646         * configure.in: Define _GNU_SOURCE only when using the GNU C
3647         Library.
3648         * configure: Regenerated.
3649         * config.in: Regenerated.
3650
3651 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
3652
3653         * cppinit.c (cpp_init): Don't use ANSI prototypes.
3654         * flow.c (flow_dump_loop): Likewise.
3655         (flow_loops_dump): Likewise.
3656
3657         * c-typeck.c (c_start_case): Fix typo.
3658
3659 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3660
3661         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
3662         to int for plain complex which defaults to complex double.  Do
3663         warn about defaulting to complex double if pedantic.  Warn about
3664         complex integer types if pedantic.  Warn about complex types if
3665         pedantic and not in C99 mode.
3666         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
3667         for complex conjugation.
3668
3669 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3670
3671         * contrib.texi: Update my entry.
3672
3673 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
3674
3675         * config/avr/avr.md (mcu_enhanced): New attribute.
3676         (mcu_mega): Likewise.
3677         (extendhisi2): Use mcu_enhanced.
3678         (zero_extendhisi2): Likewise.
3679         (call_insn): Use mcu_enhanced and mcu_mega.
3680         (call_value_insn): Likewise.
3681         (*sbrx_branch): Use mcu_mega.
3682         (*sbrx_and_branchsi): Likewise.
3683         (*sbrx_and_branchhi): Likewise.
3684         (*tablejump_lib): Likewise.
3685
3686 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3687
3688         * alias.c (true_dependence): Allow non-unchanging read to conflict
3689         with unchanging write.
3690
3691         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
3692         (store_constructor): Pass alias_set to it.
3693
3694         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
3695         TYPE_MAIN_VARIANT of ERROR_MARK.
3696         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
3697
3698         * simplify-rtx.c (simplify_unary_operation): Add cases
3699         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
3700
3701 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
3702
3703         * expr.h (emit_library_call, emit_library_call_value): Delete
3704         declarations.
3705         * rtl.h (enum libcall_type): New.
3706         (emit_library_call, emit_library_call_value): Change fn_type arg to
3707         be of type enum libcall_type.
3708         * calls.c: Likewise for the function definitions.  Several callers
3709         throughout changed to use the new enumeration appropriately.
3710         (emit_library_call_value_1): Likewise.  Put back code to make libcall
3711         blocks of equal form, but only use it for the two new higher
3712         enumeration values.
3713
3714 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
3715
3716         Convert the C front-end to use function-at-a-time mode.
3717         * c-common.h: Include splay-tree.h.
3718         (C_DECLARED_LABEL_FLAG): New macro.
3719         (struct language_function): Add x_scope_stmt_stack and
3720         x_function_name_declared_p.
3721         (RECHAIN_STMTS): Move definition.
3722         (lang_statment_code_p): Likewise.
3723         (lang_expand_stmt): Likewise.
3724         (lang_expand_decl_stmt): New variable.
3725         (lang_expand_function_end): Likewise.
3726         (current_scope_stmt_stack): New function.
3727         (add_decl_stmt): Likewise.
3728         (add_scope_stmt): Likewise.
3729         (mark_stmt_tree): Likewise.
3730         (struct c_lang_decl): New structure.
3731         (DECL_SAVED_TREE): Define.
3732         (c_mark_lang_decl): New function.
3733         (c_expand_start_cond): Change prototype.
3734         (c_finish_then): New function.
3735         (c_finish_else): Likewise.
3736         (current_function_name_declared): Remove.
3737         (set_current_function_name_declared): Likewise.
3738         (mark_c_language_function): Declare.
3739         (case_compare): Likewise.
3740         (c_add_case_label): Likewise.
3741         (c_expand_expr): Likewise.
3742         (c_safe_from_p): Likewise.
3743         * c-common.c (lang_expand_function_end): New variable.
3744         (struct if_elt): Add if_stmt.
3745         (c_expand_start_cond): Add the if-statement to the statement-tree,
3746         rather than generating RTL.
3747         (c_finish_then): New function.
3748         (c_expand_start_else): Don't generate RTL.
3749         (c_finish_else): New function.
3750         (c_expand_expr_stmt): Don't generate RTL.
3751         (statement_code_p): Add SCOPE_STMT.
3752         (case_compare): New function.
3753         (c_add_case_label): Likewise.
3754         (mark_stmt_tree): Likewise.
3755         (c_mark_lang_decl): Likewise.
3756         (mark_c_language_function): Likewise.
3757         (c_expand_expr): Likewise.
3758         (c_safe_from_p): Likewise.
3759         * c-decl.c (c_stmt_tree): New variable
3760         (c_scope_stmt_stack): Likewise.
3761         (c_function_name_declared_p): Likewise.
3762         (lang_expand_expr_stmt): Remove.
3763         (poplevel): Don't call output_inline_function for nested
3764         functions.
3765         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
3766         `extern' function.
3767         (redeclaration_error_message): Change means of computing whether
3768         or not a function is nested.
3769         (lookup_label): Don't call label_rtx.
3770         (init_decl_processing): Add more GC roots.
3771         (start_decl): Add DECL_STMTs to the statement-tree, rather than
3772         calling rest_of_decl_compilation.
3773         (finish_decl): Don't call expand_decl.
3774         (store_parm_decls): Begin the statement-tree, but don't generate
3775         RTL.
3776         (finish_function): Tie off the statement-tree.  Call c_expand_body
3777         if appropriate.
3778         (c_expand_body): New function.
3779         (push_c_function_context): Save more information.
3780         (pop_c_function_contxt): Likewise.
3781         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
3782         (lang_mark_tree): Mark it.
3783         (current_stmt_tree): Adjust.
3784         (current_scope_stmt_stack): New function.
3785         (do_case): Remove.
3786         (set_current_name_declared): Likewise.
3787         (c_begin_compound_stmt): Define.
3788         (c_expand_decl_stmt): Likewise.
3789         * c-lang.c: Include rtl.h and expr.h.
3790         (lang_init): Set more language-specific hooks.
3791         * c-lex.c: Include expr.h.
3792         * c-parse.in: Changes throughout to add statements to the
3793         statement-tree, rather than generating RTL after every statement.
3794         * c-semantics.c (lang_expand_decl_stmt): Define.
3795         (add_decl_stmt): New function.
3796         (add_scope_stmt): Likewise.
3797         (finish_stmt_tree): Tweak.
3798         (genrtl_expr_stmt): Likewise.
3799         (genrtl_decl_stmt): Handle local labels, and call
3800         lang_expand_decl_stmt if required.
3801         (genrtl_for_stmt): Fix line-number handling.
3802         (genrtl_case_label): Handle cleanups.
3803         (genrtl_asm_stmt): Don't call combine_strings.
3804         (genrtl_compound_stmt): Simplify.
3805         (expand_stmt): Handle SCOPE_STMTs.
3806         * c-tree.h (struct lang_decl): New structure.
3807         (C_DECLARED_LABEL_FLAG): Remove.
3808         (c_begin_compound_stmt): Declare.
3809         (c_expand_decl_stmt): Likewise.
3810         (c_expand_start_case): Rename to c_start_case.
3811         (c_finish_case): New function.
3812         * c-typeck.c (start_init): Tweak setting of
3813         constructor_incremental.
3814         (c_expand_asm_operands): Tweak error-handling.  Add to the
3815         statement-tree.
3816         (c_expand_return): Add to the statement-tree.
3817         (c_expand_start_case): Rename to ...
3818         (c_start_case): ... this.
3819         (struct c_switch): New type.
3820         (switch_stack): New variable.
3821         (do_case): Simplify.
3822         (c_finish_case): New function.
3823         * dependence.c: Include expr.h.
3824         (enum dependence_type): Change spelling of enumerals.
3825         (check_node_dependence): Adjust.
3826         * expr.h (lang_safe_from_p): Declare.
3827         (safe_from_p): Likewise.
3828         * expr.c (lang_safe_from_p): New variable.
3829         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
3830         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
3831         * toplev.c (rest_of_decl_compilation): Robustify.
3832         * tree.c (contains_placeholder_p): Likewise.
3833         * Makefile.in: Update dependencies.
3834         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
3835         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
3836         (objc_expand_function_end): New function.
3837         (finish_method_def): Use it.
3838         (init_objc): Initialize more language-specific hooks.
3839         * objc/Make-lang.in: Update dependencies.
3840
3841 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
3842
3843         * configure.in: Define macros that affect features before
3844         testing for features.  Don't define _XOPEN_SOURCE.
3845         * configure: Regenerated.
3846         * config.in: Regenerated.
3847
3848 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
3849
3850         * rtlanal.c (rtx_varies_p): Volatile asms vary.
3851         (rtx_unstable_p): Restructure code.  Volatile asms
3852         are unstable.
3853
3854 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3855
3856         * function.h (no_debugging_symbols): New field.
3857         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
3858         Initialize no_debugging_symbols.
3859         (output_inline_function): Save and restore write_symbols and set from
3860         no_debugging_symbols.
3861         * toplev.c (rest_of_compilation): Call save_for_inline.
3862         * tree.h: Update comment.
3863
3864         * stor-layout.c (place_field): Don't do anything if field or
3865         its type are ERROR_MARK.
3866
3867 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
3868
3869         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
3870         (read_include_file): Ensure inc->mmaped is initialized.
3871
3872 2000-09-16  Richard Henderson  <rth@cygnus.com>
3873
3874         * cppiles.c (purge_cache): Use PTR not caddr_t.
3875
3876 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
3877
3878         * gcc.c: In description for %{<S}, say the option removed is -S.
3879         * invoke.texi (Spec Files): Ditto.
3880
3881 2000-09-16  Andreas Jaeger  <aj@suse.de>
3882
3883         * configure.in: Always define _GNU_SOURCE to make interfaces
3884         visible that were hidden by only defining _GNU_SOURCE.
3885         * configure: Regenerated.
3886
3887 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
3888
3889         * cpplex.c (push_macro_context): Set an argument's level after
3890         calling parse_args.  We could loop infinitely otherwise.
3891
3892 2000-09-15  Tom Tromey  <tromey@cygnus.com>
3893
3894         * configure, config.in: Rebuilt.
3895         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
3896
3897 2000-09-15  Greg McGary  <greg@mcgary.org>
3898
3899         * cppmacro.c (check_trad_stringification): Check token
3900         text pointers against limit before dereferencing.
3901
3902 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3903
3904         * c-common.c (format_wanted_type): New structure.
3905         (check_format_types): New function.
3906         (check_format_info): Pass all checking of types of format
3907         arguments, including width and precision arguments, to this new
3908         function.
3909
3910 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3911
3912         * BUGS: Remove file.
3913
3914 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
3915
3916         * config/alpha/alpha.c (override_options): ev6 cache latencies
3917         from Richard Henderson.  Don't allow -mmemory-latency=L0.
3918
3919         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
3920         (TARGET_OPTIONS): Add tune=.
3921         (alpha_tune_string): Declare.
3922         * config/alpha/alpha.c (override_options): Add cpu_table.
3923         Use alpha_cpu_string first to set both alpha_cpu and target_flags
3924         and then alpha_tune_string to set alpha_cpu only.
3925         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
3926         * config/alpha/elf.h (ASM_FILE_START): Likewise.
3927         * config/alpha/osf.h (ASM_FILE_START): Likewise.
3928         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
3929
3930 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3931
3932         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
3933         Remove.
3934         (ix86_comparison_operator, ix86_cc_mode): Declare
3935         * i386.h (CCGC, CCGCO): New modes.
3936         (SELECT_CC_MODE): Move offline to ....
3937         * i386.c (ix86_cc_mode): .... here; use new modes.
3938         (ix86_comparison_operator): New.
3939         (fcmov_comparison_operator): Ensure proper mode.
3940         (put_condition_mode): More sanity checking.
3941         (ix86_match_ccmode): Handle new modes.
3942         (ix86_expand_fp_compare): GEU requires CCmode.
3943         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
3944         doing it by hand.
3945         * i386.md (cmp?i_ccz_1): Remove
3946         (cmp?i_ccno_1): Use ix86_match_ccmode.
3947         (cmp?i_minus_1): New.
3948         (cmpsi_1): New expander.
3949         (cmpqi_ext_1): Use match_ccmode
3950         (cmpqi_ext_3): New expander.
3951         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
3952         (cmpqi_ext_4): Use match_ccmode.
3953         (add?i_?): Use match_ccmode.
3954         (add?i_6): New.
3955         (test?i_ccz_1): Remove
3956         (test?i_1): New.
3957         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
3958         (testqi_ext_0): Use ix86_match_ccmode.
3959         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
3960         (xorqi_cc_ext_1): New expander.
3961         (shift patterns): Use CCGOCmode for all shifts except for sar.
3962         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
3963         (setcc_3, jcc_3, miv?icc_c): Remove.
3964
3965 2000-09-15  Will Cohen  <wcohen@redhat.com>
3966
3967         * dwarf2out.c (add_const_value_attribute): Changed array into a
3968         xmalloced object, so it exists after function exit.
3969         (free_AT): Added case for dw_val_class_float to free allocated
3970         memory.
3971
3972 2000-09-15  Kazu Hirata  <kazu@hxi.com>
3973
3974         * config/i386/i386.md: Fix a comment typo.
3975         * gcc.c: Fix formatting.
3976
3977 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
3978
3979         * optabs.c (emit_libcall_block): If target is a user variable,
3980         copy to a temporary first.
3981         * expr.c (convert_move): When generating a libcall, make a libcall
3982         block.
3983         * calls.c (emit_library_call_value_1): Don't create a libcall
3984         sequence here; our caller will in most cases do it.
3985
3986         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
3987         MACH into FPUL.
3988         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
3989         * sh.md (reload_outsf): Generate recognizable patterns for
3990         TARGET_SH3E.
3991         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
3992         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
3993         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
3994         truncdfsf2_i4): Change not to use explicit references to fpul.
3995         (floatsisf2_ie): Remove USE of fpscr.
3996         (floatsisf2): Change default expansion to match this.
3997         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
3998         unused patterns.
3999
4000 2000-09-15  Richard Henderson  <rth@cygnus.com>
4001
4002         * expmed.c (store_bit_field): Consider naturally aligned
4003         memory for direct reference.
4004
4005 2000-09-15  Richard Henderson  <rth@cygnus.com>
4006
4007         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
4008         AND addresses into alias set 0.
4009         (alpha_expand_unaligned_store): Likewise.
4010         (alpha_expand_unaligned_load_words): Likewise.
4011         (alpha_expand_unaligned_store_words): Likewise.
4012
4013 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
4014
4015         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
4016         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
4017         is defined.
4018         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
4019         rsize of UNITS_PER_WORD.
4020
4021 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
4022
4023         * cpplex.c (ON_REST_ARG): Correct the test.
4024         (maybe_paste_with_next): Duplicate a token that fail pasting,
4025         and clear its PASTE_LEFT flag, so that nested pasting attempts
4026         do not occur.
4027
4028 2000-09-14  Richard Henderson  <rth@cygnus.com>
4029
4030         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
4031         * cse.c (rtx_cost): Likewise.
4032         * optabls.c (expand_binop): Likewise.
4033         (expand_twoval_binop, prepare_cmp_insn): Likewise.
4034         * regclass.c (copy_cost): Likewise.
4035         * reload1.c (reload_cse_move2add): Likewise.
4036
4037 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
4038
4039         * c-parse.in (reswords): Add _Complex.
4040
4041 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4042
4043         * gcc.1: Delete documentation for -undef preprocessor option.
4044
4045 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
4046
4047         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4048         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
4049         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
4050         Remove undefine before config/elfos.h.
4051         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
4052
4053 2000-09-14  Kazu Hirata  <kazu@hxi.com>
4054
4055         * invoke.texi (H8/300 Options): Add -ms2600.
4056         * config/h8300.c (h8300_init_once): Output an error when -ms2600
4057         is used without -ms.
4058         * config/h8300.h (TARGET_MAC): New.
4059         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
4060         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
4061         machine other than H8/S2600.
4062         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
4063         of the H8/S2000.
4064
4065 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
4066
4067         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
4068         pseudos that refer to the original pseudos, not only to their
4069         equivalent memory locations.
4070
4071 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4072
4073         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
4074         when making new MEM.
4075
4076         * Makefile.in (LN): Remove duplicate definition.
4077
4078 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
4079
4080         From Joern Rennecke:
4081         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
4082         on an insn and function_invariant_p returns nonzero for the source,
4083         add a REG_EQUAL note.
4084
4085 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
4086
4087         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
4088         conflict with frame_pointer_rtx.
4089
4090 2000-09-13  Kazu Hirata  <kazu@hxi.com>
4091
4092         * loop.c: Fix formatting.
4093         * loop.h: Likewise.
4094
4095 2000-09-13  Richard Henderson  <rth@cygnus.com>
4096
4097         * config/ia64/ia64.md (divsf3): New.
4098         (divsf3_internal_lat, divsf3_internal_thr): New.
4099         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
4100         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
4101         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
4102         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
4103         (nmadddf4_alts, nmadddf4_trunc): New.
4104         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
4105         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
4106         (multf3_truncsf_alts, multf3_truncdf_alts): New.
4107         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
4108         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
4109         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
4110         (nmaddtf4_truncdf_alts): New.
4111         (recip_approx): Don't predicate.
4112
4113 2000-09-13  Richard Henderson  <rth@cygnus.com>
4114
4115         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
4116
4117 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4118
4119         * flags.h (flag_dump_rtl_in_asm): Declare.
4120         * toplev.c (flag_dump_rtl_in_asm): Define.
4121         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
4122         if -dP is specified.
4123         * rtl.h (print_rtx_head): Declare.
4124         * print-rtl.c (print_rtx_head): Define.
4125         (print_rtx): Print the string pointed to by print_rtx_head
4126         at beginning of each dump line.
4127         (print_rtl): Likewise.
4128         (print_rtl_single): Likewise.
4129         * final.c (final_scan_insn): Dump the insn in the assembly
4130         file for debugging.
4131         * gcc.1: Document -dP option.
4132         * invoke.texi (Debugging Options): Likewise.
4133
4134 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4135
4136         * md.texi (Machine Constraints): Document the 68HC11 constraints.
4137         * install.texi (Configurations): Document the 68HC11&68HC12 port.
4138         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
4139
4140 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
4141
4142         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
4143         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
4144         (*clrstrqi): Likewise.
4145         (xorhi3,xorsi3,absqi2): Likewise.
4146         (one_cmplhi2,one_cmplsi2): Likewise.
4147         (addsi3): Two stupid constraint alternatives removed.
4148         (extendhisi2): Use `movw' for enhanced avr cores.
4149         (zero_extendhisi2): Likewise.
4150
4151 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
4152
4153         * alias.c (find_base_term): Use frame_pointer_rtx
4154         when handling an ADDRESSOF.
4155
4156         * cse.c (canon_hash): Handle USE of BLKmode memory.
4157         (cse_insn): Outgoing arguments for a libcall don't
4158         affect any recorded expressions.
4159
4160 2000-09-12  Tom Tromey  <tromey@cygnus.com>
4161
4162         * configure, config.in: Rebuilt.
4163         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
4164
4165 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
4166
4167         * c-lex.c (lex_string): Use charwidth to compute bytemask.
4168         * expr.c (expand_expr): Don't optimize constant array references
4169         initialized with wide string constants.
4170
4171 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
4172
4173         * loop.c (note_set_pseudo_multiple_uses): Correct.
4174
4175 2000-09-12  Jim Wilson  <wilson@cygnus.com>
4176
4177         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
4178         else block, and X has side-effects, then fail.
4179
4180 2000-09-12  Greg McGary  <greg@mcgary.org>
4181
4182         * config/mips/mips-protos.h
4183         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
4184         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
4185         (PREDICATE_CODES): Add "trap_cmp_op".
4186         * config/mips/mips.c
4187         (trap_cmp_op, mips_gen_conditional_trap): New functions.
4188         * config/mips/mips.md (trap, conditional_trap): New patterns.
4189
4190 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
4191
4192         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
4193         pointer.
4194
4195 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4196
4197         * builtins.c (built_in_decls): New array.
4198         (expand_builtin_fputs): New function.
4199         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
4200
4201         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
4202
4203         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
4204
4205         * tree.h (built_in_decls): New array.
4206
4207 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
4208
4209         * convex.md: Use "+" instead of "=" for outputs wrapped in a
4210         STRICT_LOW_PART.
4211         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
4212
4213 2000-09-12  Kazu Hirata  <kazu@hxi.com>
4214
4215         * haifa-sched.c: Fix formatting.
4216
4217         * genattrtab.c: Fix formatting.
4218
4219         * unroll.c: Fix formatting.
4220
4221 2000-09-12  Bruce Korb  <bkorb@gnu.org>
4222
4223         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
4224         remove obsolete code
4225         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
4226         * fixinc/fixincl.tpl: make non-exported arrays static scope
4227         * fixinc/fixincl.x: regenerate
4228         * fixinc/fixlib.h: Use PARAMS, not _P_
4229         * fixinc/fixtests.c: make a type for the test proc & use it
4230         * fixinc/server.h: Use PARAMS, not _P_
4231
4232 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4233
4234         * c-typeck.c (process_init_element): Avoid union init warnings on
4235         floating point zero.  Don't crash on unions containing structs.
4236
4237 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
4238
4239         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
4240         general_movsrc_operand, and remove CONST_INT from
4241         general_movdst_operand.
4242
4243 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
4244
4245         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
4246         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
4247         regs with a higher cost.
4248         (preferrable): Deal with cases where either cost or regcost is
4249         MAX_COST.
4250         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
4251         regcost values.
4252         (COSTS_N_INSNS): Move definition...
4253         * rtl.h: ...here.
4254         (MAX_COST): New macro.
4255         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
4256         constant.
4257
4258 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
4259
4260         * c-common.h (genrtl_clear_out_block): Remove.
4261         * c-semantics.c (genrtl_clear_out_block): Remove.
4262         (genrtl_while_stmt): Don't call it.
4263         (genrtl_for_stmt): Likewise.
4264
4265 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
4266
4267         * cppfiles.c: Move all default-#defines to top of file.
4268         (open_include_file): Replace by lookup_include_file.
4269         (read_with_read, read_file): Merged into read_include_file.
4270         (stack_include_file, purge_cache): New functions.
4271         (close_cached_fd): Delete.
4272         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
4273         Cache the in-memory buffer, not the file descriptor.
4274
4275         * cpphash.h (struct include_file): Add buffer, st, refcnt,
4276         mapped fields.
4277         (xcnew): New utility macro.
4278         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
4279         * cpplib.h (struct cpp_buffer): Remove mapped field.
4280
4281 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
4282
4283         * cpplex.c (parse_string): Accept backslash space newline as a
4284         line continuation.
4285         (lex_line): Likewise.
4286         (_cpp_get_token): Remove hard limit on macro nesting.
4287
4288 2000-09-12  Philipp Thomas  <pthomas@suse.de>
4289
4290         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
4291         * configure: Rebuilt.
4292
4293 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
4294
4295         * flow.c (split_block): Fix update of registers live at
4296         end of split block.
4297
4298 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4299
4300         * i386.md (add?i_3, add?i_5): New.
4301         (add?i_4): Rename from add?i_3;  Fix compare pattern.
4302         (sub?i_3, xor?i_3, ior?i_3): New.
4303
4304         * genrecog.c (write_tree): Output code to clear insn_extract cache.
4305         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
4306         instead of extract_insn and extract_constrain_insn_cache instead of
4307         extract_insn and constrain_operands.
4308         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
4309         New functions.
4310         (extract_insn): Clear which_alternative.
4311         (constrain_operands): Set which_alternative to -1 when failed.
4312         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
4313         Declare.
4314
4315 2000-09-11  Matthew Hiller  <hiller@redhat.com>
4316
4317         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
4318         on operand 0 to '+'.
4319         (movstricthi): Likewise.
4320
4321 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4322
4323         * loop.h (LOOP_IVS): New macro.
4324         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
4325         (struct loop_ivs): New.
4326         (struct loop_info): Add ivs field.
4327         (reg_iv_type, reg_iv_info): Delete prototype.
4328         (reg_biv_class, loop_iv_list): Likewise.
4329         * loop.c (record_biv, find_life_end): Pass loop argument.
4330         (reg_iv_type): Remove global array and use
4331         field in loop_regs structure within loop_ivs structure.
4332         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
4333         (first_increment_giv, last_increment_giv): Use entry in
4334         loop_ivs structure.
4335         (record_initial): Pass ivs pointer.
4336         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
4337
4338 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4339
4340         * loop.h (LOOP_REGS): New macro.
4341         (struct loop_regs): New.
4342         (struct loop_info): Add regs field.
4343         * loop.c (set_in_loop): Remove global array and store
4344         in loop_regs structure as part of loop_info structure.
4345         (n_times_set, may_not_optimize): Likewise.
4346         (reg_single_usage, moved_once): Likewise.
4347         (count_one_set): Add regs argument.
4348         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
4349         (set_pseudo_multiple_uses): Pass regs pointer.
4350
4351 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4352
4353         * unroll.c (iteration_info): Subsume into loop_iterations.
4354         * loop.h (loop_info): New field iv.
4355
4356 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4357
4358         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
4359         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
4360         (flow_loops_update): New prototype.
4361         (flow_loops_find): Add flags to prototype.
4362         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
4363         * flow.c (flow_loop_pre_header_scan): New.
4364         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
4365         (flow_loop_free): Free pre-header root and trace and exit dominators.
4366         (flow_loops_find): New argument flags.
4367         (flow_loops_update): New function.
4368         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
4369
4370 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4371
4372         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
4373         * flow.c (split_block, update_bb_for_insn): New functions.
4374
4375 2000-09-11  Richard Henderson  <rth@cygnus.com>
4376
4377         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
4378
4379 2000-09-11  Richard Henderson  <rth@cygnus.com>
4380
4381         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
4382         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
4383         (ia64_override_options): Prevent optimizing division for both
4384         latency and throughput.
4385         (rtx_needs_barrier): Handle frcpa.
4386         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
4387         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
4388         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
4389         (TARGET_SWITCHES): Add -minline-divide-min-latency and
4390         -minline-divide-max-throughput.
4391         (PREDICATE_CODES): Update.
4392         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
4393         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
4394         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
4395         (extendsftf2): Likewise.
4396         (extenddftf2): Likewise.
4397         (fix_trunctfdi2_alts): New.
4398         (fixuns_trunctfdi2_alts): New.
4399         (madd*4): Rename from madd*3.
4400         (divsi3, modsi3, udivsi3, umodsi3): New.
4401         (divsi3_internal): New.
4402         (divdi3, moddi3, udivdi3, umoddi3): New.
4403         (divdi3_internal_lat, divdi3_internal_thr): New.
4404         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
4405         (recip_approx): New.
4406
4407 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
4408
4409         * print-rtl.c (debug_call_placeholder_verbose): New variable.
4410         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
4411         set.
4412         * integrate.c (copy_rtx_and_substitute): Don't share
4413         LEAF_REG_REMAPpable registers with the inlined function.  Don't
4414         share the function value with calling sequences.
4415
4416 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
4417
4418         * c-decl.c (do_case): Fix a typo.
4419
4420         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
4421         to a if the comparison is floating mode and not -ffast-math.
4422         * simplify-rtx.c (simplify_ternary_operation): Likewise.
4423
4424 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4425
4426         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
4427         gen_ic_invalidate_line.
4428
4429 2000-09-11  Philip Blundell  <pb@futuretv.com>
4430
4431         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
4432
4433 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
4434
4435         * install.texi (LANGUAGES): Update to include new languages.
4436         * INSTALL: Rebuilt.
4437
4438 2000-09-11  DJ Delorie  <dj@redhat.com>
4439
4440         * gcc.c (main): Don't warn about unused -B prefixes
4441         (unused_prefix_warnings): remove
4442
4443 2000-09-11  Kazu Hirata  <kazu@hxi.com>
4444
4445         * final.c: Fix formatting.
4446
4447         * integrate.c: Fix formatting.
4448
4449 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
4450
4451         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
4452
4453 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
4454
4455         * reload.c (regno_clobbered_p): Fix thinko in previous change.
4456
4457 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4458
4459         * gcc.1: Document 68hc11 specific options.
4460
4461 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
4462
4463         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
4464         (TARGET_LONG_DOUBLE_128): Define.
4465         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
4466         (LONG_DOUBLE_TYPE_SIZE): Redefine.
4467         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
4468         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
4469         of __LONG_DOUBLE_128__.
4470         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
4471         passed.
4472         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
4473         (CPP_SYSV_DEFAULT_SPEC): Define.
4474         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
4475         (INIT_TARGET_OPTABS): Define.
4476
4477         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
4478         (RS6000_UITRUNC): Likewise.
4479         (INIT_TARGET_OPTABS): New macro.
4480         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
4481         (trunc_defined): Delete.
4482         (output_prolog): Don't output .extern definitions for fp->int
4483         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
4484         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
4485         (trunc_defined): Delete.
4486         (RS6000_ITRUNC): Moved to aix.h.
4487         (RS6000_UITRUNC): Likewise.
4488         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
4489         only emit a libcall.
4490         (fixuns_truncdfsi2): Delete.
4491         (trunc_call): Delete.
4492         (trunc_call_rtl): Delete.
4493
4494 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4495
4496         * varasm.c (make_decl_rtl): Restore leading star on
4497         DECL_ASSEMBLER_NAME set for decls with an asmspec.
4498
4499 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4500
4501         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
4502         won't give a spurious error for '#pragma pack()'.  Simplify
4503         control flow for readability.  'reset' action is not necessary.
4504
4505 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4506
4507         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
4508         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
4509         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
4510         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
4511
4512         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
4513         profile.c, sdbout.c, tradcif.y, tree.c:
4514         Include defaults.h if not already included.
4515         Don't define the above macros.
4516
4517         * Makefile.in: Update dependencies.
4518
4519 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
4520
4521         * c-common.h (add_stmt): Change prototype.
4522         (RECHAIN_STMTS): New macro.
4523         (CASE_LABEL_DECL): Likewise.
4524         (genrtl_case_label): Change prototype.
4525         (c_expand_start_case): Remove prototype.
4526         (build_case_label): Change prototype.
4527         (decl_constant_value): Declare.
4528         * c-common.c (check_case_value): Handle C++'s extensions to C
4529         semantics.
4530         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
4531         field.
4532         * c-parse.in (stmt): Adjust handling of return statements and case
4533         laels.
4534         * c-semantics.c (add_stmt): Return the new statement.
4535         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
4536         returned expression.  Directly generate RTL, rather than calling
4537         c_expand_return.
4538         (genrtl_switch_stmt): Don't call c_expand_start_case.
4539         (build_case_label): Take the LABEL_DECL as input, too.
4540         (genrtl_case_label): Just call add_case_node.
4541         (expand_stmt): Adjust calls to genrtl_return_stmt and
4542         genrtl_case_label.
4543         * c-tree.h (c_expand_start_case): Declare.
4544         * c-typeck.c (decl_constant_value): Give it external linkage.
4545         (c_expand_return): Don't call expand_return or expand_null_return;
4546         use genrtl_return_stmt instead.
4547         * stmt.c (struct nesting): Remove num_ranges field.
4548         (add_case_node): Give it external linkage.
4549         (expand_start_case): Don't set num_ranges.
4550         (expand_start_case_dummy): Don't clear it.
4551         (pushcase): Rely on add_case_node to handle `default' labels.
4552         (add_case_node): Handle `default' labels.
4553         * tree.c (tree_int_cst_compare): New function.
4554         * tree.h (tree_int_cst_compare): Declare.
4555         (add_case_node): Likewise.
4556
4557 2000-09-10  Richard Henderson  <rth@cygnus.com>
4558
4559         * c-parse.in: Revert last change.
4560         (init_reswords): Do not enter disabled keywords into the ridpointers
4561         table, modulo objc weirdness.
4562         (_yylex): Return the canonical spelling for a keyword.
4563
4564 2000-09-10  Philip Blundell  <philb@gnu.org>
4565
4566         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
4567         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
4568
4569 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
4570
4571         * alias.c (find_base_term): Handle ADDRESSOF.
4572         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
4573
4574 2000-09-10  Denis Chertykov  <denisc@overta.ru>
4575
4576         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
4577         outputting templates with many lines.
4578
4579 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4580
4581         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
4582         to decide whether 64-bit support must be generated.
4583
4584 2000-09-10  Richard Henderson  <rth@cygnus.com>
4585
4586         * c-parse.in (asm patterns): Fix volatile check.
4587
4588 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4589
4590         * cppmacro.c (check_trad_stringification): New function.
4591         (save_expansion): If -Wtraditional, warn about stringification of
4592         macro arguments.
4593
4594 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
4595
4596         * loop.h (struct loop_mem_info): Move from loop.c
4597         (struct loop_info): Add fields store_mems, mems, mems_idx,
4598         mems_allocated, unknown_address_altered,
4599         unknown_constant_address_altered, num_mem_sets, and
4600         first_loop_store_insn.
4601
4602         * loop.c (loop_store_mems): Replace with field in loop_info struct.
4603         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
4604         (unknown_address_altered, unknown_constant_address_altered): Likewise.
4605         (num_mem_sets): Likewise.
4606         (replace_loop_mems, replace_loop_regs): New.
4607         (struct loop_replace_args): New.
4608         (load_mems): Use replace_loop_mems.
4609         (try_copy_prop): Use replace_loop_regs.
4610         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
4611
4612 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4613
4614         * configure.in: Recognize m6811-elf and m6812-elf.
4615         * configure: Regenerate.
4616
4617 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
4618
4619         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
4620         to operand_subword.
4621
4622 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
4623
4624         * loop.c (struct movables): New.
4625         (num_movables): Move into struct movables.
4626         (the_movables): Change type to struct movables.
4627         (ignore_some_movables): Change struct movable arg to struct movables.
4628         (force_movables, combine_movables, regs_match_p): Likewise.
4629         (rtx_equal_for_loop_p, move_movables): Likewise.
4630         (scan_loop): Change movables to be of type struct movables.
4631         Replace last_movable with field in movables structure.
4632
4633 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
4634
4635         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
4636         (init_pragma): Avoid warning if pfile happens to be unused.
4637         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
4638         define init_pragma to nothing.  Always prototype
4639         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
4640
4641         * c-lex.c (process_directive): Always call dispatch_pragma.
4642         Initialize entering_c_header to 0.
4643
4644 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4645
4646         * config/m68hc11/m68hc11.md: New file, machine description for
4647         68HC11 & 68HC12.
4648         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
4649         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
4650         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
4651         * config/m68hc11/m68hc11-protos.h: New file.
4652         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
4653         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
4654         * config/m68hc11/xm-m68hc11.h: New file, target defs.
4655         * config/m68hc11/larith.asm: New file, libgcc routines.
4656
4657 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4658
4659         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
4660         (FPBIT_FUNCS): Add _usi_to_sf.
4661         * config/fp-bit.c (usi_to_float): New function.
4662         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
4663         (usi_to_float): Add appropriate #define.
4664
4665 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4666
4667         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
4668         new functions.
4669         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
4670         * i386.md (attr "type"): Add sse and mmx types.
4671         (attr "memory"): Handle them without a crash.
4672         (movsi_1, movdi_2): Allow MMX regs.
4673         (movdi splits): Don't split moves involving MMX regs.
4674         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
4675         (movv4sf_internal, movv4si_internal, movv8qi_internal,
4676         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
4677         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
4678         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
4679         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
4680         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
4681         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
4682         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
4683         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
4684         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
4685         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4686         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4687         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
4688         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
4689         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4690         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4691         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
4692         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
4693         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
4694         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
4695         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
4696         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4697         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4698         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
4699         mmx_clrdi): New patterns.
4700
4701 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
4702
4703         * arm.c: Don't include tm.h directly.
4704
4705 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4706
4707         * recog.c (validate_replace_rtx_1): Fix confusion about equality
4708         testing; simplify subregs of constants and nested subregs.
4709
4710 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
4711
4712         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
4713
4714 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4715
4716         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
4717         VEC_CONCAT.
4718         * rtl.texi (description of USE): Add note about possible pitfalls
4719         with this rtx.
4720         From Richard Henderson:
4721         * reload1.c (choose_reload_regs): Compute need_mode properly.
4722
4723 2000-09-07  Richard Henderson  <rth@cygnus.com>
4724
4725         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
4726         (__modsi3, __umodsi3): Likewise.
4727         (__udivsi3): Likewise.  Normalize the TFmode values.
4728
4729 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
4730
4731         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
4732         with a prototype.
4733         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
4734         warning.
4735
4736 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4737
4738         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
4739         (cmpeqdi_t): Add output pattern.
4740         (cmpeqdi_t+1): Don't split when not optimizing.
4741         Restore proper splitting operation.
4742
4743 2000-09-07  Richard Henderson  <rth@cygnus.com>
4744
4745         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
4746         do not call dispatch_pragma.
4747
4748 2000-09-07  Jim Wilson  <wilson@cygnus.com>
4749
4750         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
4751         to CLASS_CANNOT_CHANGE_MODE.
4752         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
4753         mode classes are different.
4754
4755 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4756
4757         * cpplib.h (struct cpp_options): Add user_label_prefix member,
4758         left out of commit which removed cppulp.c.
4759
4760 2000-09-07  Richard Henderson  <rth@cygnus.com>
4761
4762         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
4763         after switch for CASE_DROPS_THROUGH.
4764
4765 2000-09-07  Richard Henderson  <rth@cygnus.com>
4766
4767         * loop.c (strength_reduce): Call check_ext_dependant_givs.
4768         Properly extend the biv initial value for the giv.
4769         (record_biv): Zero ext_dependant.
4770         (record_giv): New argument ext_val.  Update all callers.
4771         (general_induction_var): Likewise.
4772         (consec_sets_giv): Likewise.
4773         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
4774         a sign-extend, zero-extend, or truncate.
4775         (combine_givs_p): Make sure modes are compatible.
4776         (check_ext_dependant_givs): New.
4777         (extend_value_for_giv): New.
4778         * loop.h (struct induction): Add ext_dependant.
4779         * unroll.c (iteration_info): Extend the biv initial value for the giv.
4780         (find_splittable_givs): Likewise.
4781         (final_giv_value): Likewise.
4782
4783 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4784
4785         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
4786         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
4787         definitions from cpplib.h.
4788         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
4789         already done it.
4790         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
4791         documentation for REGISTER_TARGET_PRAGMAS.
4792
4793         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
4794         default-pragma callback to implement -Wunknown-pragmas if
4795         USE_CPPLIB.
4796         * c-parse.in: Move all includes to top of file.
4797         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
4798         tm_p.h.
4799         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
4800         warning.
4801         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
4802
4803         * arm.h, arm-protos.h, arm.c,
4804           c4x.h, c4x-protos.h, c4x.c,
4805           h8300.h, h8300-protos.h, h8300.c,
4806           i370.h, i370-protos.h, i370.c,
4807           i960.h, i960-protos.h, i960.c,
4808           sh.h, sh-protos.h, sh.c,
4809           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
4810         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
4811
4812         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
4813         multiple include guard.
4814         * i370.md (untyped_call): Use GEN_CALL.
4815         (umodsi3): Remove unused variable.
4816         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
4817         * v850.c (output_move_single, output_move_double): Constify
4818         return value.
4819         (print_operand): Constify a char *.
4820         * v850.h (struct small_memory_info): Constify name member.
4821
4822 2000-09-07  Kazu Hirata  <kazu@hxi.com>
4823
4824         * config/h8300.h: Fix comment typos.
4825         * config/h8300/h8300.md: Likewise.
4826         * config/h8300/lib1funcs.asm: Likewise.
4827
4828 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
4829
4830         * Makefile.in: Remove references to cppulp.{c,o}.
4831         * cppinit.c (initialize_builtins, cpp_start_read,
4832         cpp_handle_option): Update to use cpp_options structure.
4833         * cppulp.c: Remove.
4834
4835 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4836
4837         * c-common.c (time_char_table): Allow %#b and %#h.
4838
4839 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4840
4841         * reorg.c (find_end_label): If the basic block reorder pass moves the
4842         return insn to some other place try to locate it again and put our
4843         end_of_function_label there.
4844         * reorg.c (relax_delay_slots): Check if find_end_label created a
4845         new label that invalidates the current optimazation.
4846
4847 2000-09-07  Catherine Moore  <clm@redhat.com>
4848
4849         * unroll.c (unroll_loop): Check for unconditional jumps
4850         to loop continuation.  Delete if n_iterations is 1.
4851         (ujump_to_loop_cont): New routine.
4852
4853 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
4854
4855         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
4856         MODE_VECTOR_FLOAT.
4857         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
4858         to handle multiword modes correctly.  All callers and the declaration
4859         changed.
4860
4861 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4862
4863         * c-common.h (prep_stmt): Declare.
4864         (lang_expand_stmt): Likewise.
4865         * c-decl.c (lang_expand_stmt): Remove.
4866         * c-semantics.c (lang_expand_stmt): Define.
4867         (prep_stmt): New function.
4868         (expand_stmt): Handle common statement types here.
4869
4870 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
4871
4872         * configure.in (sh-*-linux*): Added.
4873         * configure: Rebuilt.
4874         * config/sh/t-linux: New file.
4875         * config/sh/sh.h (USERMODE_BIT): Define.
4876         (TARGET_USERMODE): Likewise.
4877         (TARGET_SWITCHES): New switches for the bits above.
4878         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
4879         * config/sh/linux.h: New file.
4880         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
4881         underscore on linux.
4882         (L_sdivsi3, L_udivsi3): Define for linux.
4883         (L_ic_invalidate): Define.
4884         * invoke.texi (SH Options): Document -musermode.
4885
4886 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
4887
4888         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
4889         CSE unless generating PIC.
4890
4891         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
4892         the PIC register.
4893
4894 2000-09-06  H.J. Lu  (hjl@gnu.org)
4895
4896         * Makefile.in (clean_s1): Depend on stage_b.
4897         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
4898         stage2. They are used for "make compare".
4899
4900 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4901
4902         Move statement-tree facilities from C++ to C front-end.
4903         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
4904         (void_zero_node): New macro.
4905         (struct stmt_tree_s): New type.
4906         (stmt_tree): New typedef.
4907         (struct language_function): New type.
4908         (last_tree): New macro.
4909         (last_expr_type): Likewise.
4910         (walk_tree_fn): New typedef.
4911         (current_stmt_tree): New function.
4912         (begin_stmt_tree): Likewise.
4913         (add_stmt): Likewise.
4914         (finish_stmt_tree): Likewise.
4915         (statement_code_p): Likewise.
4916         (lang_statement_code_p): New variable.
4917         (walk_stmt_tree): New function.
4918         (STMT_IS_FULL_EXPR_P): New macro.
4919         * c-common.c (lang_statement_code_p): New variable.
4920         (c_common_nodes_and_builtins): Initialize void_zero_node.
4921         (statement_code_p): New function.
4922         (walk_stmt_tree): Likewise.
4923         * c-decl.c (language_function): Rename to ...
4924         (c_language_function): ... this.  Include language_function.
4925         (push_c_function_context): Adjust accordingly.
4926         (pop_c_function_context): Likewise.
4927         (mark_c_function_context): Likewise.
4928         (current_stmt_tree): Define.
4929         * c-semantics.c (begin_stmt_tree): New function.
4930         (add_stmt): Likewise.
4931         (prune_unused_decls): Likewise.
4932         (finish_stmt_tree): Likewise.
4933
4934 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4935
4936         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
4937
4938 2000-09-06  Kazu Hirata  <kazu@hxi.com>
4939
4940         * calls.c: Fix formatting.
4941
4942 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
4943
4944         * config/i386/i386.h (ADDRESS_COST): Fix typo.
4945
4946 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4947
4948         Integrated preprocessor.
4949
4950         * Makefile.in: Remove all references to c-parse.gperf,
4951         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
4952         generating c-parse.c.  Update dependencies.
4953         * c-parse.gperf, c-gperf.h: Delete.
4954
4955         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
4956         yy_lim, or yy_get_token.  Don't define get_directive_line if
4957         USE_CPPLIB.
4958         * c-common.h: Add multiple include guard.  Define RID values
4959         for every keyword in C, C++, and Objective C.  Put all the
4960         modifiers first.
4961         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
4962         * c-decl.c (c_decode_option): Handle -lang-objc here.
4963         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
4964         (grokdeclarator): Adjust for new RID scheme.
4965         (extract_interface_info): New stub.
4966         * c-lang.c: Don't declare yy_cur or parse_options.
4967         (lang_init_options): Call cpp_init.  Don't call
4968         cpp_options_init.
4969         (lang_init): Don't call check_newline if USE_CPPLIB.
4970
4971         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
4972         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
4973         rendered unnecessary by new architecture.  Move routines not
4974         shared with C++ to c-parse.in.  Maintain a local idea of the
4975         line number.    Handle C++ as well as C.
4976         [USE_CPPLIB]: Declare and register callbacks for #ident and
4977         for entering/leaving files.
4978         (init_c_lex, c_lex): Are now the entry points to this file.
4979         (check_newline): Break out directive handling to
4980         process_directive.
4981         (read_ucs, is_extended_char, utf8_extend_token): Moved here
4982         from C++ front end.
4983         (readescape, parse_float): Overhaul.
4984         (lex_number, lex_string, lex_charconst): Break out of c_lex
4985         (n'ee yylex).
4986         (get_fileinfo, update_header_times, dump_one_header,
4987         dump_time_statistics): New and/or moved here from C++.
4988         Support per-file data needed by C++ and per-header timing
4989         statistics (C++ only, at the moment).
4990         * c-lex.h: Update prototypes.  Add multiple include guard.
4991         * c-tree.h (struct lang_identifier): Add rid_code field.
4992         (C_IS_RESERVED_WORD, C_RID_CODE): New.
4993
4994         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
4995         reinit_parse_for_function and/or position_after_white_space.
4996         (save_filename, save_lineno): Look ahead before saving.
4997         (label -> identifier ':'): Save file and line before shifting ':'.
4998         (reservedwords): No need to call get_identifier.
4999         (init_parse, finish_parse, yyerror, yylex, yyprint,
5000         make_pointer_declarator): Are now here for C/ObjC.
5001         (rid_to_yy): Conversion table from RID constants to Yacc codes.
5002
5003         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
5004         #pragma registry.  Provide dummy implementation of that
5005         interface if !USE_CPPLIB.
5006         * c-pragma.h: Update to match.
5007
5008         * flags.h: Add multiple include guard.
5009         (flag_detailed_statistics): Moved here from C++.
5010         * toplev.c: Define flag_detailed_statistics.
5011
5012         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
5013         #if USE_CPPLIB.
5014         * timevar.def (TV_CPP, TV_LEX): New.
5015         * timevar.h: Add multiple include guard.
5016
5017         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
5018         #if USE_CPPLIB.
5019         * objc/objc-act.c: Don't mention yy_cur or parse_options.
5020         Initialize cpplib properly.  Force lineno to 0 after first
5021         call to check_newline.  Don't handle -lang-objc here.
5022         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
5023
5024 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
5025
5026         * rs6000.md: Correct function unit definitions for cr_logical and
5027         mtjmpr.
5028         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
5029         and use portable method for >=0 and floating point >=.  Remove
5030         associated matchers.
5031
5032 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
5033
5034         * extend.texi: Mark named return value extension as deprecated.
5035
5036 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
5037
5038         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
5039         the result.
5040
5041 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
5042
5043         * toplev.c (display_help): Fix thinko in documentation.
5044
5045         * diagnostic.h (output_buffer::indent_skip): New fields.
5046         (output_indentation): New macro.
5047
5048         * diagnostic.c (output_indent): New function.
5049         (output_set_prefix, clear_diagnostic_info): Use.
5050         (output_emit_prefix): Predict future indentation.
5051
5052 2000-09-06  DJ Delorie  <dj@redhat.com>
5053
5054         * Makefile.in (stage_*): add more dependencies to ensure parallel
5055         builds build correctly
5056
5057 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
5058
5059         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
5060         not bootstrap-lean_f.
5061
5062 2000-09-06  Andreas Schwab  <schwab@suse.de>
5063
5064         * mklibgcc.in: Emit rule for libgcc-stage-start.
5065         * Makefile.in (stage1-start, stage2-start, stage3-start,
5066         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
5067
5068 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
5069
5070         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
5071         (update_equiv_regs): Likewise, except for the mn10200 kludge.
5072         (combine_regs): Likewise.
5073
5074         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
5075         * cse.c: Include "basic-block.h".
5076         (struct table_elt): New field REGCOST.
5077         (CHEAP_REG): Delete macro.
5078         (COST): Return 0 for REGs.
5079         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
5080         (notreg_cost): Return 0 for appropriate SUBREGs.
5081         (COSTS_N_INSNS): Return N * 2.
5082         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
5083         SUBREGs.
5084         (CHEAPER): Use new function preferrable.
5085         (insert): Initialize REGCOST member.
5086         (find_best_addr): Use approx_reg_cost for estimation of register
5087         usage.
5088         (cse_insn): Likewise.
5089         * loop.c (iv_add_mult_cost): New function.
5090         (add_cost, shift_cost, mult_cost): Delete variables.
5091         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
5092         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
5093         Make code that detects autoinc opportunities slightly less optimistic.
5094         (simplify_giv_expr): If expression contains other reg that is also a
5095         giv, only increment benefit if this is the only use of that reg.
5096         (consec_sets_giv): Take that change into account.
5097         (combine_givs): Slightly more verbose output.
5098
5099         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
5100         not the cost of an equivalent shift.
5101         * sh-protos.h (addsubcosts): Declare.
5102         * sh.c (addsubcosts): New function.
5103         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
5104         (RTX_COSTS): Tweak.  Use addsubcosts.
5105         (ADDRESS_COST): Return higher cost for reg+reg addressing.
5106
5107 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
5108
5109         * config/rs6000/rs6000.c (validate_condition_mode): New function.
5110         (branch_comparison_operator): Call validate_condition_mode to
5111         abort rather than returning 0.
5112         (branch_positive_comparison_operator): New function.
5113         (scc_comparison_operator): Call validate_condition_mode to abort
5114         rather than returning 0.
5115         (ccr_bit): Call validate_condition_mode.  Update for
5116         new branch scheme.
5117         (print_operand): Delete %C modifier.  Update %E case
5118         to use EQ bit not SO bit.
5119         (rs6000_reverse_condition): New function.
5120         (rs6000_generate_compare): New function.
5121         (rs6000_emit_sCOND): New function.
5122         (rs6000_emit_cbranch): New function.
5123         (output_cbranch): The length of a long branch insn is
5124         now only 8 bytes.  Add validate_condition_mode.  Use
5125         rs6000_reverse_condition.  Remove cror generation.
5126
5127         * config/rs6000/rs6000.h: Update comments.
5128         (PREDICATE_CODES): Add new predicate.  Update codes used
5129         by branch_comparison_operator and scc_comparison_operator.
5130         * config/rs6000/rs6000-protos.h: Add prototypes for
5131         new external functions.
5132         * config/rs6000/rs6000.md: Add new scheduling parameters
5133         for cr_logical instructions.  Change length of branch
5134         instructions.
5135         (bCOND patterns): Call rs6000_emit_cbranch.
5136         (sCOND patterns): Call rs6000_emit_sCOND.
5137         (branch patterns): Change lengths to 4.
5138         (cr logical patterns): New.
5139
5140 2000-09-06  Richard Henderson  <rth@cygnus.com>
5141
5142         * config/i386/i386.md (call_pop): Fix test for setting
5143         current_function_uses_pic_offset_table.
5144         (call, call_value_pop, call_value): Likewise.
5145
5146 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
5147
5148         * timevar.c (timevar_add): Delete.
5149         (timevar_get): Also count time since the selected timer was
5150         last updated.  Do not examine the timevar stack if the
5151         selected timer is standalone.
5152
5153 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5154
5155         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
5156
5157 2000-09-05  Jason Merrill  <jason@redhat.com>
5158
5159         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
5160         for 'extern' arrays.
5161
5162 2000-09-05  Richard Henderson  <rth@cygnus.com>
5163
5164         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
5165         Eliminate final copy from non-trapping case.
5166         (__divdf3, __divsf3): Likewise.
5167
5168 2000-09-05  Richard Henderson  <rth@cygnus.com>
5169
5170         * config/ia64/ia64.md (mulhi3): Fix typo last change.
5171         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
5172
5173 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
5174
5175         * Makefile.in: Restructure bootstrap stages to allow clean
5176         restart after failure.
5177
5178 2000-09-05  Richard Henderson  <rth@cygnus.com>
5179
5180         * config/ia64.md (movsi and movdi patterns): Allow moves from
5181         8-bit constants to AR registers.
5182
5183 2000-09-05  Richard Henderson  <rth@cygnus.com>
5184
5185         * config/ia64/ia64.md (mulhi3): New.
5186
5187 2000-09-05  Richard Henderson  <rth@cygnus.com>
5188
5189         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
5190         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
5191         Optimization Guide, minimum latency alternative.
5192         (__moddi3, __udivdi3, __umoddi3): Likewise.
5193         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
5194
5195 2000-09-05  Bruce Korb  <bkorb@gnu.org>
5196
5197         * fixinc/fixincl.c (load_file): always read header files
5198         with sizes that are a multiple of the page size.
5199         & use libiberty's getpagesize for determining that.
5200
5201 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
5202
5203         * gcse.c (hash_string_1): Add prototype.
5204         * cse.c (canon_hash_string): Likewise.
5205
5206 2000-09-04  Craig Newell  <CraigN@ieee.org>
5207
5208         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
5209
5210 2000-09-04  Andreas Schwab  <schwab@suse.de>
5211
5212         * Makefile.in (STAGESTUFF): Remove libgcc.
5213         (stage1-start, stage2-start, stage3-start): Copy the contents of
5214         the libgcc directory explicitly.
5215         (mostlyclean): Clean libgcc.
5216
5217 2000-09-04  Andrew Haley  <aph@redhat.com>
5218
5219         * dwarf2out.c: (stack_adjust_offset): New prototype.
5220
5221 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
5222
5223         * combine.c (make_extraction): Fix rtx_cost comparison to
5224         match the comment.
5225
5226 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
5227
5228         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
5229         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
5230         Add '*' to insn pattern name.
5231
5232 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
5233
5234         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
5235         use posn - 1 to index into tokens array.
5236         (maybe_paste_with_next): Adjust caller.
5237
5238 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
5239
5240         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
5241
5242         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
5243         (REGNO_REG_CLASS): Use symbolic register
5244         names.
5245
5246 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
5247
5248         * arm.c (final_prescan_insn): If the form of a jump insn isn't
5249         recognized, don't try to conditionally execute it.
5250
5251 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
5252
5253         * config/avr/avr.md ("*tablejump_lib"): New pattern.
5254         (call_value_insn): Right length claculation.
5255         (call_insn): Likewise.
5256
5257 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
5258
5259         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
5260         gas_output_limited_string, gas_output_ascii, output_movqi,
5261         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
5262         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
5263         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
5264         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
5265         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
5266         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
5267         Add "const" as needed to remove warnings.
5268
5269         * config/avr/avr.c (avr_override_options, avr_init_once,
5270         function_prologue, function_epilogue, frame_pointer_required_p,
5271         class_likely_spilled_p, order_regs_for_local_alloc,
5272         avr_address_cost, avr_ret_register): Use K&R style arguments.
5273         (initial_elimination_offset, gas_output_limited_string):
5274         Remove ATTRIBUTE_UNUSED from the used arguments.
5275         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
5276         Use local variables src, dest, base to access operands[].
5277         Rename reg_dest to reg_src if that's what it is.
5278         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
5279         constants to LD_REGS if reg_was_0.
5280         (output_reload_insisf): Change arg 3 to insn length and set it.
5281         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
5282         access to 16-bit I/O register pairs.
5283         (avr_address_cost): Lower cost for the above case.
5284         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
5285         may be clobbered, also for LD_REGS.
5286         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
5287         with a CONST_INT.
5288
5289         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
5290
5291         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
5292         macro to test_hard_reg_class function.
5293         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
5294         for loading immediate constants to LD_REGS.
5295         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
5296
5297
5298 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
5299
5300         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
5301         * config/avr/libgcc.S: Lost part of the previous patch.
5302
5303 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5304
5305         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
5306         object before calling pthread_mutex_init.
5307
5308 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
5309
5310         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
5311         config/sh/crtn.asm: New files.
5312         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
5313         (crt1.o, crti.o, crtn.o): New targets.
5314         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
5315         sh/t-elf.
5316         * configure: Rebuilt.
5317         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5318         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
5319         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
5320         Undefine for config/elfos.h to redefine.
5321         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
5322
5323 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
5324
5325         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
5326         legitimize_pic_address, output_pic_addr_const): Declare.
5327         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
5328         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
5329         (TARGET_SWITCHES): New switch -mprefergot.
5330         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
5331         (PIC_OFFSET_TABLE_REGNUM): Define.
5332         (GOT_SYMBOL_TABLE): Likewise.
5333         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
5334         (ENCODE_SECTION_INFO): Define.
5335         (FINALIZE_PIC): New macros.
5336         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
5337         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
5338         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
5339         (prepare_move_operands): Call emit_pic_move or
5340         emit_pic_const_move if appropriate.
5341         (output_far_jump): For PIC, use braf and output long offset.
5342         (machine_dependent_reorg):
5343         (sh_expand_prologue): Save and initialize the PIC register.
5344         (sh_expand_epilogue): Restore it.
5345         (initial_elimination_offset): Account for it.
5346         (nonpic_symbol_mentioned_p): New function.
5347         (legitimize_pic_address): Likewise.
5348         (output_pic_addr_const): Likewise.
5349         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
5350         (call, call_value): Use them.
5351         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
5352         symPLT_label2reg): New expands.
5353         * invoke.texi (SH Options): Document -mprefergot.
5354
5355 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
5356
5357         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
5358         * gcse.c (hash_string_1): New function.
5359         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
5360         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
5361         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
5362         (canon_hash_string): New function.
5363         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
5364         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
5365         (fold_rtx): Use ASM_OPERANDS accessor macros.
5366         * emit-rtl.c (copy_insn_1): Likewise.
5367         * integrate.c (copy_rtx_and_substitute): Likewise.
5368         * stmt.c (expand_asm_operands): Likewise.  Give an
5369         ASM_OPERANDS rtx the mode of the output reg being set from it.
5370
5371 2000-09-01  Fred Fish  <fnf@be.com>
5372
5373         * fix-header.c (write_rbrac): Add putc and getc to list of
5374         functions to protect against prior definition as a macro.
5375
5376 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
5377
5378         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
5379         (c_size_type_node): Define.
5380         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
5381         * c-common.c (enum format_lengths, enum format_std_version,
5382         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
5383         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
5384         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
5385         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
5386         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
5387         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
5388         format_types): Define.
5389         (format_char_info, print_char_table, scan_char_table,
5390         time_char_table): Rearrange for new organization of information
5391         about format length modifiers and standard versions.
5392         (T_ST): Redefine to use c_size_type_node.
5393         (check_format_info): Obtain information about length modifiers and
5394         standard versions from tables.  Adjust warning message wordings.
5395         Use the name from the user's program for `ll' and `hh' length
5396         modifiers in warning messages.  Use more informative names for
5397         wanted types where available (for wchar_t, wint_t, size_t, signed
5398         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
5399
5400 2000-09-01  Jim Wilson  <wilson@cygnus.com>
5401
5402         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
5403         * combine.c (distribute_notes): Handle REG_NORETURN.
5404         * rtl.c (reg_note_name): Add REG_NORETURN.
5405         * rtl.h (enum reg_note): Likewise.
5406
5407         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
5408         ia64_file_start.
5409         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
5410         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
5411         (emit_predicate_relation_info): Handle conditional calls with
5412         REG_NORETURN.
5413         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
5414         instead of ia64_file_start.
5415         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
5416         * config/ia64/ia64.md (safe_across_calls_all,
5417         save_across_calls_normal): New patterns.
5418
5419         * loop.c (check_final_value): Check for biv use before checking for
5420         giv use.  Check for both biv and giv uses.  Always set last_giv_use
5421         if there is a giv use.
5422
5423 2000-09-01  Richard Henderson  <rth@cygnus.com>
5424
5425         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
5426         (madddi3): Likewise.
5427         (maddsi3): New.
5428
5429 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5430
5431         * expr.c (clear_storage): Don't use emit_move_insn unless
5432         either BLKmode or proper size.
5433         (store_constructor): Don't call clear_storage if REG of wrong size.
5434
5435         * flow.c (init_propagate_block_info): Don't mark frame dead at end
5436         of function if returns wiht stack pointer depressed.
5437
5438 2000-09-01  Andrew Haley  <aph@redhat.com>
5439
5440         * dwarf2out.c (stack_adjust_offset): New function.
5441         (dwarf2out_stack_adjust): Break out stack adjust logic into
5442         new stack_adjust_offset function.  Look inside parallels and
5443         sequences for stack adjustments.
5444
5445 2000-08-31  Jeff Law <law@cygnus.com>
5446
5447         * arm.md: Use no_new_pseudos to determine when it is safe
5448         to create new pseudo registers.
5449
5450         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
5451         when we can safely allocate new registers.
5452
5453 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
5454
5455         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
5456         so that CONCATs are not generated for ASMs.
5457         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
5458         not generating_concat_p.
5459         * function.c (pop_function_context_from): Reset
5460         generating_concat_p.
5461         (prepare_function_start): Likewise.
5462         * rtl.c (generating_concat_p): Define.
5463         * rtl.h (generating_concat_p): Declare.
5464         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
5465
5466 2000-08-22  Philipp Thomas  <pthomas@suse.de>
5467             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
5468
5469         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
5470         for translation.
5471
5472 2000-08-30  Greg McGary  <greg@mcgary.org>
5473
5474         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
5475         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
5476         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
5477
5478 2000-08-30  Greg McGary  <greg@mcgary.org>
5479
5480         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
5481         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
5482         (TREE_INT_CST): New macro.
5483         * varasm.c (const_hash, compare_constant_1, record_constant_1):
5484         Use new macro TREE_INT_CST.
5485
5486 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
5487
5488         * contrib.texi: Add self.
5489
5490 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
5491
5492         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
5493         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
5494         and labels.
5495
5496 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5497
5498         * fixinc/gnu-regex.c: Don't define `const'.
5499
5500 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5501
5502         * expr.c (store_constructor): Allow variable bounds of array type.
5503         (expand_expr): Don't blow up if type is ERROR_MARK.
5504         * varasm.c (output_constructor): Don't access lower bound of array
5505         type unless need it if index is supplied (so it can be a variable
5506         if no index is supplied).
5507         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
5508         Other minor cleanups.
5509
5510 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5511
5512         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
5513         for compilations in stage 1 and subsequent stages, respectively.
5514         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
5515         * configure: Rebuilt.
5516         * x-vax, x-vax-gcc: Deleted.
5517
5518 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5519
5520         * c-common.c (declare_function_name): Use func_id_node,
5521         function_id_node, and pretty_function_id_node.  Do not make
5522         __func__ visible at file scope.
5523         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
5524         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
5525         (function_id_node, pretty_function_id_node, func_id_node): New
5526         macros.
5527         * c-decl.c (init_decl_processing): Initialize function_id_node,
5528         pretty_function_id_node, and func_id_node.
5529         (c_make_fname_decl): Correct comment.
5530
5531         * tree.h (struct tree_identifier): Constify pointer member.
5532
5533         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
5534         * c-pragma.h (struct weak_syms): Constify name and value members.
5535         (add_weak): Constify arguments.
5536
5537         * calls.c (special_function_p): Constify a char *.
5538         (expand_call): Remove variable which is initialized and then
5539         never used.
5540         * dependence.c (struct def_use, struct induction, struct subscript):
5541         Constify 'variable' member.
5542         (get_low_bound, have_induction_variable): Constify char * argument.
5543         (find_induction_variable): Add braces to avoid dangling else.
5544         (classify_dependence): Constify char * arrays.
5545         * profile.c (output_func_start_profiler): Constify a char *.
5546         * stor-layout.c (finalize_record_size): Constify a char *.
5547         * tree.c (is_attribute_p): Constify a char *.
5548         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
5549
5550         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
5551         for comprehensibility.  Do not call get_identifier if we did
5552         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
5553         create temporary string constants, not ggc_alloc_string.  No
5554         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
5555         char * to hold IDENTIFIER_POINTERs.
5556
5557 2000-08-29  Richard Henderson  <rth@cygnus.com>
5558
5559         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
5560         for the inputs.
5561
5562 2000-08-29  Richard Henderson  <rth@cygnus.com>
5563
5564         * reload.c (push_secondary_reload): Allow class == reload_class
5565         if we're using a reload_in/out pattern.
5566
5567         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
5568         the half that does not conflict with the reload register.
5569         (reload_outti): Likewise.
5570
5571 2000-08-29  Kazu Hirata  <kazu@hxi.com>
5572
5573         * reload.c: Fix formatting.
5574
5575         * stmt.c: Fix formatting.
5576
5577         * gcc.c: Fix formatting.
5578
5579 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5580
5581         * flags.h (time_report, mem_report): New global flags.
5582         * toplev.c: Define time_report and mem_report.
5583         (f_options): Add -ftime-report and -fmem-report.
5584         (compile_file): Turn on time_report if quiet_flag is off.
5585         Call ggc_print_statistics at very end if mem_report is on.
5586         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
5587
5588         * ggc-common.c (ggc_print_statistics): Rename to
5589         ggc_print_common_statistics; all callers changed.  Scale
5590         quantities above 10K to kilobytes and above 10M to megabytes.
5591         * ggc-page.c (ggc_page_print_statistics): Rename to
5592         ggc_print_statistics.  Report memory consumed by internal data
5593         structures for each allocation bucket.  Scale quantities above
5594         10K to kilobytes and above 10M to megabytes.
5595         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
5596         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
5597         Define tally_leaves always.
5598         (ggc_print_statistics): New function.
5599         * ggc.h: Adjust for renamed functions.
5600
5601 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
5602
5603         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
5604         output_movsisf instead of which_alternative.
5605
5606         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
5607
5608 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
5609
5610         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
5611         (avr_progmem_p): New prototype.
5612         (output_movsisf): Prototype declaration changed.
5613         (output_movqi): New prototype.
5614         (output_movhi): New prototype.
5615         (call_insn_operand): Likewise.
5616         (final_prescan_insn): Likewise.
5617         (avr_simplify_comparision_p): Likewise.
5618         (avr_normalize_condition): Likewise.
5619         (compare_eq_p): Likewise.
5620         (out_shift_with_cnt): Likewise.
5621         (const_int_pow2_p): Likewise.
5622         (output_reload_inhi): Prototype declaration changed.
5623
5624         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
5625         (ldi_reg_rtx): New. rtx for r31.
5626         (avr_init_stack): Initialize as "__stack".
5627         (function_prologue): Use it.
5628         Replace all TARGET_ENHANCED with AVR_ENHANCED.
5629         (avr_mcu_name): Initialize as "avr2".
5630         (avr_enhanced_p, avr_mega_p): New variables.
5631         (mcu_types, avr_override_options): Handle all known MCU types.
5632         Also handle avr1 (only preprocess, assemble and link).
5633         (print_operand): Using of `%K' in output template removed.
5634         (out_movqi_r_mr): Optimized.
5635         (out_movhi_r_mr): Likewise.
5636         (output_movqi): New function.
5637         (output_movhi): Likewise.
5638         (out_movsi_r_mr): Optimized.
5639         (output_movsisf): Compute insn length for `adjust_insn_length'
5640         (out_movqi_mr_r): Optimized.
5641         (out_movhi_mr_r): Optimized.
5642         (adjust_insn_length): Use output_movsisf, output_movqi,
5643         output_movhi for insn length adjusting.
5644         (reg_unused_after): Use dead_or_set_p.
5645         (preferred_reload_class): Now havn't any restriction.
5646         (reg_was_0): New function.
5647         (io_address_p): Likewise.
5648         (const_int_pow2_p): Likewise.
5649         (output_reload_inhi): Likewise.
5650         (output_reload_insisf): Likewise.
5651
5652         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
5653         (LIB_SPEC): Use -lc for all supported devices.
5654         (LIBGCC_SPEC): Use -lgcc for all supported devices.
5655         (AVR_MEGA): Define as avr_mega_p.
5656         (AVR_ENHANCED): New, define as avr_enhanced_p.
5657         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
5658         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
5659         (CRT_BINUTILS_SPECS): Handle all known MCU types.
5660         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
5661         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
5662         (ASM_SPEC): Pass -mmcu=... to the assembler.
5663         Change all -DAVR_* to -D__AVR_*__.
5664         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
5665         Rename library functions to start with two underscores.
5666         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
5667         alignment.
5668         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
5669         (SUPPORTS_WEAK): Likewise.
5670         (LDI_REG_REGNO): New. Register r31 will be used as temporary
5671         register for loading constants to r0-r14.
5672
5673         * config/avr/avr.md: Replace all TARGET_ENHANCED with
5674         AVR_ENHANCED.
5675         (*mov_r_sp): Removed. Handled by output_movhi.
5676         (*mov_sp_r): Likewise.
5677         (*mov_sp_r_no_interrupts): Likewise
5678         (*mov_sp_r_tiny): Likewise.
5679         (*movqi): Use output_movqi.
5680         (*reload_inqi): New.
5681         (*movhi): Use output_movhi.
5682         (*reload_inhi): New.
5683         (*negsi2): Optimized.
5684         (*negsf2): Likewise.
5685         Added peepholes (define_peephole2) for loading constants to r0-r14
5686         and for using `cpse' command.
5687
5688         * config/avr/libgcc.S: Rename library functions to start with two
5689         underscores.
5690         Add support for enhanced core.
5691         (_moqhi3): Fix typo, now _modqi3.
5692         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
5693         (__prologue_saves__): Remove test for stack adjust by 0.
5694         (__tablejump__): New.
5695
5696         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
5697         Add multilib support.
5698
5699 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
5700
5701         * loop.c (prescan_loop): Don't check unknown_address_altered
5702         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
5703         to loop_store_mems as necessary.
5704         (loop_invariant_p): Don't check unknown_address_altered
5705         or unknown_constant_address_altered.
5706
5707 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5708
5709         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
5710
5711 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5712
5713         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
5714         print just the filename.
5715         * cpplex.c (_cpp_run_directive): Add additional argument, the
5716         name to give the synthetic buffer.  This defaults to
5717         translated "<command line>".
5718         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
5719         Adjust to match.
5720         (_cpp_define_builtin): New function.
5721         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
5722         * cpphash.h: Update prototypes.
5723
5724         * tradcpp.c (main): Process -D and -U simultaneously, in the
5725         order they appeared on the command line.
5726
5727 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5728
5729         * c-decl.c (define_label): Call warning_with_file_and_line and
5730         error_with_file_and_line instead of plain warning or error.
5731
5732         * c-parse.in (label): Use save_filename/save_lineno to ensure
5733         correct values for calls to define_label.
5734
5735 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
5736
5737         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
5738         away.
5739         * expr.c (expand_expr, case TARGET_EXPR): Don't call
5740         mark_addressable.
5741         * tree.h (get_file_function_name): Remove two duplicate
5742         declarations.
5743
5744 2000-08-28  Kazu Hirata  <kazu@hxi.com>
5745
5746         * tree.c: Fix formatting.
5747
5748         * xcoffout.c: Fix formatting.
5749
5750 2000-08-28  Jason Merrill  <jason@redhat.com>
5751
5752         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
5753
5754 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5755
5756         * dwarf2out.c (dwarf2out_finish): Don't bother calling
5757         break_out_includes if it won't do anything.
5758
5759 2000-08-28  Richard Henderson  <rth@cygnus.com>
5760
5761         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
5762         (find_reloads): Likewise.
5763         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
5764         (reload_inhi): Likewise.
5765
5766 2000-08-28  Richard Henderson  <rth@cygnus.com>
5767
5768         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
5769         (call_insn_operand): Don't expect a surrounding mem.
5770         (constant_call_address_operand): Likewise.
5771         * config/i386/i386.h (PREDICATE_CODES): Update.
5772         * config/i386/i386.md (call patterns): Move the match_operand
5773         for the call destination inside the mem.
5774
5775 2000-08-28  Richard Henderson  <rth@cygnus.com>
5776
5777         * local-alloc.c (requires_inout): Don't use reserved range for
5778         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
5779         * recog.c (asm_operand_ok): Likewise.
5780         (preprocess_constraints, constrain_operands): Likewise.
5781         * regclass.c (record_reg_classes): Likewise.
5782         * reload.c (find_reloads): Likewise.
5783         * reload1.c (maybe_fix_stack_asms): Likewise.
5784         (reload_cse_simplify_operands): Likewise.
5785         * stmt.c (expand_asm_operands): Likewise.
5786
5787         * md.texi: Update constraints documentation.
5788         * tm.texi (EXTRA_CONSTRAINT): Update.
5789
5790 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5791
5792         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
5793         (print_die): If we don't know the offset of the
5794         target die, try the symbol.  Add a trailing newline.
5795         (reverse_all_dies): New fn.
5796         (dwarf2out_finish): Call it.
5797         (break_out_includes): Reorganize for clarity.
5798         (add_sibling_attributes): Don't call reverse_die_lists.
5799         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
5800         primary CU, too.
5801         * flags.h: Add flag_eliminate_dwarf2_dups.
5802         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
5803
5804 2000-08-28  Jason Merrill  <jason@redhat.com>
5805
5806         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
5807         * dwarf2out.c: #include "md5.h".
5808         (DIE_LABEL_PREFIX): New macro.
5809         (dw_val_struct): Add 'external' flag to val_die_ref.
5810         (add_AT_die_ref, AT_ref): Adjust.
5811         (AT_ref_external, set_AT_ref_external): New fns.
5812         (build_abbrev_table): Call set_AT_ref_external.
5813         (value_format): Call AT_ref_external.
5814         (die_struct): Add die_symbol field.
5815         (new_die): Clear it.
5816         (dwarf_tag_name): Handle BINCL/EINCL.
5817         (dwarf2out_start_source_file): Add BINCL DIE.
5818         (dwarf2out_end_source_file): Add EINCL DIE.
5819         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
5820         (loc_checksum, attr_checksum, die_checksum): New fns.
5821         (is_type_die, is_comdat_die, is_symbol_die): New fns.
5822         (compute_section_prefix, assign_symbol_names): New fns.
5823         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
5824         (output_die): Call output_die_symbol and AT_ref_external.
5825         (output_comdat_comp_unit): New fn, split out from...
5826         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
5827         secondary CUs.
5828         (output_pubnames, output_aranges): Abort if we see entries from
5829         secondary CUs.
5830         * toplev.h: Declare file_name_nondirectory.
5831         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
5832         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
5833         (debug_start_source_file): Call dwarf2out_start_source_file
5834         regardless of debug verbosity.
5835         (debug_end_source_file): Similarly.
5836         * tree.h: Declare clean_symbol_name.
5837         * tree.c (clean_symbol_name): Split out from...
5838         (get_file_function_name_long): ...here.
5839
5840         * dwarf2out.c (new_loc_descr): Use calloc.
5841         (splice_child_die): Remove the die from the right parent.
5842         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
5843
5844 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5845
5846         * toplev.c (decode_g_option): Don't give warning for unknown -g
5847         option; return 0 instead.
5848         (main): If -g option is not recognized by front end or
5849         language-independent code, give warning.
5850
5851 2000-08-28  Greg McGary  <greg@mcgary.org>
5852
5853         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
5854         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
5855         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
5856
5857 2000-08-27  Greg McGary  <greg@mcgary.org>
5858
5859         * cpplex.c (parse_string): Don't look for backslash
5860         before first char in `namebuf'.
5861         * loop.c (strength_reduce): Skip NOTEs.
5862
5863 2000-08-27  Jason Merrill  <jason@redhat.com>
5864
5865         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
5866         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
5867         TREE_ASM_WRITTEN, either.
5868         (finish_decl): Adjust.
5869
5870 2000-08-28  Philipp Thomas  <pthomas@suse.de>
5871
5872         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
5873         they have been incorporated into the gettext CVS. Change the text to
5874         reflect the current status of NLS. Add instructions for accessing
5875         the gettext CVS and add the patch from Martin v. Loewis.
5876
5877 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
5878
5879         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
5880         by using gen_lowpart_common.
5881         (movdi_internal64+6): Likewise.
5882
5883 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
5884
5885         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
5886         Document.
5887
5888         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
5889         numbers to the ranges used by GDB.
5890
5891 2000-08-25  Richard Henderson  <rth@cygnus.com>
5892
5893         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
5894         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
5895         (ia64_expand_prologue): Likewise.
5896         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
5897         argument for stdargs.
5898
5899 2000-08-25  Jason Merrill  <jason@redhat.com>
5900
5901         * integrate.c (expand_inline_function): Pull out the original decl.
5902
5903 2000-08-25  Jim Wilson  <wilson@cygnus.com>
5904
5905         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
5906
5907         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
5908
5909 2000-08-25  Greg McGary  <greg@mcgary.org>
5910
5911         * flow.c (dump_edge_info): Use ARRAY_SIZE.
5912         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
5913
5914 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
5915
5916         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
5917
5918 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
5919
5920         * i386.c (ix86_find_base_term): New.
5921         * i386-protos.h (ix86_find_base_term): Prototype.
5922         * i386.h (FIND_BASE_TERM): Define.
5923         * alias.c (find_base_term): Use it.
5924         * tm.texi (FIND_BASE_TERM): Document it.
5925
5926         * alias.c (true_dependence, write_dependence_p): Unchanging
5927         memory can't conflict with non-unchanging memory.
5928
5929         * alias.c (memrefs_conflict_p): A BLKmode reference
5930         to a symbol (or CONST_INT address) always conflicts
5931         with a reference to another symbol.
5932
5933 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5934
5935         * c-common.c (time_char_table): Don't allow width and flags with
5936         "z" format.
5937
5938 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
5939
5940         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
5941         way as LT and LTU when the second operand has 0 in low word.
5942
5943 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5944
5945         * basic-block.h (struct loop): Rename `exits' field to
5946         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
5947
5948         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
5949         (flow_loop_entry_edges_find): Add.
5950         (flow_edge_list_print): Rename from flow_exits_print.
5951         (flow_loops_find): Call flow_loop_entry_edges_find.
5952         (flow_loop_dump): Dump entry_edges list.
5953         (flow_loops_free): Free entry_edges.
5954
5955 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5956
5957         * loop.c (loop_dump_aux, debug_loop): New functions.
5958         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
5959
5960         * flow.c (flow_loops_dump): Add callback parameter.
5961         (flow_loop_dump): Add callback parameter and call it.  Move
5962         loop note debugging code to loop_dump_aux.
5963
5964         * basic-block.h (flow_loop_dump): Add callback parameter
5965         (flow_loops_dump): Likewise.
5966
5967         * toplev.c (rest_of_compilation): Add NULL callback function pointer
5968         to call to flow_loops_dump.
5969
5970 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5971
5972         * loop.c (count_loop_regs_set): Replace start and end arguments
5973         with loop argument.  All callers udated.
5974
5975 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5976
5977         * loop.c (constant_high_bytes): Delete.
5978
5979 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5980
5981         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
5982         and NOTE_INSN_LOOP_VTOP to...
5983         (find_and_verify_loops) ...here.
5984
5985 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
5986
5987         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
5988         (fini_dummy, init_dummy): Use it.
5989
5990 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
5991
5992         * cpplex.c (is_macro_disabled): Caller has already checked
5993         that we're not a preprocessed file.
5994
5995 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
5996
5997         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
5998         (c-iterate.o): Remove target.
5999         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
6000         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
6001         (finish_decl): Don't handle iterators.
6002         (grokdeclarator): Likewise.
6003         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
6004         * gcc/c-gperf.h: Regenerated.
6005         * gcc/c-iterate.c: Removed.
6006         * gcc/c-lex.c (init_lex): Don't handle iterators.
6007         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
6008         (compstmt_primary_start): Remove push_iterator_stack call.
6009         (stmt): Don't allow iterator statements.  Replace iterator_expand
6010         with expand_expr_stmt.
6011         (all_iter_stmt): Remove.
6012         (all_iter_stmt_simple): Likewise.
6013         (all_iter_stmt_with_decl): Likewise.
6014         * gcc/c-tree.h (ITERATOR_P): Remove.
6015         (ITERATOR_BOUND_P): Likewise.
6016         (init_iterators): Remove declaration.
6017         (iterator_expand): Likewise.
6018         (iterator_for_loop_start): Likewise.
6019         (iterator_for_loop_end): Likewise.
6020         (iterator_for_loop_record): Likewise.
6021         (push_iterator_stack): Likewise.
6022         (pop_iterator_stack): Likewise.
6023         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
6024         (readonly_warning): Likewise.
6025         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
6026
6027 2000-08-24  Jim Wilson  <wilson@cygnus.com>
6028
6029         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
6030         Copy type in a TYPE_DECL, just like pushdecl does.
6031
6032 2000-08-24  Richard Henderson  <rth@cygnus.com>
6033
6034         * toplev.c (main): Enable flag_reorder_blocks at -O2.
6035
6036 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
6037
6038         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
6039         asked for one page, allocate GGC_QUIRE_SIZE of them and put
6040         the extras on the free list.
6041         (release_pages): Clean up.
6042         (ggc_set_mark): Don't adjust G.allocated here...
6043         (sweep_pages): ... do it here.
6044
6045 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
6046
6047         * cppfiles.c (read_include_file): Rearrange initializations.
6048
6049 2000-08-24  Richard Henderson  <rth@cygnus.com>
6050
6051         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
6052
6053         * config/ia64/ia64-protos.h: Update.
6054         * config/ia64/ia64.c (gr_register_operand): New.
6055         (fr_register_operand, grfr_register_operand): New.
6056         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
6057         (grfr_reg_or_8bit_operand): New.
6058         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
6059         use gr_register_operand.
6060         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
6061         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
6062         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
6063         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
6064         (fr_reg_or_fp01_operand): Likewise.
6065         (not_postinc_memory_operand): New.
6066         (ia64_split_timode): Remove unused variables.
6067         (rtx_needs_barrier): Check arguments to cmpxchg.
6068         (builtin_description): Remove.
6069         (bdesc_2argsi, bdesc_2argdi): Remove.
6070         (ia64_init_builtins): Declare all builtins directly.
6071         (ia64_expand_fetch_and_op): Rewrite to be called from
6072         ia64_expand_builtin directly.  Use expand_binop and co.
6073         (ia64_expand_op_and_fetch): Likewise.
6074         (ia64_expand_compare_and_swap): Likewise.
6075         (ia64_expand_binop_builtin): Remove.
6076         (ia64_expand_lock_test_and_set): New.
6077         (ia64_expand_lock_release): New.
6078         (ia64_expand_builtin): Use them.
6079         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
6080         (EXTRA_CONSTRAINT): Use it.
6081         (PREDICATE_CODES): Update.
6082         * config/ia64/ia64.md (*): Use gr_register_operand and co.
6083         (mf): Indicate that we set memory as well as use it.
6084         (fetchadd_acq_si): Show memory being modified as well.
6085         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
6086         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
6087         (lock_test_and_set_si, lock_test_and_set_di): Remove.
6088         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
6089         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
6090         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
6091         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
6092         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
6093         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
6094         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
6095         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
6096         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
6097         return type.  Pretty print definitions.
6098
6099 2000-08-24  Jim Wilson  <wilson@cygnus.com>
6100
6101         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
6102         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
6103
6104 2000-08-24  Jason Merrill  <jason@redhat.com>
6105
6106         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
6107         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
6108         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
6109         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
6110
6111 2000-08-24  Greg McGary  <greg@mcgary.org>
6112
6113         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
6114         and extendtab within their proper array boundaries.
6115         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
6116         for the entire array.
6117
6118         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
6119         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
6120         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
6121         * config/fr30/fr30.c (fr30_print_operand): Likewise.
6122         * config/i386/dgux.c (output_options): Likewise.
6123         * config/i386/dgux.h (ASM_FILE_START): Likewise.
6124         * config/m88k/m88k.c (output_options): Likewise.
6125         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
6126         * config/mcore/mcore.c (mcore_output_inline_const_forced,
6127         layout_mcore_frame, handle_structs_in_regs): Likewise.
6128         * config/mips/mips.c (output_block_move): Likewise.
6129         * config/rs6000/rs6000.c (rs6000_override_options,
6130         rs6000_file_start): Likewise.
6131         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
6132         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
6133         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
6134         * builtins.c (expand_builtin_setjmp): Likewise.
6135         * expr.c (safe_from_p): Likewise.
6136         * flow.c (life_analysis): Likewise.
6137         * fold-const.c (size_int_type_wide): Likewise.
6138         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
6139         * genattrtab.c (make_length_attrs): Likewise.
6140         * genopinit.c (gen_insn): Likewise.
6141         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
6142         * global.c (global_alloc): Likewise.
6143         * local-alloc.c (find_free_reg): Likewise.
6144         * mips-tdump.c (print_symbol): Likewise.
6145         * mips-tfile.c (parse_def, parse_input): Likewise.
6146         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
6147         * stmt.c (expand_nl_goto_receiver): Likewise.
6148         * stor-layout.c (set_sizetype): Likewise.
6149         * varasm.c (decode_reg_name): Likewise.
6150         * toplev.c (decode_f_option, decode_W_option,
6151         set_target_switch, print_switch_values): Likewise.
6152         (NUM_ELEM): Remove macro.
6153         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
6154
6155 2000-08-24  Greg McGary  <greg@mcgary.org>
6156
6157         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
6158         (MAIN_NAME_P, main_identifier_node): New macros.
6159         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
6160         * c-decl.c (start_decl, grokdeclarator, start_function,
6161         store_parm_decls, finish_function): Use MAIN_NAME_P.
6162         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
6163         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
6164         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
6165         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
6166
6167 2000-08-24  Greg McGary  <greg@mcgary.org>
6168
6169         * cppfiles.c (actual_directory): Don't write beyond `dir'
6170         when it contains "".
6171         * real.c (asctoeg): Stay within bounds of etens[][].
6172
6173 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6174
6175         * dependence.c (dependence_string, direction_string,
6176         dump_one_node, dump_node_dependence): Hide unused identifiers.
6177         (get_low_bound, normalize_coefficients): Match definition to
6178         static prototype.
6179         (get_one_coefficient): Initialize variables `value0_is_idx' and
6180         `value1_is_idx'.
6181         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
6182         (ziv_test): Delete variable `idx', use parameter `sub' instead.
6183         (direction_merge): Avoid automatic aggregate initialization.
6184         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
6185         Initialize variables `dest_idx' and `src_idx'.
6186         (end_dependence_analysis): Avoid C89 style function definition.
6187
6188 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
6189
6190         * c-common.c (time_char_table): Don't allow width with %F.
6191         (check_format_info): Don't allow "Z" length with scanf.
6192
6193 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
6194
6195         * diagnostic.c (finish_diagnostic): Define.
6196         (output_do_printf): Use wrap_text instead of output_add_string.
6197         (default_print_error_function): Avoid embedded '\n'.
6198
6199         * diagnostic.h (flush_diagnostic_buffer): Declare.
6200
6201 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
6202
6203         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
6204
6205 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
6206
6207         * Makefile.in (GCC_PASSES): Add specs.
6208
6209 2000-08-23  Jim Wilson  <wilson@cygnus.com>
6210
6211         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
6212         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
6213         EHANDLER nor UHANDLER bit is set.
6214         (__get_except_table): Likewise.
6215
6216 2000-08-23  Nick Clifton  <nickc@redhat.com>
6217
6218         * config/arm/lib1funcs.asm: Replace upper case condition codes
6219         with lower case versions.
6220
6221         * config/arm/arm.h (STRUCT_VALUE): Define.
6222         (STRUCT_VALUE_REGNUM): Delete.
6223
6224 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
6225
6226         * cpphash.h (IN_I): New flag for directive table.
6227         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
6228         #pragma with IN_I.
6229         (_cpp_check_directive): If -fpreprocessed, execute directives
6230         marked with IN_I.  Issue no warnings in this case.
6231         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
6232
6233 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
6234
6235         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
6236         %u.
6237         (check_format_info): Support printf 'I' flag; warn about it with
6238         -pedantic.
6239
6240 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
6241
6242         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
6243         barrier can't be ignored by the alias analysis code.
6244
6245 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
6246
6247         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
6248         works inside fixincl.
6249
6250 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
6251
6252         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
6253         simplify_relational_operation() unless both operands are of
6254         VOIDmode.
6255         * cse.c (fold_rtx): Likewise.
6256
6257 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
6258
6259         * rtlanal.c (rtx_unstable_p): The pic register is stable
6260         (within one function) and the actual rtx should be used
6261         when checking the registers.
6262         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
6263
6264         * alias.c (true_dependence, write_dependence_p): Fix
6265         bug in previous patch.
6266
6267         * i386.c (ix86_GOT_alias_set): New.
6268         (legitimize_pic_address): Use it.
6269
6270         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
6271         only stable if its address is stable.
6272         (rtx_varies_p): An unchanging MEM can't vary if
6273         its address doesn't vary.
6274
6275 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6276
6277         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
6278
6279 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6280
6281         * vax.h (ASM_SPEC): Pass `-J' to assembler.
6282         * x-vax-gcc: New file for bootstrapping with gcc.
6283         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
6284         * configure.in: Use x-vax-gcc with gcc.
6285         * configure: Rebuilt.
6286
6287 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6288
6289         * toplev.c (rest_of_compilation): Rebuild label notes after
6290         post-reload splitting pass if new labels have been created.
6291
6292 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
6293
6294         * diagnostic.h (output_buffer_state): New macro.
6295         * diagnostic.c (diagnostic_for_decl, sorry,
6296         default_print_error_function, output_do_verbatim,
6297         report_diagnostic, report_problematic_module): Use it.
6298         (wrap_text): Tweak.
6299         (output_format): Use wrap_text instead of maybe_wrap_text.
6300
6301 2000-08-22  Nick Clifton  <nickc@redhat.com>
6302
6303         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
6304         Common code for ARM divide and modulus functions.
6305         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
6306         ARM_DIV_MOD_BODY.
6307         (FUNC_END): New macro: Common code at the end of the division and
6308         modulo functions.
6309         (THUMB_FUNCTION_START): New macro:  Common code at the start of
6310         Thumb functions.
6311         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
6312
6313 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
6314
6315         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
6316
6317         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
6318         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
6319         const0_rtx.
6320
6321 2000-08-22  Nick Clifton  <nickc@redhat.com>
6322
6323         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
6324         restorative additions, test for bottom bits of IP being set,
6325         rather than relying upon the RORs not matching.
6326         (__modsi3): Ditto.
6327
6328 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
6329
6330         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
6331         text_section() as appropriate instead of emitting text csect
6332         pseudo-op directly.
6333         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
6334         (UNIQUE_SECTION): Define macro.
6335         (ASM_OUTPUT_SECTION_NAME): Define macro.
6336         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
6337         on AIX if debugging and -fdata-sections always.
6338
6339 2000-08-22  Steven King  <sxking@uswest.net>
6340
6341         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
6342         machinery.
6343         (LDBL_MAX): Same here.
6344
6345 2000-08-22  Richard Henderson  <rth@cygnus.com>
6346
6347         * flow.c (tidy_fallthru_edge): Update b->end properly.
6348
6349 2000-08-22  Stan Cox  <scox@redhat.com>
6350
6351         * Makefile.in (OBJS): Add dependence.o.
6352         * dependence.c: New file.
6353
6354 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
6355
6356         * calls.c (check_sibcall_argument_overlap_1): Adjust for
6357         ARGS_GROW_DOWNWARD.
6358         (check_sibcall_argument_overlap): Likewise.
6359
6360 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
6361
6362         * invoke.texi (SH Options): Document -m4-nofpu,
6363         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
6364         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
6365
6366 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
6367
6368         * c-common.c (check_format_info): Give the 'some locales' warning
6369         for strftime %Ey rather than the unconditional 'only last 2 digits
6370         of year' one.
6371
6372 2000-08-22  Richard Henderson  <rth@cygnus.com>
6373
6374         * alias.c (init_alias_analysis): Do not register
6375         struct_value_incoming_rtx or static_chain_rtx as pointing
6376         to stack memory.
6377
6378 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
6379
6380         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
6381
6382 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
6383
6384         * diagnostic.h (report_problematic_module): Declare.
6385         * diagnostic.c (report_problematic_module): New function.
6386         (report_error_function): Tweak.
6387
6388 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6389
6390         * stmt.c (expand_goto_internal, fixup_gotos): Only check
6391         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
6392
6393 2000-08-21  Richard Henderson  <rth@cygnus.com>
6394
6395         * flow.c (calculate_global_regs_live): Mark frame pointer live
6396         everywhere before reload.
6397
6398 2000-08-21  Jim Wilson  <wilson@cygnus.com>
6399
6400         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
6401         INTEL_EXTENDED_IEEE_FORMAT.
6402         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
6403         clear last two bytes of output FP value.
6404
6405 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
6406
6407         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
6408
6409 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
6410
6411         * unroll.c (loop_find_equiv_value): If ret is modified between
6412         insn and loop_start, ret might not be equivalent to reg.
6413
6414 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6415
6416         * c-common.c (init_dollar_format_checking,
6417         maybe_read_dollar_number, finish_dollar_format_checking): New
6418         functions.
6419         (dollar_arguments_used, dollar_arguments_count,
6420         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
6421         New variables.
6422         (check_format_info): Support $ formats for scanf and printf width
6423         and precision.  Always increment format_chars to advance past the
6424         '*' of precision, not just when the format parameters are
6425         available to check.
6426
6427 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6428
6429         * mips.c (block_move_loop, expand_block_move,
6430         function_arg_partial_nregs, save_restore_insns, function_prologue,
6431         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
6432         constant suffix.
6433         (function_arg_advance, function_arg): Match argument to format
6434         specifier `%p'.
6435
6436 2000-08-21  Nix  <nix@esperi.demon.co.uk>
6437
6438         * gcc.c (do_spec_1): Implement %j spec flag.
6439         Remove dead comment.
6440
6441         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
6442         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
6443         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
6444         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
6445
6446         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
6447         writable) instead of hardcoded value.
6448
6449         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
6450
6451         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
6452         MKTEMP_EACH_FILE.
6453
6454         * gcc.c (cc1_options): Do not process -o or run the assembler if
6455         -fsyntax-only.
6456         * objc/lang-spec.h: Likewise.
6457
6458 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
6459
6460         * fixinc/fixincl.c (fix_with_system): Pipe the output of
6461         "external" fixes through `cat', to avoid truncating the input
6462         file by redirection.
6463
6464 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
6465
6466         * config/i386/i386.md (lea_general_1): Copy insn condition to split
6467         condition.
6468         (lea_general_2, lea_general_3): Likewise.
6469
6470 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6471
6472         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
6473         warnings to user code.
6474
6475         * c-lex.c (readescape, yylex): Likewise.
6476
6477         * c-typeck.c (store_init_value, process_init_element): Likewise
6478         (c_expand_start_case): Format.
6479
6480 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6481
6482         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
6483
6484         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
6485         and linker_endian_spec to endian_spec.
6486         (ENDIAN_SPEC): Add %{EB} and %{EL}.
6487         (LINK_SPEC): Remove %{EB} and %{EL}.
6488         (ASM_SPEC): Likewise.  Use %(endian_spec).
6489
6490 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6491
6492         * c-tree.h (flag_hosted): Move declaration from here...
6493         * c-common.h (flag_hosted): ... to here.
6494         (flag_noniso_default_format_attributes): New declaration.
6495         * c-decl.c (flag_noniso_default_format_attributes): New variable.
6496         (c_decode_option): Set it appropriately for options choosing
6497         language standard variant.
6498         * c-common.c (init_function_format_info): Only provide default
6499         format attributes if flag_hosted.  Only provide the gettext
6500         formats if flag_noniso_default_format_attributes.  Update
6501         comments.
6502         (check_format_info): Disable treatment of %a as a scanf flag in
6503         C99 mode.
6504
6505 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6506
6507         * c-common.c (scan_char_table): Add 'w' to flags for all formats
6508         except 'n'.
6509         (check_format_info): Set 'wide' for scanf format widths.  Warn for
6510         a zero scanf width.  Make the check for writing into a constant
6511         object at the first level of indirection; at later levels, warn if
6512         any type qualifiers are encountered.
6513
6514 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
6515
6516         * reload.c (reload_inner_reg_of_subreg): New function broken out of
6517         push_reload.
6518         (push_reload): Use reload_inner_reg_of_subreg.
6519         (combine_reloads): Do not combine reloads if the input reload
6520         is a SUBREG in which the inner part will need reloading.
6521
6522         * global.c (global_alloc): Avoid passing dumpfile argument to
6523         reload routines.
6524         * toplev.c (rest_of_compilation): Likewise.
6525         * reload.h (reload): Remove dumpfile argument.  Callers changed.
6526         (debug_reload, debug_reload_to_stream): Move prototypes here.
6527         * rtl.h  (reload): Remove dumpfile argument.
6528         * reload.c (debug_reload): Remove prototype.
6529         (debug_reload_to_stream): Likewise.
6530         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
6531         instead.
6532
6533 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6534
6535         * diagnostic.c (context_as_prefix): Export.
6536         (need_error_newline): Remove.
6537         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
6538         (error_module_changed, record_last_error_module,
6539         error_function_changed, record_last_error_function): New functions.
6540         (initialize_diagnostics): Default intialize
6541         lang_diagnostic_starter, lang_diagnostic_finalizer.
6542         (init_output_buffer): Tweak.
6543         (file_name_as_prefix): New function.
6544         (announce_function, default_print_error_function,
6545         report_error_function, set_diagnostic_context): Tweak.
6546
6547 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
6548
6549         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
6550         condition expression.
6551
6552 2000-08-20  Richard Henderson  <rth@cygnus.com>
6553
6554         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
6555
6556 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
6557
6558         * cppinit.c (cpp_init): Set global flag when called.
6559         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
6560
6561 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
6562
6563         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
6564         before `process_directive' so that newlines won't be missed
6565         for directives.
6566         (cpp_printf): Increment `print->lineno' when newline is emitted.
6567
6568         * cppmain.c (cb_ident): Likewise.
6569         (cb_define): Likewise.
6570         (cb_undef): Likewise.
6571         (cb_include): Likewise.
6572         (cb_def_pragma): Likewise.
6573         (dump_macros_helper): Likewise.
6574
6575 2000-08-20  Richard Henderson  <rth@cygnus.com>
6576
6577         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
6578         assigned before a loop.
6579
6580         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
6581         (ashrsi3, lshrsi3): Likewise.
6582
6583 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
6584
6585         * c-lang.c: #include diagnostic.h
6586         (c_tree_printer): New function.
6587         (lang_init): Initialize lang_printer.
6588
6589         * Makefile.in (c-lang.o): Depends on diagnostic.h
6590
6591 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
6592
6593         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
6594
6595         * diagnostic.c (default_diagnostic_starter,
6596         default_diagnostic_finalizer): New functions.
6597         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
6598         (pedwarn, pedwarn_with_file_and_line, error,
6599         error_with_file_and_line, fatal, warning,
6600         warning_with_file_and_line): Adjust call to report_diagnostic.
6601         (report_diagnostic): Rework.
6602         (set_diagnostic_context): New function.
6603
6604         * diagnostic.h (struct diagnostic_context): New data structure.
6605         (diagnostic_message, diagnostic_argument_list,
6606         diagnostic_file_location, diagnostic_line_location,
6607         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
6608         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
6609         (set_diagnostic_context): Declare.
6610         (report_diagnostic): Change prototype.
6611
6612 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
6613
6614         * fix-header.c (main): Initialize cpplib.
6615
6616 2000-08-19  Michael Meissner  <meissner@redhat.com>
6617
6618         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
6619         instructions in it before checking for indirect jumps.
6620
6621         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
6622         in a indirect jump as a potential for conditional execution.
6623
6624         * d30v.h (d30v_init_expanders): Don't declare here.
6625         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
6626         prototype.
6627
6628 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
6629
6630         * cpp.texi: Add @section for assertions.
6631
6632 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
6633
6634         * loop.c (scan_loop): Use CONST_CALL_P instead of
6635         checking for REG_LIBCALL / REG_RETVAL.
6636
6637 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
6638
6639         * reload1.c (reload_as_needed): Accept dumpfile argument,
6640         pass it to emit_reload_insns.
6641         (emit_reload_insns): Add new dumpfile argument.  If non-null
6642         then dump the reloads for each insn into the dumpfile.
6643         (reload): Pass dumpfile to reload_as_needed.
6644
6645         * invoke.texi: Clean up linux-gnu vs linux comments.
6646
6647 2000-08-19  Richard Henderson  <rth@cygnus.com>
6648
6649         * config/ia64/ia64.c (reg_or_5bit_operand): New.
6650         (ia64_depz_field_mask): New.
6651         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
6652         (PREDICATE_CODES): Update.
6653         * config/ia64/ia64.md: Update commentary.
6654         (depz_internal): New.
6655         (ashlsi3): Implement directly.
6656         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
6657         (ashldi3): Use shladd.
6658         * config/ia64/ia64-protos.h: Update.
6659
6660 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6661
6662         * toplev.c (independent_decode_option): Always process -g.
6663         Remove third argument, now unused.  Adjust caller to match.
6664
6665 2000-08-18  Richard Henderson  <rth@cygnus.com>
6666
6667         * combine.c (make_compound_operation): Break after creating
6668         the extraction.
6669
6670 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6671
6672         * cpplib.c (cpp_register_pragma_space): Just return if the
6673         namespace is already registered.
6674
6675 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
6676
6677         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
6678         constant amount.  Do not generate ROTL instruction.
6679
6680 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
6681
6682         * config/sh/elf.h: Do not include sh/sh.h.
6683         * config/sh/rtems.h: Likewise.
6684         * config/sh/rtemself.h: Do not include sh/elf.h.
6685         * configure.in: Get them included with `tm_file's.
6686         * configure: Rebuilt.
6687
6688         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
6689         * config/sh/sh.c (fpscr_set_from_mem): Use them.
6690
6691 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6692
6693         * stor-layout.c (compute_record_type): Don't use mode of single
6694         field as mode of record if not integer mode of same type.
6695
6696         * regmove.c (perhaps_ends_bb_p): New function.
6697         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
6698         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
6699         (fixup_match_1): Likewise.
6700         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
6701         avoid signed/unsigned warnings.
6702
6703         * function.c (fixup_var_refs_1, case MEM): Update CODE after
6704         updating X.
6705
6706 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
6707
6708         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
6709         (_cpp_trigraph_map): Declaration moved from cpplex.c
6710
6711         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
6712         instead of 256.  Use consistent test for designated initializers.
6713         (cpp_init): Initialize trigraph_map.
6714         (initialize_standard_includes, parse_option):  Use memcmp
6715         instead of strncmp.
6716
6717         * cpplex.c (init_trigraph_map): Remove.
6718         (trigraph_ok, trigraph_replace, lex_line): Refer to
6719         _cpp_trigraph_map.
6720
6721         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
6722         (do_unassert): Remove unused "next" local.
6723
6724         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
6725
6726 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
6727
6728         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
6729         insn.
6730
6731 2000-08-17  Richard Henderson  <rth@cygnus.com>
6732
6733         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
6734         the first insn in a sequence.
6735
6736 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
6737
6738         * alias.c (true_dependence, write_dependence_p): A read
6739         involving a label_ref or the constant pool doesn't create
6740         a dependency.
6741
6742         * rtl.h (unchanging): Improve documentation.
6743
6744 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
6745
6746         * cse.c (insert_regs): Remove unused `regno'.
6747
6748 2000-08-17  Neil Booth  <NeilB@earthling.net>
6749
6750         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
6751         remove_dup_dirs.  If qtail == brack, remove brack not
6752         qtail.
6753         (remove_dup_dir, remove_dup_dirs): New functions.
6754
6755 2000-08-17  Neil Booth  <NeilB@earthling.net>
6756
6757         * cppinit.c (cpp_cleanup): Free include dir chains.
6758         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
6759         (do_unassert): Free the assert with _cpp_free_definition.
6760         * cppmacro.c (_cpp_free_definition): Free memory allocated for
6761         assertions.  Make the node a T_VOID node.
6762
6763 2000-08-17  Neil Booth  <NeilB@earthling.net>
6764
6765         * cppinit.c (path_include, append_include_chain):
6766         Remove 2nd parameter (struct cpp_pending *).
6767         (path_include, initialize_standard_includes, cpp_handle_option):
6768         Update callers appropriately.
6769         (cpp_handle_option): Use pend.
6770
6771 2000-08-17  Neil Booth  <NeilB@earthling.net>
6772
6773         * cppinit.c (sort_options): Remove, put functionality in
6774         cpp_init.
6775         (cpp_init): New.
6776         (initialize_builtins): Free memory.
6777         (cpp_start_read): Move init_IStable to cpp_init.
6778
6779         * cpplib.h (cpp_init): New prototype.
6780         * cppmain.c (main): Call cpp_init.
6781
6782 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
6783
6784         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
6785         (rtx_unstable_p, rtx_varies_p): Process vectors.
6786
6787 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
6788
6789         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
6790         references to GLOBAL symbols.  Use LOCAL where appropriate.
6791
6792 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6793
6794         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
6795         use t-aix41 when host == target.
6796
6797 2000-08-16  Richard Henderson  <rth@cygnus.com>
6798
6799         * reload.c (push_secondary_reload): Revert last change.
6800         If we use a reload_in/out pattern, make the when the same
6801         as the primary reload.
6802         (find_reloads): Likewise.
6803
6804 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
6805
6806         * configure.in (libstdcxx-v3): Fix test.
6807         * configure: Regenerate.
6808
6809 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6810
6811         * calls.c (calls_function_1, expand_call): Only test
6812         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
6813         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6814
6815 2000-08-16  Richard Henderson  <rth@cygnus.com>
6816
6817         * combine.c (simplify_shift_const): Revert previous two
6818         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
6819         before the main loop.
6820
6821 2000-08-15  Richard Henderson  <rth@cygnus.com>
6822
6823         * combine.c (simplify_shift_const): Bound shift count when
6824         combining shifts.
6825
6826 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6827
6828         * calls.c (ECF_SP_DEPRESSED): New macro.
6829         (calls_function_1): Treat calling sp-depressed function as alloca.
6830         (emit_call_1): Don't adjust SP if calling sp-depressed function.
6831         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
6832         If sp-depressed, ensure block saves and restores SP.
6833         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
6834         for INTEGER_TYPE.
6835         * function.c (keep_stack_depressed): New function.
6836         (thread_prologue_and_epilogue_insns): Call it.
6837         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
6838         to print DECL_OFFSET_ALIGN.
6839         Print no-force-blk and transparent-union flags properly.
6840         * stmt.c (expand_goto_internal): Don't restore stack if last block
6841         and function returns with sp depressed.
6842         (fixup_gotos): Likewise.
6843         (save_stack_pointer): New function, from code in expand_decl.
6844         (expand_decl): Call new function.
6845         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
6846         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
6847         (save_stack_pointer): New declaration.
6848
6849         * diagnostic.c (fatal_function): New variable.
6850         (set_fatal_function): New function.
6851         (fatal): Call it.
6852         * diagnostic.h (set_fatal_function): New declaration.
6853
6854 2000-08-15  William Cohen  <wcohen@redhat.com>
6855
6856         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
6857         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
6858         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
6859
6860 2000-08-15  Richard Henderson  <rth@cygnus.com>
6861
6862         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
6863
6864 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6865
6866         * arm.c (arm_function_ok_for_sibcall): New function.
6867         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
6868         * arm.md (call expanders): Don't check here for calls that can't
6869         be sibling calls.
6870
6871 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6872
6873         * arm.md (splits generating cond_exec): Disable.
6874
6875 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6876
6877         * arm/linux-elf.h (text_section): Delete declaration.
6878
6879 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6880
6881         ARM support for unordered FP operations.
6882         * arm-protos.h (arm_comparison_operator): Declare.
6883         * arm.c (arm_comparison_operator): New function.
6884         (arm_select_cc_mode): Add unordered comparison codes.
6885         (get_arm_condition_code): Likewise.
6886         (arm_final_prescan_insn): Can't handle unordered jumps that can't
6887         be done in one insn.
6888         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
6889         * arm.md (all uses of comparison_operator): Replace with
6890         arm_comparison_operator.
6891         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
6892         expands.
6893         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
6894         patterns.
6895
6896 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6897
6898         * gthr-posix.h: Conditionally include <sched.h>; include
6899         <config.h> from libobjc/.
6900
6901 2000-08-14  Richard Henderson  <rth@cygnus.com>
6902
6903         * config/i386/i386.c (legitimize_pic_address): Use Pmode
6904         for all CONSTs.
6905
6906 2000-08-14  Richard Henderson  <rth@cygnus.com>
6907
6908         * configure.in (ia64-*): Set float_format for i386 long double.
6909
6910         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
6911         as we would for i386 XFmode.
6912         (PUT_REAL): Likewise.
6913         (endian, ereal_atof, real_value_truncate): Likewise.
6914         (ereal_isneg, toe64, etens, make_nan): Likewise.
6915         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
6916
6917         * config/ia64/ia64-protos.h: Update.
6918         * config/ia64/ia64.c (general_tfmode_operand): New.
6919         (destination_tfmode_operand): New.
6920         (tfreg_or_fp01_operand): New.
6921         (ia64_split_timode): New.
6922         (spill_tfmode_operand): New.
6923         (ia64_expand_prologue): Use TFmode not XFmode.
6924         (ia64_expand_epilogue): Likewise.
6925         (ia64_function_arg): Likewise.
6926         (ia64_function_arg_advance): Likewise.
6927         (ia64_return_in_memory): Likewise.
6928         (ia64_function_value): Likewise.
6929         (ia64_print_operand): Likewise.
6930         (ia64_register_move_cost): Set GR<->FR to 5.
6931         (ia64_secondary_reload_class): Get GR for TImode memory op.
6932         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
6933         (ROUND_TYPE_ALIGN): Remove.
6934         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
6935         (INTEL_EXTENDED_IEEE_FORMAT): Define.
6936         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
6937         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
6938         (MODES_TIEABLE_P): Use TFmode, not XFmode.
6939         (CLASS_MAX_NREGS): Likewise.
6940         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
6941         (PREDICATE_CODES): Update.
6942         * config/ia64/ia64.md (movti): New.
6943         (movti_internal): Use a clobber for memory alternatives.
6944         (reload_inti, reload_outti): New.
6945         (movsfcc_astep): Predicate properly.
6946         (movdfcc_astep): Likewise.
6947         (movxf): Remove.
6948         (movtf): New.
6949         (extendsftf2, extenddftf2): New.
6950         (trunctfsf2, trunctfdf2): New.
6951         (floatditf2, fix_trunctfdi2): New.
6952         (floatunsditf2, fixuns_trunctfdi2): New.
6953         (addtf3, subtf3, multf3, abstf2): New.
6954         (negtf2, nabstf2, mintf3, maxtf3): New.
6955         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
6956         (cmptf): New.
6957         (fr_spill): Use TFmode, not XFmode.
6958         (fr_restore): Likewise.
6959         * config/ia64/lib1funcs.asm (__divtf3): New.
6960         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
6961
6962 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6963
6964         * cse.c (fold_rtx): Avoid empty body in an if-statement.
6965
6966         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
6967         `U' integer constant suffix.
6968
6969         * dwarf2out.c (add_subscript_info): Avoid empty body in an
6970         else-statement.
6971
6972         * sparc/sol2.h (__enable_execute_stack): Prototype.
6973
6974 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
6975
6976         * collect2.c: Remove use of AIX import file.
6977
6978         * longlong.h: Test ARCH_PWR not ARCH_POWER.
6979
6980         * rs6000.c (print_operand, case 'E'): Add else.
6981
6982 2000-08-14  Richard Henderson  <rth@cygnus.com>
6983
6984         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
6985         (movdi_symbolic): New.
6986
6987 2000-08-14  Jim Wilson  <wilson@cygnus.com>
6988
6989         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6990         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
6991         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6992         to GNU as.
6993
6994 2000-08-14  Richard Henderson  <rth@cygnus.com>
6995
6996         * expr.c (emit_group_load): Don't force constants into registers.
6997         Special case source already in the correct mode.
6998
6999 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
7000
7001         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
7002         * fixinc/inclhack.def: Likewise.
7003         * fixinc/mkfixinc.sh: Likewise.
7004         * configure: Regenerate.
7005         * fixinc/fixincl.x: Regenerate.
7006         * install.texi: Document equivalence of linux and linux-gnu.
7007
7008 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7009
7010         * cse.c (insert_regs): Also in REG case: When finding an invalid
7011         value, and we make a new quantity, make sure that it won't be
7012         mistaken by for a valid one by mention_regs.
7013
7014 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
7015
7016         * h8300.md: Remove obsolete peepholes.
7017
7018 2000-08-13  Kazu Hirata  <kazu@hxi.com>
7019
7020         * invoke.texi (H8/300 Options): Fix typos.
7021         * config/h8300.c: Fix formatting.
7022         * config/h8300.h: Fix comment typos.
7023         (OVERRIDE_OPTIONS): Fix formatting.
7024
7025         * function.c: Fix formatting.
7026
7027         * cse.c: Fix formatting.
7028
7029 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
7030
7031         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
7032         (attempt_auto_inc): Suppress parentheses warning.
7033         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
7034         * loop.c (load_mems): Remove `u' suffix in two places.
7035         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
7036         hex constants.
7037         * config/rs6000/rs6000.h: Likewise.
7038         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
7039         __eabi dummy routine.
7040         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
7041         variable `buf_ptr'.
7042
7043         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
7044         not put stuff in .sdata unnecessarily.
7045         (rs6000_unique_section): New function.
7046         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
7047         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
7048
7049         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
7050         arrays in C99.  Don't try to look at DECL_REGISTER of a
7051         COMPONENT_REF.  Don't complain twice about the same error.
7052
7053         * fixinc/inclhack.def (aix_pthread): New fix.
7054         (aix_sysmachine): New fix.
7055         * fixinc/fixincl.x: Regenerate.
7056
7057         * expr.c (expand_expr): Call convert_modes when turning a large
7058         multiply into a small one.
7059
7060 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
7061
7062         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
7063         the tree structure an exponent rather than an explicit alignment
7064         so it doesn't overflow.
7065         (SET_DECL_OFFSET_ALIGN): New macro.
7066         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
7067         rather than DECL_OFFSET_ALIGN.
7068         (place_field): Likewise.
7069         * expmed.c (store_bit_field): Abort on align==0 to avoid
7070         antisocial machine behaviour.
7071
7072 2000-08-12  Richard Henderson  <rth@cygnus.com>
7073
7074         * sibcall.c (uses_addressof): Accept both addressof and
7075         current_function_internal_arg_pointer inside a mem.
7076         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
7077         if current_function_uses_addressof.
7078         * stmt.c (expand_return): Kill tail recursion and HAVE_return
7079         optimizations.
7080
7081 2000-08-11  Richard Henderson  <rth@cygnus.com>
7082
7083         * config/ia64/ia64.md (addsi3): Remove expander.
7084         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
7085         (*addsi3_shladd): New.
7086
7087 2000-08-11  Richard Henderson  <rth@cygnus.com>
7088
7089         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
7090         (do_restore): Likewise.
7091         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
7092         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
7093         (rtx_needs_barrier): Track actual bit manipulation for
7094         ar.unat moves, gr_spill, and gr_restore.
7095         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
7096         (process_set): Don't handle varargs spills.
7097         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
7098         .mem.offset here instead of in process_set.
7099         (gr_restore): Likewise.
7100
7101 2000-08-11  Richard Henderson  <rth@cygnus.com>
7102
7103         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
7104
7105 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
7106
7107         * gcc.texi (The Configuration File): Document
7108         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
7109         UPDATE_PATH_HOST_CANONICALIZATION.
7110
7111 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7112
7113         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
7114         unprototyped function pointer casts on integer constants.
7115
7116 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
7117
7118         * fixproto: Recognize DOS paths with drive letters as absolute paths.
7119
7120 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
7121
7122         * extend.texi (Volatiles): Fix typos.
7123
7124 2000-08-11  Kazu Hirata  <kazu@hxi.com>
7125
7126         * flow.c: Fix formatting.
7127
7128 2000-08-11  Richard Henderson  <rth@cygnus.com>
7129
7130         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
7131         pattern, always allocate a tertiary scratch register.
7132
7133         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
7134         (reload_inhi): Likewise.
7135
7136 2000-08-11  Richard Henderson  <rth@cygnus.com>
7137
7138         * function.c (put_reg_into_stack): Allow type to be NULL.
7139         (schedule_fixup_var_refs): Likewise.
7140         (gen_mem_addressof): Allow decl to be NULL.
7141         (put_addressof_into_stack): Likewise.
7142
7143         * flow.c (merge_blocks_nomove): Be more careful about
7144         locating the beginning of block A.
7145
7146         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
7147
7148 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7149
7150         * configure.in:
7151         * configure:
7152         * gthr-posix.h:
7153         * config.in: Reverted the check for <sched.h>.
7154
7155 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
7156
7157         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
7158         macros define the name of CTOR and DTOR sections.
7159         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
7160         DTOR_LIST_END): Change to use attributes to specify
7161         sections.
7162         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
7163         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
7164         DTOR_LIST_END): Same as in mips/elf.h.
7165
7166 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
7167
7168         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
7169         disabling just crt0.o.
7170
7171 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
7172
7173         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
7174         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
7175         (EXTRA_SPECS): Add them.
7176         * arm/lib1funcs.asm: Support builds for interworking.
7177         Use macros to eliminate duplicated pieces of code.
7178
7179 2000-08-10  Kazu Hirata  <kazu@hxi.com>
7180
7181         * h8300.c (expand_a_rotate): New.
7182         (emit_a_rotate): Likewise.
7183         (h8300_adjust_insn_length): Add support for the rotate insns.
7184         * h8300.md (rotlqi3): New.
7185         (*rotlqi3_1): Likewise.
7186         (rotlhi3): Likewise.
7187         (*rotlhi3_1): Likewise.
7188         (rotlhi3): Likewise.
7189         (*rotlhi3_1): Likewise.
7190         * h8300-proto.h: Add prototypes for expand_a_rotate and
7191         emit_a_rotate.
7192
7193         * h8300.c: Fix comment typos.
7194         (dosize): Declare the variable amount as unsigned.
7195         (get_shift_alg): Fix a comparison between signed and unsigned.
7196         (emit_a_shift): Likewise.
7197         (h8300_adjust_insn_length): Simplify the code.
7198
7199         * c-decl.c: Fix formatting.
7200
7201 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7202
7203         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
7204         warning about non-traditional numeric constant suffixes.
7205
7206         * cppexp.c (parse_number): Likewise.
7207
7208         * invoke.texi: (-Wtraditional): Document new behavior.
7209
7210 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7211
7212         * gthr-posix.h: Include auto-host.h. Conditionally include
7213         <sched.h>.
7214         * configure.in: Check for the <sched.h> header file.
7215         * config.in: Added define for HAVE_SCHED_H.
7216
7217 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7218
7219         * c-typeck.c (process_init_element): For -Wtraditional, warn about
7220         initialization of unions.
7221
7222         * invoke.texi (-Wtraditional): Document new behavior.
7223
7224 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
7225
7226         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
7227         instead of extra_c_flags.
7228         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
7229         * configure: Regenerate.
7230         * config.in: Regenerate.
7231
7232         * cpperror.c (cpp_type2name): New function.
7233         * cpplex.c (lex_line): If we issued an error for an invalid
7234         preprocessing directive, discard that logical line.
7235         * cpplib.c (do_line): Call a hook function if the current file
7236         is renamed by #line.
7237         (do_ident): Pass the contents of the string, not the entire
7238         token, to the callback function.
7239         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
7240         (cb.rename_file): New hook function.
7241         (cb.ident): Adjust prototype.
7242         (cpp_type2name): Prototype.
7243         * cppmacro.c (dump_macro_args): Correct precedence lossage.
7244
7245         * cppmain.c (cb_ident): Update for changed interface.
7246         (cb_rename_file): New function.
7247         (main): Set rename callback.
7248
7249 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
7250
7251         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
7252         multi-word registers.
7253
7254 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7255
7256         * c-common.c (combine_strings, check_format_info): Refer to ISO C
7257         or ISO C89 instead of ANSI C.
7258         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
7259         build_enumerator, do_case): Likewise.
7260         * c-lex.c (parse_float, yylex): Likewise.
7261         * c-parse.in: Likewise.
7262         * c-typeck.c (common_type, build_array_ref, build_binary_op,
7263         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
7264         build_c_cast, convert_for_assignment, set_init_index,
7265         set_init_label, c_expand_start_case): Likewise.
7266         * toplev.c (documented_lang_options, display_help): Likewise.
7267
7268 2000-08-08  Kazu Hirata  <kazu@hxi.com>
7269
7270         * h8300.c: Fix formatting.
7271         * h8300.h: Likewise.
7272         * h8300.md: Likewise.
7273         (movsi_h8300hs): Fix formatting of the resulting assembly code.
7274
7275         * reload1.c: Fix formatting.
7276
7277 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
7278
7279         * alpha/alpha.c (alpha_emit_xfloating_libcall):
7280         Use GEN_CALL_VALUE define.
7281         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
7282         * clipper/clipper.md (untyped_call): Likewise.
7283         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
7284         * fx80/fx80.md (untyped_call): Likewise.
7285         * mips/mips.md (untyped_call): Likewise.
7286         * ns32k/ns32k.md (untyped_call): Likewise.
7287         * pa/pa.md (untyped_call): Likewise.
7288         * romp/romp.md (untyped_call): Likewise.
7289         * sparc/sparc.md (untyped_call): Likewise.
7290
7291 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
7292
7293         * config/i860/i860.c (singlemove_string): Do not generate assembler
7294         pseudo instructions that must be expanded (that is, with signed
7295         constants larger than 16 bits).
7296
7297 2000-08-08  Richard Henderson  <rth@cygnus.com>
7298
7299         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
7300         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
7301         (init_propagate_block_info): Don't kill memory stores at -O0.
7302         (mark_set_1, mark_used_regs): Likewise.
7303
7304 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
7305
7306         * rs6000.c (optimization_options): Decorate 'level' as
7307         ATTRIBUTE_UNUSED.
7308         (mask64_operand): Remove sign-extend thinko.
7309         (rldic_operand): New function.
7310         (load_multiple_operation): regno's are unsigned ints.
7311         (store_multiple_operation): Likewise.
7312         (lmw_operation): Likewise.
7313         (stmw_operation): Likewise.
7314         (includes_lshift_p): shift_mask is unsigned int.
7315         (includes_lshift64_p): New function.
7316         (addrs_ok_for_quad_peep): unsigned int reg1.
7317         (print_operand): Consistently add "else" after
7318         output_operand_lossage().
7319         (print_operand, case 'b'): Fold in case 'W'.
7320         (print_operand, case 'W'): Print rldic MB value.
7321         (output_epilogue): Update Objective-C language string.
7322         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
7323         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
7324         * rs6000.md (ashldi3): Add rldic instruction.
7325         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
7326         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
7327         modifier.
7328
7329 2000-08-08  Richard Henderson  <rth@cygnus.com>
7330
7331         * config/ia64/ia64-protos.h: Remove duplicates.  Update
7332         for massive code rearrangements.
7333         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
7334         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
7335         (ia64_local_regs, ia64_need_regstk): Remove.
7336         (ar_ccv_reg_operand): New.
7337         (ia64_gp_save_reg): New.
7338         (struct ia64_frame_info): Combine most of the size elements;
7339         add new gr save elements.
7340         (find_gr_spill): New.
7341         (next_scratch_gr_reg): New.
7342         (mark_reg_gr_used_mask): New.
7343         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
7344         to GR backing store regs when possible.
7345         (ia64_initial_elimination_offset): New.
7346         (ia64_rap_fp_offset): Remove.
7347         (save_restore_insns): Remove.
7348         (setup_spill_pointers): New.
7349         (finish_spill_pointers): New.
7350         (spill_restore_mem): New.
7351         (do_spill, do_restore): New.
7352         (ia64_expand_prologue): Rewrite to use them.
7353         (ia64_expand_epilogue): Likewise.
7354         (ia64_direct_return): Update for current_frame_info changes.
7355         (ia64_function_prologue): Simplify .prologue emission.  Emit
7356         .spill when needed.
7357         (ia64_setup_incoming_varargs): Don't ever emit rtl.
7358         (ia64_dbx_register_number): New.
7359         (ia64_initialize_trampoline): New.
7360         (ia64_secondary_reload_class): Request GR_REGS for integer
7361         arithmetic destined for FR_REGS.
7362         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
7363         (ia64_mark_machine_status): Mark ia64_gp_save.
7364         (rws_access_regno): Rename from rws_access_reg; don't treat
7365         predicates specially.
7366         (rws_access_reg): New.  Update all callers.
7367         (rtx_needs_barrier): Remove dead unspecs.
7368         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
7369         (ia64_encode_section_info): Silence signed/unsigned warnings.
7370         (spill_offset, sp_offset, spill_offset_emitted): Remove.
7371         (tmp_reg, tmp_saved): Remove.
7372         (process_set): Rewrite to expect complicated bits via
7373         REG_FRAME_RELATED_EXPR.
7374         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
7375         in the use of ar.ccv; never set RTX_UNCHANGING_P.
7376         (ia64_expand_op_and_fetch): Likewise.
7377         (ia64_expand_compare_and_swap): Likewise.
7378         (ia64_expand_builtin): Likewise.
7379         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
7380         (FIRST_PSEUDO_REGISTER): Update.
7381         (AR_M_REGNO_P): Update.
7382         (FIXED_REGS): Don't mark three local registers as used.
7383         (EXTRA_CC_MODES): New.
7384         (SELECT_CC_MODE): New.
7385         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
7386         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
7387         (FRAME_GROWS_DOWNWARD): Unset.
7388         (STARTING_FRAME_OFFSET): Zero.
7389         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
7390         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
7391         (HARD_FRAME_POINTER_REGNUM): New.
7392         (CAN_DEBUG_WITHOUT_FP): Define.
7393         (TRAMPOLINE_TEMPLATE): Remove.
7394         (TRAMPOLINE_SIZE): Lower to 32.
7395         (TRAMPOLINE_ALIGNMENT): Lower to 64.
7396         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
7397         (PREDICATE_CODES): Update.
7398         (struct machine_function): Add ia64_gp_save.
7399         * config/ia64/ia64.md: Purge unused unspecs.
7400         (movsi patterns): Allow moves to/from AR_M_REGS.
7401         (movdi patterns): Allow moves to/from p0.
7402         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
7403         (gr_spill, gr_restore): Indicate ar.unat read/written.
7404         (nonlocal_goto): Don't pass old frame_pointer.
7405         (nonlocal_goto_receiver): Remove.
7406         (exception_receiver): New.
7407         (builtin_setjmp_setup): New.
7408         (builtin_setjmp_receiver): New.
7409         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
7410         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
7411         (__ia64_restore_stack_nonlocal): Likewise.
7412         (__ia64_trampoline): New.
7413         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
7414         function.
7415         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
7416
7417 2000-08-08  Richard Henderson  <rth@cygnus.com>
7418
7419         * frame.h (ia64_frame_state): Add my_psp.
7420         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
7421         (__throw): Pass it in.  Don't clobber r7.
7422         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
7423         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
7424         and nothing to do with sp.
7425         (normalize_reg_loc): Use frame->my_psp.
7426         (frame_translate): Handle frame-pointer-less functions.  Set
7427         spill_base correctly, in absence of being told.
7428         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
7429         (__ia64_backtrace_helper): New sp argument.  Use
7430         builtin_return_address instead of label addresses.
7431         (print_record) [mem_stack_v]: No size member.
7432
7433 2000-08-08  Richard Henderson  <rth@cygnus.com>
7434
7435         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
7436
7437 2000-08-08  Richard Henderson  <rth@cygnus.com>
7438
7439         * tm.texi (LOCAL_REGNO): Document.
7440         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
7441         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
7442         * reload1.c (reload): Likewise when considering nonlocal labels.
7443
7444         * config/ia64/ia64.h (LOCAL_REGNO): New.
7445         * config/sparc/sparc.h (LOCAL_REGNO): New.
7446
7447 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7448
7449         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
7450
7451 2000-08-07  Nick Clifton  <nickc@redhat.com>
7452
7453         * config/mips/mips.c: Fix compile time warning messages.
7454         * config/mips/mips-protos.h: Add prototype for equality_op.
7455
7456         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
7457
7458 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
7459
7460         * mn10300.md: Use nonimmediate_operand instead of general_operand
7461         on output operands.
7462
7463         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
7464
7465 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
7466
7467         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
7468         * sh.c (expand_block_move): Break long lines.
7469         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
7470         * sh.md (mulsi3): Likewise.
7471         (movdi): Adjust spacing.
7472
7473 2000-08-07  Richard Henderson  <rth@cygnus.com>
7474
7475         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
7476         * expr.c (emit_group_store): Don't set it.
7477
7478 2000-08-07  Kazu Hirata  <kazu@hxi.com>
7479
7480         * invoke.texi (Options for Debugging Your Program or GCC): Remove
7481         duplicate entries for 'w' and 'z'.
7482
7483         * flow.c: Fix a comment typo.
7484
7485 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7486
7487         * c-parse.in: Changed the language string for Objective-C to "GNU
7488         Objective-C".
7489
7490 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7491
7492         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
7493         to improve the Posix thread support for Objective-C.
7494
7495 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
7496
7497         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
7498         CTI_UNSIGNED_PTRDIFF_TYPE.
7499         (signed_size_type_node): Define.
7500         (unsigned_ptrdiff_type_node): Define.
7501         * c-decl.c (init_decl_processing): Create the
7502         signed_size_type_node and unsigned_ptrdiff_type_node types.
7503         * c-common.c (T_SC): Define.
7504         (T_SST): Define.
7505         (T_UPD): Define.
7506         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
7507         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
7508         %s and %p.
7509         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
7510         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
7511         flags for %c, %s and %[.
7512         (check_format_info): Only allow leniency for signedness of targets
7513         of character pointers (when pedantic) for formats flagged with
7514         "c", so for strings but not for %hh formats.  When pedantic, don't
7515         allow character pointers to substitute for void pointers if a
7516         second level of indirection is present.
7517
7518 2000-08-06  Kazu Hirata  <kazu@hxi.com>
7519
7520         * invoke.texi (Options for Debugging Your Program or GCC): Update
7521         the names of dump files.
7522
7523         * h8300.c (dosize): Rearrange code for conciseness.
7524         (split_adds_subs): Likewise.
7525
7526         * loop.c: Fix formatting.
7527
7528         * dwarf2out.c: Fix formatting.
7529
7530         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
7531
7532         * expr.c: Fix formatting.
7533
7534 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7535
7536         * rs6000.c (rs6000_maybe_dead): Prototype.
7537
7538 2000-08-06  Richard Henderson  <rth@cygnus.com>
7539
7540         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
7541         HAVE_nonlocal_goto as well.
7542         * config/i960/i960.md (nonlocal_goto): Don't do it here.
7543         * config/pj/pj.md (nonlocal_goto): Likewise.
7544
7545 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
7546
7547         * loop.c (try_swap_copy_prop): New function.
7548         (load_mems): Rename copies to load_copies and add new regset
7549         store_copies.  Check for sets of shadow registers and mark
7550         in store_copies.   Call try_swap_copy_prop for registers
7551         marked in store_copies.
7552
7553 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7554
7555         * objc/objc-act.c: New command line option -fconstant-string-class
7556         to allow specifying a user defined constant string class,
7557         different from NXConstantString.
7558
7559         * toplev.c: Moved the Objective-C specific options to
7560         objc/lang-options.h.
7561
7562         * objc/lang-options.h: Moved the Objective-C specific options from
7563         toplev.c. Added -fconstant-string-class.
7564
7565 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
7566
7567         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
7568         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
7569         __CTOR_LIST__ from func_ptr array to just func_ptr, to
7570         avoid extra alignment imposed on arrays.
7571         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
7572         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
7573
7574         * mips.h: Clean up comments and spacing near MASKs.
7575         (TARGET_UNIX_ASM): Delete.
7576         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
7577         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
7578         values contiguous.
7579
7580 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
7581
7582         * c-common.c (print_char_table): Add entries for the X/Open '
7583         format flag (print decimals with locale's thousands grouping
7584         character).  Make %C expect wint_t.
7585         (check_format_info): If pedantic, warn when the %n$ operand
7586         number form is used.  Allow for the ' flag; warn about it if
7587         pedantic.
7588
7589 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
7590
7591         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
7592         type is a float mode, cfun->decl's return type is not, and
7593         TARGET_FLOAT_RETURNS_IN_80387.
7594
7595 2000-08-04  Andreas Schwab  <schwab@suse.de>
7596
7597         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
7598         token list, which are always `#' and `pragma'.
7599
7600 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
7601
7602         * tree.c (tree_expr_nonnegative_p): Move to...
7603         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
7604         (rtl_expr_nonnegative_p): New.
7605         * tree.h: Add prototype for rtl_expr_nonnegative_p.
7606
7607         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
7608         CONST_DOUBLE_CHAIN: Move to...
7609         * rtl.h: ...here.  Use XCINT/XCEXP.
7610
7611         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
7612         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
7613         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
7614         to VOL_FILES.
7615
7616         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
7617
7618 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7619
7620         * config/c4x/c4x.md (return_indirect_internal): New.
7621         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
7622
7623 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7624
7625         * c-common.c (time_char_table): Mark up formats added in C99 and
7626         make other corrections.  %D and %g were added in C99.  %Og is an
7627         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
7628         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
7629         C99 rather than GNU extensions, but %OG and %Oz are extensions.
7630         %h was added in C99.  %C was added in C99.  %OY and %OC are
7631         extensions.  Add the C99 format %F.
7632         (check_format_info): If pedantic and not in C99 mode, warn for C99
7633         formats, %E and %O.
7634
7635 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7636
7637         * function.c (schedule_fixup_var_refs): New function, broken out
7638         of put_reg_into_stack.
7639         (put_reg_into_stack): Use it.
7640         (put_var_into_stack): In CONCAT case, fixup up references for
7641         components only after fixing up references to the whole concat.
7642
7643 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
7644
7645         * alias.c (mark_constant_function): Use INSN_P.
7646         (init_alias_analysis): Likewise.
7647         * combine.c (combine_instructions): Use INSN_P.
7648         (can_combine_p): Likewise.
7649         (try_combine): Likewise.
7650         (distribute_notes): Likewise.
7651         (distribute_links): Likewise.
7652         * cse.c (cse_around_loop): Use INSN_P.
7653         (invalidate_skipped_block): Likewise.
7654         (cse_set_around_loop): Likewise.
7655         (cse_end_of_basic_block): Likewise.
7656         (delete_trivially_dead_insns): Likewise.
7657         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
7658         (unshare_all_rtl_1): Likewise.
7659         (next_cc0_user): Likewise.
7660         (try_split make_insn_raw): Likewise.
7661         (remove_unnecessary_notes): Likewise.
7662         * final.c (shorten_branches): Use INSN_P.
7663         (leaf_renumber_regs): Likewise.
7664         (leaf_renumber_regs_insn): Likewise.
7665         * flow.c (find_label_refs): Use INSN_P.
7666         (verify_wide_reg): Likewise.
7667         (notice_stack_pointer_modification): Likewise.
7668         (count_or_remove_death_notes): Likewise.
7669         (verify_flow_info): Likewise.
7670         (clear_log_links): Likewise.
7671         * function.c (fixup_var_refs_insns): Use INSN_P.
7672         (compute_insns_for_mem): Likewise.
7673         * gcse.c (alloc_gcse_mem): Use INSN_P.
7674         (compute_sets): Likewise.
7675         (compute_hash_table): Likewise.
7676         (classic_gcse): Likewise.
7677         (cprop): Likewise.
7678         (insert_insn_end_bb): Likewise.
7679         (delete_null_pointer_checks_1): Likewise.
7680         * global.c (expand_preferences): Use INSN_P.
7681         (build_insn_chain): Likewise.
7682         * graph.c (node_data): Use INSN_P.
7683         * haifa-sched.c (priority): Use INSN_P.
7684         (rm_line_notes): Likewise.
7685         (rm_other_notes): Likewise.
7686         (find_insn_reg_weight): Likewise.
7687         (init_target_units): Likewise.
7688         (schedule_block): Likewise.
7689         (compute_block_forward_dependences): Likewise.
7690         (debug_dependencies): Likewise.
7691         (set_priorities): Likewise.
7692         * integrate.c (function_cannot_inline_p): Use INSN_P.
7693         (save_parm_insns): Likewise.
7694         (copy_insn_list): Likewise.
7695         * jump.c (mark_all_labels): Use INSN_P.
7696         (never_reached_warning): Likewise.
7697         * lcm.c (optimize_mode_switching): Use INSN_P.
7698         * local-alloc.c (validate_equiv_mem): Use INSN_P.
7699         (memref_used_between_p): Likewise.
7700         (update_equiv_regs): Likewise.
7701         (block_alloc): Likewise.
7702         (no_conflict_p): Likewise.
7703         * loop.c (scan_loop): Use INSN_P.
7704         (find_and_verify_loops): Likewise.
7705         (count_loop_regs_set): Likewise.
7706         (loop_reg_used_before_p): Likewise.
7707         (strength_reduce): Likewise.
7708         (recombine_givs): Likewise.
7709         (check_dbra_loop): Likewise.
7710         (load_mems): Likewise.
7711         (try_copy_prop): Likewise.
7712         * print-rtl.c (print_rtx): Use INSN_P.
7713         * recog.c (find_single_use): Use INSN_P.
7714         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
7715         (next_flags_user): Likewise.
7716         (swap_rtx_condition): Likewise.
7717         * regmove.c (mark_flags_life_zones): Use INSN_P.
7718         (optimize_reg_copy_1): Likewise.
7719         (optimize_reg_copy_2): Likewise.
7720         (optimize_reg_copy_3): Likewise.
7721         (reg_is_remote_constant_p): Likewise.
7722         (fixup_match_2): Likewise.
7723         (regmove_optimize): Likewise.
7724         (fixup_match_1): Likewise.
7725         * regrename.c (build_def_use): Use INSN_P.
7726         (replace_reg_in_block): Likewise.
7727         (consider_use): Likewise.
7728         * reload.c (find_equiv_reg): Use INSN_P.
7729         * reload1.c (reload): Use INSN_P.
7730         (maybe_fix_stack_asms): Likewise.
7731         (calculate_needs_all_insns): Likewise.
7732         (reload_as_needed): Likewise.
7733         (emit_output_reload_insns): Likewise.
7734         (delete_address_reloads_1): Likewise.
7735         (reload_cse_regs_1): Likewise.
7736         (reload_combine): Likewise.
7737         (reload_cse_move2add): Likewise.
7738         * reorg.c (redundant_insn): Use INSN_P.
7739         (dbr_schedule): Likewise.
7740         * resource.c (find_dead_or_set_registers): Use INSN_P.
7741         (mark_target_live_regs): Likewise.
7742         * rtlanal.c (reg_used_between_p): Use INSN_P.
7743         (reg_referenced_between_p): Likewise.
7744         (reg_set_between_p): Likewise.
7745         (reg_set_p): Likewise.
7746         (single_set): Likewise.
7747         (multiple_sets): Likewise.
7748         (find_last_value): Likewise.
7749         (reg_set_last): Likewise.
7750         (find_reg_note): Likewise.
7751         (find_regno_note): Likewise.
7752         * sibcall.c (sequence_uses_addressof): Use INSN_P.
7753         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
7754         * ssa.c (find_evaluations): Use INSN_P.
7755         (rename_block): Likewise.
7756         (rename_equivalent_regs): Likewise.
7757         * unroll.c (loop_find_equiv_value): Use INSN_P.
7758         (set_dominates_use): Likewise.
7759         * varasm.c (mark_constant_pool): Use INSN_P.
7760         (mark_constants): Likewise.
7761         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
7762         (alphaev4_next_group): Likewise.
7763         (alphaev5_next_group): Likewise.
7764         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
7765         (c4x_rptb_rpts_p): Likewise.
7766         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
7767         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
7768         (rs6000_adjust_priority): Likewise.
7769         * config/sh/sh.c (sh_loop_align): Use INSN_P.
7770         (machine_dependent_reorg): Likewise.
7771         (split_branches): Likewise.
7772         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
7773
7774 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
7775
7776         * combine.c (recog_for_combine): Remove the old notes
7777         prior to attempting to recognize the new pattern.
7778         (distribute_notes): Ignore REG_NONNEG notes.
7779
7780 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
7781
7782         * varasm.c (output_constructor): Add .align 0 for packed vars.
7783
7784 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7785
7786         * configure.in: Use default thread_file even when enable_threads is
7787         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
7788         * configure: Rebuilt.
7789
7790         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
7791
7792 2000-08-04  Donn Terry (donnte@microsoft.com)
7793
7794         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
7795
7796 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
7797
7798         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
7799         Delete code that conditionally modifies 'version'.
7800         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
7801         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
7802         * gcc.c (main): Use it.
7803         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
7804         * prefix.c (update_path): Use it.
7805         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
7806         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
7807         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
7808         code.
7809         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
7810         (SUBTARGET_SWITCHES): Adjust.
7811         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
7812         defining.
7813         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
7814
7815 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7816
7817         * c-common.h (flag_isoc94): Declare.
7818         * c-decl.c (flag_isoc94): Define.
7819         (c_decode_option): Set flag_isoc94 as appropriate.
7820         * c-common.c (T_PD, T_IM, T_UIM): Define.
7821         (format_char_info): Add tlen and jlen.
7822         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
7823         %F.  Allow %lf.
7824         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
7825         %l[.
7826         (time_char_table): Add NULL entries for %t and %j.
7827         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
7828         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
7829         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
7830         precision.  Allow precision argument to be unsigned int.  If
7831         pedantic, warn for %p passed an argument not a pointer to possibly
7832         qualified void or a possibly qualified character type, and for
7833         pointer targets of the wrong sign, except for character pointers.
7834
7835 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7836
7837         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
7838         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
7839         (wint_type_node): Define.
7840         * c-decl.c (WINT_TYPE): Define.
7841         (init_decl_processing): Create the wint_type_node type.
7842         * c-common.c (T_WI): Define.
7843         (print_char_table): Use T_WI for %lc format.
7844
7845 2000-08-04  Bruce Korb  <bkorb@gnu.org>
7846
7847         * fixinc/:  Verified that the MSDOS patch does not break
7848         the UNIX functionality and applied the next three patches
7849         from July:
7850
7851 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
7852
7853         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
7854         output file with the temporary one by appending ".X" to generate
7855         the temporary fuile's name.  If the output file already has an
7856         extension, replace it with ".X".
7857
7858         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
7859         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
7860         reallocate the command buffer while copying the command-line
7861         argument.  Redirect the output directly to the temporary file,
7862         instead of going through another temporary file.
7863         (process): Close the temporary file before unlinking it.
7864         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
7865         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
7866         (run_compiles): Pass p_fixd argument to machine_matches, as it
7867         expects.
7868
7869         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
7870         environment, assume there are no symlinks in the include
7871         directory.  When cleaning up the DONE files, look for them
7872         case-insensitively.  Don't try to remove symlinks if they aren't
7873         there.
7874
7875         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
7876         all callers changed.  Declare pz "const char *", to avoid compiler
7877         warnings.
7878
7879         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
7880         Change prototype of make_raw_shell_str.
7881
7882 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
7883
7884         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
7885         (initialize) [__MSDOS__]: Use tempnam.
7886         (initialize): Don't use SIGPIPE if it is not defined.
7887
7888         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
7889         return stdout.
7890
7891 2000-07-25  Bruce Korb  <bkorb@gnu.org>
7892
7893         * fixinc/fix*.[ch]: substantially reworked to make it possible
7894         to run this program without using fork(2) or pipe(2) (i.e. in
7895         a DOS environment).
7896
7897 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7898
7899         * cppdefault.h (WINT_TYPE): Define.
7900         * cppinit.c (builtin_array): Define __WINT_TYPE__.
7901         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
7902         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
7903
7904 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
7905
7906         * (mips_legitimate_address_p): Don't allow register+offset
7907         if the offset is large and negative, and we are compiling
7908         for 64 bit registers.
7909
7910 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7911
7912         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
7913         insn_code_number + 1.
7914
7915 2000-08-04  Kazu Hirata  <kazu@hxi.com>
7916
7917         * h8300.c (function_prologue): Rearrange code for conciseness.
7918         (function_epilogue): Likewise.
7919         * h8300.h (OK_FOR_U): Fix formatting.
7920
7921         * cse.c: Fix a comment typo. Fix formatting.
7922
7923 2000-08-03  Richard Henderson  <rth@cygnus.com>
7924
7925         * config/i386/i386.md (return_indirect_internal): New.
7926         * config/i386/i386.c (ix86_expand_epilogue): Use it.
7927
7928 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
7929
7930         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
7931         before the name.
7932         (lex_line): Glue @ onto the beginning of identifiers and
7933         string constants, in Objective-C mode.
7934         (output_token, spell_token): Handle CPP_OSTRING.
7935         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
7936         beginning of a NAME or a STRING, in objc mode.
7937
7938         * cpplib.c (get_define_node): Do not permit identifiers that
7939         begin with @ to be #defined.
7940         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
7941         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
7942
7943         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
7944         * c-tree.h (build_objc_string): Delete prototype.
7945         * objc/objc-tree.def: Delete OBJC_STRING_CST.
7946         * c-lex.c (yylex): Use build_string for all three kinds of strings.
7947
7948         * c-parse.in, objc/objc-act.c: Update commentary.
7949
7950 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
7951
7952         * extend.texi: Fix typo in last change.
7953
7954         * extend.texi: Add commentary on statement-expressions and their
7955         interactions with C++.
7956
7957 2000-08-03  Nick Clifton  <nickc@cygnus.com>
7958
7959         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
7960         * dwarf.h (LANG_JAVA): Change value to 0x000b.
7961
7962 2000-08-03  Anthony Green  <green@cygnus.com>
7963
7964         * dwarf2out.c (gen_compile_unit_die): Add java language support.
7965         (add_bound_info): Check for java language.
7966         (is_java): New function.
7967         * dwarfout.c (output_compile_unit_die): Ditto.
7968         * dwarf.h (dwarf_source_language): Add java source language type.
7969         * dwarf2.h (dwarf_source_language): Ditto.
7970
7971 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7972
7973         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
7974         operands.
7975
7976         * i386.c (ix86_expand_branch): Mode of comparison in
7977         IF_THEN_ELSE is VOIDmode.
7978
7979 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
7980
7981         * gengenrtl.c, rtl.c: Avoid #elif.
7982
7983 2000-08-03  Michael Poole  <poole@troilus.org>
7984
7985         * tm.texi (Register Classes): Clarify order of sub-initializers
7986         in REG_CLASS_CONTENTS.
7987
7988 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7989
7990         From SAITOH Masanobu:
7991         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
7992
7993 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
7994
7995         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
7996         is not supported by tradcpp and isn't actually needed for cygwin.
7997
7998 2000-08-03  Kazu Hirata  <kazu@hxi.com>
7999
8000         * h8300.c: Fix a comment typo.
8001         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
8002
8003         * jump.c: Fix formatting.
8004
8005         * toplev.c: Fix formatting.
8006
8007 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
8008
8009         * flow.c (find_auto_inc): Verify that we've got a REG before
8010         peeking at its regno.  Fail, don't abort if we can't find
8011         the increment of the desired register.
8012
8013         * pa.md (shadd height reduction patterns/splitters): Remove.
8014
8015 2000-08-02  Jim Wilson  <wilson@cygnus.com>
8016
8017         * config/ia64/ia64-protos.h (flag_ssa): Declare.
8018         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
8019
8020 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
8021
8022         * dce.c: Remove all uses of assert.
8023         * dwarf2out.c: Likewise.
8024         * dwarfout.c: Likewise.
8025         * ssa.c: Likewise.
8026
8027 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
8028
8029         * gcc.h (lang_specific_driver): Constify second argument.
8030         * gcc.c (translate_options, process_command, main): Likewise.
8031         Constify variables to match.  Cast second argument to
8032         pexecute.
8033
8034         * cppspec.c, gccspec.c: Adjust type of second argument to
8035         lang_specific_driver, and update code as necessary.
8036
8037 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
8038
8039         * loop.c (scan_loop): Ensure update_end label does not
8040         go away until reg_scan_update is run.
8041
8042 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
8043
8044         * c-common.h: Prototype min_precision and c_build_qualified_type here...
8045         * c-tree.h: ... not here.
8046         * errors.h: Prototype fancy_abort.
8047
8048         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
8049         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
8050         * regrename.c (regrename_optimize): Make control flow explicit.
8051         (replace_reg_in_block): Initialize reg_use to 0.
8052
8053         * i386.c (legitimate_address_p): Rename error label to
8054         report_error to avoid namespace clash.
8055
8056 2000-08-02  Kazu Hirata  <kazu@hxi.com>
8057
8058         * fold-const.c: Fix formatting.
8059
8060 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8061
8062         * i386.c (legitimate_address_p): Accept other bases than
8063         pic_offset_table_rtx for GOTOFF constructs.
8064
8065 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8066
8067         * i386.md (shift to lea splitter): Use const_int_operand.
8068
8069 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
8070
8071         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
8072         cppspec.c: Do not use 'legal' or 'illegal' in error messages
8073         and comments.
8074
8075         * cppmain.c (cb_define, cb_undef): Don't generate any output
8076         if not done_initializing.
8077         * cpplex.c (maybe_paste_with_next): When the token after a ##
8078         is an omitted rest argument, only delete the token before it
8079         if that token is a comma.  Do not warn about bogus token
8080         pastes for , ## rest_arg.
8081
8082         * cpp.texi: Update.
8083         * cpp.1: Regenerate.
8084
8085 2000-08-02  Fred Fish  <fnf@be.com>
8086
8087         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
8088         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
8089         and later.
8090
8091         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
8092         Be directories to search path.
8093
8094         Remove support for __declspec(dllimport) and __declspec(dllexport).
8095         This is leftover cruft from the earlier BeOS gcc port when BeOS
8096         used Microsoft's PE object file format.
8097         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
8098         * config/i386/t-beos (winnt.o): Remove Makefile frag.
8099         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
8100         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
8101         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
8102         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
8103         (REDO_SECTION_INFO_P): Remove.
8104         (ASM_EXPORT_DECL): Remove.
8105         (ASM_DECLARE_FUNCTION_NAME): Remove.
8106         (ASM_DECLARE_OBJECT_NAME): Remove.
8107         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
8108         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
8109         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
8110         (STRIP_NAME_ENCODING): Remove.
8111
8112         Remove support for obsolete version of BeOS that is no longer
8113         supported by Be.
8114         * configure.in (i*86-*-beospe*): Remove.
8115         * config/i386/beos-pe.h: Remove.
8116
8117 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
8118             Mark Mitchell <mark@codesourcery.com>
8119
8120         * Makefile.in (OBJS): Added dce.o.
8121         (ssa.o): Updated target to include ssa.h.
8122         (flow.o): Likewise.
8123         (toplev.o): Likewise.
8124         (dce.o): Created target.
8125         * basic-block.h: Added comments.
8126         (INVALID_BLOCK): Added definition.
8127         (connect_infinite_loops_to_exit): Added declaration.
8128         Moved SSA declarations to ssa.h.
8129         * flow.c: Added inclusion of ssa.h.
8130         (struct depth_first_search_dsS, depth_first_search_ds):
8131         Added definitions.
8132         (compute_immediate_postdominators): Added definition.
8133         (connect_infinite_loops_to_exit): Likewise.
8134         (flow_dfs_compute_reverse_init): Likewise.
8135         (flow_dfs_compute_reverse_add_bb): Likewise.
8136         (flow_dfs_compute_reverse_execute): Likewise.
8137         (flow_dfs_compute_reverse_finish): Likewise.
8138         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
8139         (LABEL_P): Added definition.
8140         (JUMP_P): Likewise.
8141         (NOTE_P): Likewise.
8142         (BARRIER_P): Likewise.
8143         (JUMP_TABLE_DATA_P): Likewise.
8144         (INSN_DEAD_CODE_P): Likewise.
8145         * ssa.c: Replaced inclusions with ssa.h inclusion.
8146         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
8147         (rename_registers): Removed unnecessary variables.
8148         * ssa.h: Created by moving declarations from ssa.c and
8149         basic-block.h.
8150         * timevar.def: Defined TV_DEAD_CODE_ELIM.
8151         * toplev.c: Added ssa.h inclusion.
8152         (dump_file_index): Added DFI_dce.
8153         (dump_file): Added "dce" entry.
8154         Defined flag_ssa.
8155         (f_options): Added dce entry.
8156         * invoke.texi: Document -fdce.  Emphasize experimental status of
8157         -fssa.
8158         * dce.c: New file.
8159
8160 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
8161
8162         * cpperror.c (v_message): Split into _cpp_begin_message and
8163         v_message macro.  All callers updated.
8164         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
8165         checks here.
8166
8167         * cppfiles.c (cpp_syshdr_flags): New function.
8168         (read_include_file): Don't call cpp_output_tokens.  Call
8169         enter_file hook.
8170         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
8171         (cpp_reader_init): Don't initialize token_buffer.  Call
8172         _cpp_init_internal_pragmas.
8173         (cpp_cleanup): Don't clear token_buffer.
8174         (cpp_start_read): Don't worry about output from -D processing.
8175         Don't call cpp_output_tokens.
8176         (cpp_finish): Don't dump macros here.  Don't call
8177         cpp_output_tokens.
8178         * cppmacro.c (_cpp_dump_definition): Rename
8179         cpp_dump_definition.  Write directly to a FILE *.
8180         (dump_funlike_macro): Delete.
8181         (dump_macro_args): New.
8182
8183         * cpplex.c (TOKEN_LEN): Convert to inline function.
8184         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
8185         cpp_scan_line, _cpp_dump_list): Delete.
8186         (cpp_printf, cpp_output_list): New.
8187         (output_line_command): Don't worry about entering or leaving files.
8188         (cpp_scan_buffer): Just output each token as we hit it.
8189         (process_directive): Don't call cpp_output_tokens.
8190         (_cpp_glue_header_name): Don't use token_buffer.
8191         (output_token, dump_param_spelling): Write directly to a FILE *.
8192
8193         * cpplib.c (pass_thru_directive, dump_macro_name,
8194         pragma_dispatch, do_pragma_gcc): Delete.
8195         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
8196         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
8197         functions.
8198         (do_error, do_warning, pragma_dependency): Call
8199         _cpp_begin_message, then cpp_output_list.
8200         (cpp_register_pragma, cpp_register_pragma_space,
8201         _cpp_init_internal_pragmas): New.
8202         (do_pragma): Walk the pragmas table here.
8203         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
8204         do_pragma_dependency): Return void.
8205         (do_pragma_implementation): Moved to cppmain.c.
8206
8207         * cpplib.h: Update prototypes.
8208          (struct cpp_reader): Remove printer, token_buffer,
8209         token_buffer_size, and limit.  Add struct cb, and pragmas.
8210         (struct cpp_printer): Remove last_id and written.
8211         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
8212         CPP_ADJUST_WRITTEN): Delete.
8213         * cpphash.h: Update prototypes.
8214         (ufputs): New wrapper.
8215
8216         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
8217         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
8218         (main): Set up callbacks.  Register #pragma implementation.
8219         Dump macros from here.
8220
8221 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
8222
8223         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
8224         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
8225         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
8226         insns if they have a REG_MAYBE_DEAD note attached.
8227         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
8228         (rs6000_emit_load_toc_table): TOC loads may go dead.
8229
8230 2000-08-01  Jim Wilson  <wilson@cygnus.com>
8231
8232         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
8233         type exists before using it.  Use number of words as alignment
8234         otherwise.
8235         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
8236         ia64_va_arg): Propagate ia64_function_args changes here.
8237
8238 2000-08-01  Richard Henderson  <rth@cygnus.com>
8239
8240         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
8241         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8242
8243 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
8244
8245         From Joern Rennecke:
8246         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
8247         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
8248         unless TARGET_SH3E is set.
8249         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
8250
8251         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
8252         (ashlsi3_std): New pattern.
8253         (ashlsi3 expander): Use it for TARGET_SH3.
8254         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
8255
8256 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8257
8258         * loop.c (canonicalize_condition):  Use destination, not source to
8259         determine SET's mode.
8260
8261 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
8262
8263         * flow.c (clear_log_links): Fix typo.
8264
8265 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
8266
8267         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
8268         on targets which need more than one insn for a compare/cbranch
8269         operation.
8270
8271 2000-07-31  Jim Wilson  <wilson@cygnus.com>
8272
8273         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
8274         when computing offset.
8275
8276 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
8277
8278         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
8279
8280 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
8281
8282         * flow.c (clear_log_links): Nuke global_live_at_start and
8283         global_live_at_end data, since if the log_links stuff is invalid
8284         so is global_live_at_*.
8285
8286 2000-07-31  Richard Henderson  <rth@cygnus.com>
8287
8288         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
8289
8290 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
8291
8292         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
8293         (_cpp_get_token): Don't macro expand a just pasted token if it
8294         was pasted at no_expand_level.
8295
8296 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
8297
8298         * cppmacro.c (find_param, count_params, save_expansion):
8299         Permit 'defined' as a macro parameter name.
8300
8301 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
8302
8303         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
8304         xcpp to cpp throughout.
8305         (native): Remove unnecessary dependency on cpp.
8306
8307         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
8308         tradcpp to tradcpp0.
8309         (.i spec): Add missing output-file spec to cc1 command line.
8310         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
8311
8312 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
8313
8314         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
8315         (implicit_decl_warning): New function.
8316         (implicitly_declare): Use it.
8317         * c-typeck.c (build_external_ref): Use implicit_decl_warning
8318         to complain about implicit decls of builtins.
8319
8320         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
8321         based on pedantic && flag_isoc99, if not already set.
8322         * c-tree.h: Declare mesg_implicit_function_declaration.
8323         Prototype implicit_decl_warning.
8324
8325 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
8326
8327         * Makefile.in (ssa.o): Updated header files in dependences.
8328         * basic-block.h: Added compute_immediate_postdominators declaration.
8329         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
8330         definition.
8331         * flow.c (compute_immediate_dominators): Updated comment.
8332         (compute_immediate_postdominators): Added definition.
8333         * rtl.h (HARD_REGISTER_P): Added definition.
8334         * ssa.c: Include additional header files.
8335         (assert): Added definition.
8336         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
8337         include select hard registers.
8338         (ssa_rename_to_insert): Likewise.
8339         (ssa_rename_from_initialize): Likewise.
8340         (ssa_rename_from_lookup): Likewise.
8341         (original_register): Likewise.
8342         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
8343         include select hard reigsters.
8344         (ssa_rename_from_traverse): Likewise.
8345         (ssa_rename_from_free): Likewise.
8346         (ssa_rename_from_print): Likewise.
8347         (ssa_rename_from_print_1): Likewise.
8348         (ssa_rename_from_hash_function): Likewise.
8349         (ssa_rename_from_equal): Likewise.
8350         (ssa_rename_from_delete): Likewise.
8351         (simplify_to_immediate_dominators): Removed in favor of
8352         flow.c:compute_immediate_dominators.
8353         (find_evaluations_1): Modified to work with hard registers.
8354         (insert_phi_node): Likewise.
8355         (insert_phi_nodes): Likewise.
8356         (struct rename_set_data): Updated prev_reg comment.
8357         (create_delayed_rename): Modified to work with hard registers.
8358         (RENAME_NO_RTX): Updated comment.
8359         (apply_delayed_renames): Modified to work with hard registers.
8360         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
8361         (rename_block): Updated to use revised ssa_rename_to interface.
8362         (rename_registers): Updated to use revised ssa_rename_to and
8363         ssa_rename_from interface.
8364         (convert_to_ssa): Revised to use compute_immediate_dominators and
8365         deal with hard registers.
8366         (make_regs_equivalent_over_bad_edges): Modified to work with hard
8367         registers.  Added check for illegal unification of hard register.
8368         (make_equivalent_phi_alternatives_equivalent): Modified to work
8369         with hard registers.
8370         (compute_conservative_reg_partition): Likewise.
8371         (coalesce_if_unconflicting): Modified to work with hard registers
8372         and check for conflicting hard registers.
8373         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
8374         registers.
8375         (rename_equivalent_regs_in_insn): Modified to work with hard
8376         registers.
8377         (record_canonical_element_1): Added definition.
8378         (check_hard_regs_in_partition): Added definition.
8379         (convert_from_ssa): Added data structure deallocation and check
8380         for illegal hard register unification.
8381         (conflict_hard_regs_p): Added definition.
8382         * toplev.c (rest_of_compilation): Added comment.
8383
8384 2000-07-31  Anthony Green  <green@redhat.com>
8385
8386         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
8387
8388 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
8389
8390         * builtins.c (expand_builtin_apply): Don't defer pop during
8391         argument setup.
8392
8393 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8394
8395         * calls.c (combine_pending_stack_adjustment_and_call): Only use
8396         preferred_unit_stack_boundary when it is > 1.
8397
8398 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8399
8400         * c-common.c (init_function_format_info): Add C99 format functions
8401         in C99 mode.
8402
8403         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
8404         void' or 'register void' as being the special case of 'void' alone
8405         in a parameter list.
8406
8407         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
8408         discarding qualifiers into a plain warning.
8409
8410 2000-07-31  Kazu Hirata  <kazu@hxi.com>
8411
8412         * combine.c: Fix formatting.
8413
8414         * h8300.md: Fix formatting.
8415
8416         * local-alloc.c: Fix formatting.
8417
8418         * h8300.c (get_shift_alg): Remove the variable alg.
8419         (emit_a_shift): Rearrange code to improve readability.
8420
8421         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
8422
8423         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
8424         HImode on all architectures and a combination of HImode and SImode
8425         on H8/300H and H8/S.
8426
8427         * h8300.c (split_adds_subs): Rearrange code for conciseness.
8428
8429 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8430
8431         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
8432         in my last checkin.
8433
8434 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8435
8436         * recog.c (extract_insn): Set operand_mode according to
8437         operand if match_operand is VOIDmode.
8438
8439 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8440
8441         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
8442
8443 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
8444
8445         * c-parse.in (extdefs): Call ggc_collect between external
8446         definitions.
8447
8448 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
8449             Richard Henderson  <rth@cygnus.com>
8450
8451         * Makefile.in (OBJS): Add doloop.o.
8452         * doloop.c: New file.
8453
8454         * final.c (insn_current_reference_address): Return 0 before final.
8455         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
8456         * jump.c (any_uncondjump_p): Likewise.
8457         * loop.c (indirect_jump_in_function): Make static.
8458         (strength_reduce): Call doloop_optimize.
8459         (insert_bct, instrument_loop_bct): Remove.
8460         * loop.h (doloop_optimize): Prototype.
8461         * recog.c (split_all_insns): Split all INSN_P.
8462         * toplev.c (flag_branch_on_count_reg): Default on.
8463
8464         * config/c4x/c4x.c (c4x_optimization_options): Don't set
8465         flag_branch_on_count_reg.
8466         * config/i386/i386.c (override_options): Likewise.
8467         * config/rs6000/rs6000.c (optimization_options): Likewise.
8468
8469         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
8470         (doloop_end): New.
8471         (dbra_ge): Remove, as well as all it's splitters.
8472
8473         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
8474         (doloop_end): New.
8475
8476         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
8477         (ia64_register_move_cost): Declare.
8478         * config/ia64/ia64.c (ar_lc_reg_operand): New.
8479         (struct ia64_frame_info): Add ar_size.
8480         (ia64_compute_frame_size): Set it.
8481         (save_restore_insns): Save and restore ar.lc.
8482         (ia64_register_move_cost): New, moved from header file.  Handle
8483         application registers.
8484         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
8485         (emit_insn_group_barriers): Special case doloop_end_internal.
8486         (ia64_epilogue_uses): Mark ar.lc live at end.
8487         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
8488         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
8489         (FIRST_PSEUDO_REGISTER): Make room.
8490         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
8491         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
8492         (REG_ALLOC_ORDER): Update.
8493         (HARD_REGNO_MODE_OK): Update.
8494         (REGISTER_NAMES): Update.
8495         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
8496         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
8497         (REGNO_REG_CLASS): Update.
8498         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
8499         (REGISTER_MOVE_COST): Move out of line.
8500         (PREDICATE_CODES): Update.
8501         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
8502         (addsi3_plus1_alt, adddi3_plus1_alt): New.
8503         (shladd_elim splitter): Allow constants in the predicate.
8504         (doloop_end, doloop_end_internal): New.
8505
8506 2000-07-30  Richard Henderson  <rth@cygnus.com>
8507
8508         * genattrtab.c (struct insn_def): Add lineno member.
8509         (struct insn_ent): Likewise.
8510         (struct attr_desc): Likewise.
8511         (struct delay_desc): Likewise.
8512         (struct function_unit_op): Likewise.
8513         (struct function_unit): Likewise.
8514         (check_attr_value): Use message_with_line.
8515         (check_defs): Likewise.
8516         (expand_units): Likewise.
8517         (check_attr_test): Take a lineno argument.
8518         (gen_attr): Likewise.
8519         (gen_insn): Likewise.
8520         (gen_delay): Likewise.
8521         (gen_unit): Likewise.
8522         (main): Give it to them.
8523         (convert_set_attr_alternative): Take an insn_def argument
8524         instead of num_alt and insn_index.
8525         (convert_set_attr): Likewise.
8526         (write_test_expr): Protect INSN_ADDRESSES load
8527         with INSN_ADDRESSES_SET_P.
8528
8529 2000-07-30  Richard Henderson  <rth@cygnus.com>
8530
8531         * flow.c (init_propagate_block_info): Use pc_set.
8532
8533 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8534
8535         * i386.md (*lea_general_[123]) New insns and splits.
8536         (addsi3 to lea splitter): Handle other modes too.
8537         (shlsi3 to lea splitter): Likewise.
8538         (addhi_1_lea, shlhi_1_lea): New patterns.
8539         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
8540
8541 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8542
8543         * recog.c (general_operand, nonimmediate_operand): Accept
8544         any mode for VOIDmode CONSTANT_P operands.
8545
8546 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8547
8548         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
8549         instead of replace_rtx.
8550         * recog.c (validate_replace_rtx_subexp): New function.
8551         * recog.h (validate_replace_rtx_subexp): Declare.
8552
8553 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8554
8555         * combine.c (simplify_set, make_extraction, make_compound_operation
8556         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
8557         as force_to_mode argument.
8558
8559 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8560
8561         * combine.c (if_then_else_cond): Be sure that mode fits in
8562         HOST_WIDE_INT.
8563
8564 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8565
8566         * combine.c (record_promoted_value):  Allow bitsize of mode
8567         to be equivalent to HOST_BITS_PER_WISE_INT.
8568
8569 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8570
8571         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
8572         Do not call gen_mode_alignment when mode is BLKmode.
8573
8574 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8575
8576         * loop.c (express_from_1): Fix call of simplify_gen_binary.
8577
8578 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8579
8580         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
8581         VOIDmode implies both operands to be VOIDmode.
8582         (simplify_ternary_operation): Compute properly the mode of comparison.
8583         * combine.c (combine_simplify_rtx): Likewise.
8584
8585 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
8586
8587         * basic-block.h (struct loops): New field rc_order.
8588         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
8589         (flow_loops_free): Free rc_order.
8590         (flow_depth_first_order_compute): New parameter rc_order.
8591         (flow_loops_find): Allocate rc_order and swap usage with
8592         dfs_order.
8593
8594 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8595            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8596
8597         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
8598         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
8599         (nodb_call, return_from_epilogue): Likewise.
8600         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
8601         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
8602         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
8603         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
8604         (c4x_valid_type_attribute_p): Likewise.
8605         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
8606         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
8607
8608 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8609
8610         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
8611         and loadhi_big_constant if applicable.
8612         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
8613         and add new splitter.s
8614
8615 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8616
8617         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
8618
8619 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8620
8621         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
8622
8623 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8624
8625         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
8626
8627 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8628
8629         * config/c4x/libgcc.S (divqf3): Improve accuracy.
8630
8631 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
8632
8633         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
8634         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
8635         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
8636         (get_prev_bb_note): Likewise.
8637         (remove_scope_notes): Likewise.
8638         * flow.c (commit_one_edge_insertion): Likewise.
8639         (merge_blocks_nomove): Likewise.
8640         (verify_flow_info): Likewise.
8641         * gcse.c (insert_insn_end_bb): Likewise.
8642         * reg-stack.c (emit_swap_insn): Likewise.
8643         * ssa.c (first_insn_after_basic_block_note): New function.
8644         (insert_phi_node): Use it.
8645         (rename_block): Likewise.
8646         (eliminate_phi): Likewise.
8647         (make_regs_equivalent_over_bad_edges): Likewise.
8648         (make_equivalent_phi_alternatives_equivalent): Likewise.
8649         (for_each_successor_phi): Likewise.
8650         (convert_from_ssa): Modify phi-node deletion algorithm.
8651
8652 2000-07-29  Andreas Jaeger  <aj@suse.de>
8653
8654         * configure.in (mips*-*-linux*): Use mips*el to check for little
8655         endian MIPS, add tmake_file.
8656
8657         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
8658         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
8659         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
8660
8661 2000-07-28  Richard Henderson  <rth@cygnus.com>
8662
8663         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
8664         Sign extend mode size before negating.
8665
8666 2000-07-28  Richard Henderson  <rth@cygnus.com>
8667
8668         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
8669
8670 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
8671
8672         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
8673         (cse_insn): Likewise.
8674         (addr_affects_sp_p): Likewise.
8675         * expr.c (move_by_pieces): Likewise.
8676         (clear_by_pieces): Likewise.
8677         * gcse.c (oprs_unchanged_p): Likewise.
8678         * haifa-sched.c (sched_analyze_2): Likewise.
8679         * recog.c (offsettable_address_p): Likewise.
8680         * regclass.c (record_address_regs): Likewise.
8681         * reload.c (find_reusable_reload): Likewise.
8682         (push_reload): Likewise.
8683         (operands_match_p): Likewise.
8684         (decompose): Likewise.
8685         (find_reloads_address_1): Likewise.
8686         (find_inc_amount): Likewise.
8687         * reload1.c (elimination_effects): Likewise.
8688         * resource.c (mark_set_resources): Likewise.
8689         * flow.c (attempt_auto_inc): New function; mostly broken out
8690         of find_auto_inc.
8691         (find_auto_inc): Split into two functions and enhanced to
8692         generate POST_MODIFY.
8693         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
8694         * rtl.h (count_all_occurrences):  Declare.
8695         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
8696         defined.
8697         * rtlanal.c (count_all_occurrences): New function.
8698         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
8699         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
8700
8701         * config/ia64/ia64-protos.h (destination_operand): Declare.
8702         * config/ia64/ia64.c (destination_operand): New function.
8703         (ia64_print_operand): Handle POST_MODIFY.
8704         (rtx_needs_barrier): Likewise.
8705         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
8706         (HAVE_POST_MODIFY_REG): Define to 1.
8707         (MAX_REGS_PER_ADDRESS): Change to 2.
8708         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
8709         (LEGITIMATE_ADDRESS_REG): New helper macro.
8710         (LEGITIMATE_ADDRESS_DISP): Likewise.
8711         (PREDICATE_CODES): Add entry for destination_operand.
8712         * config/ia64/ia64.md (all mov patterns): Use destination_operand
8713         predicate for operand 0.
8714
8715 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8716
8717         * dwarf2out.c: Indent #error directive.
8718
8719         * gbl-ctors.h: Fix typo in comment.
8720         (__do_global_ctors): Prototype.
8721
8722         * gcse.c (record_one_set, pre_delete): Remove unused variables.
8723
8724         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
8725         (print_operand): Initialize variable `t'.
8726
8727 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
8728
8729         * config/arm/arm.md ("call_value"): removed constraints.
8730         Constraints are ignored in expanders.
8731         (*call_value_reg): split =rf into various constraints.
8732         (*call_value_mem): same
8733         (*call_value_symbol): same
8734         (*sibcall_value_insn): same
8735
8736 2000-07-28  Philipp Thomas  <pthomas@suse.de>
8737
8738         * install.texi (--enable-nls): Change the description of the NLS
8739         related configure options to match the current state.
8740         (--with-included-gettext): Likewise.
8741         (--enable-maintainer-mode): New description added.
8742         * extend.texi (-fstrict-prototype): Add missing '.'.
8743
8744 2000-07-27  Jim Wilson  <wilson@cygnus.com>
8745
8746         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
8747         DECL_INITIAL (decl) == NULL_TREE.
8748
8749 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
8750
8751         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
8752         on insn-attr.h with it.
8753         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
8754         * insn-addr.h: New header.
8755         (insn_addresses_): Renamed from insn_addresses.
8756         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
8757         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
8758         INSN_ADDRESSES_NEW): New macros.
8759         * genattrtab.c (write_test_expr): Use new macros.
8760         * final.c (insn_addresses, init_insn_lengths): Likewise.
8761         (align_fuzz, shorten_branches): Likewise.
8762         (final): Likewise.  Do not reject new insns if their addresses
8763         have been added to INSN_ADDRESSES.
8764         * config/arm/arm.c, config/avr/avr.c: Use new macros.
8765         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
8766         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
8767         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
8768         * config/sh/sh.c: Likewise.
8769         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
8770
8771         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
8772
8773 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
8774
8775         * gcc.c (struct prefix_list): Add member priority.
8776         (enum path_prefix_priority): Declare.
8777         (add_prefix): Replace ``first'' with ``priority''.  Append new
8778         entry but keep list in priority order.
8779         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
8780         PREFIX_PRIORITY_LAST to add_prefix.
8781         (process_command): Move include kludge - foo/stageN - to before
8782         foo/include.
8783
8784 2000-07-27  Jason Merrill  <jason@redhat.com>
8785
8786         * dwarf2out.c (gen_typedef_die): Abort if we get identical
8787         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
8788
8789 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
8790
8791         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
8792         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
8793
8794 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
8795
8796         * c-decl.c (finish_function): Don't treat 'main' specially unless
8797         flag_hosted.  In C99 mode, return 0 from 'main' unless
8798         DEFAULT_MAIN_RETURN is otherwise defined.
8799
8800         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
8801         parameters defaulting to int in an old-style function definition.
8802
8803 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8804
8805         * c-parse.in (string): For -Wtraditional, warn about string
8806         concatenation only once per line.
8807
8808 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
8809
8810         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
8811         for HI-UX/WE2 systems.
8812
8813 2000-07-24  Bruce Korb  <bkorb@gnu.org>
8814
8815         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
8816         defining the __xxx_TYPE__ macros.
8817         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
8818         * fixincl/fixlib.h: don't need to include "tm.h" anymore
8819         * fixincl/inclhack.def(type_map): now obsolete
8820
8821 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
8822
8823         * cpp.texi: Append a trailing full-stop to xrefs where needed.
8824
8825 2000-07-26  Dave Pitts  <dpitts@cozx.com>
8826
8827         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
8828         routine constants.
8829         (mvs_hash_alias): New function.
8830         (mvs_add_alias): Change argument spacing.
8831         (mvs_need_alias): Change aliasing criteria. Added documentation.
8832         (mvs_get_alias): Change to use hashed name. The hashed name prevents
8833         CSECT name collisions.
8834         (mvs_check_alias): Likewise.
8835         (handle_pragma): Change documentation.
8836         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
8837         mode from SImode to DImode.
8838         (iorhi3): Changed LTORG size for insn.
8839
8840 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
8841
8842         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
8843         mem if the address is a mode_dependent_address_p.
8844
8845 2000-07-26  Kazu Hirata  <kazu@hxi.com>
8846
8847         * h8300.c (print_operand): Print ":8" when the 'R' operand is
8848         suitable for 8-bit absolute.
8849         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
8850         (OK_FOR_U): Add a case for the 8-bit constant address on the
8851         H8/300H.
8852
8853 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
8854
8855         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
8856         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
8857         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
8858         lack of implemented alignment.
8859
8860 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
8861
8862         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
8863         cross-compiling between 64-bit and 32-bit machines.
8864
8865 2000-07-27  Richard Henderson  <rth@cygnus.com>
8866
8867         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
8868         (movhicc_astep, movhi_internal_astep): New.
8869         (movsicc_astep, movsi_internal_astep): New.
8870         (movdicc_astep, movdi_internal_astep): New.
8871         (movsfcc_astep, movsf_internal_astep): New.
8872         (movdfcc_astep, movdf_internal_astep): New.
8873         (movxfcc_astep, movxf_internal_astep): New.
8874         (cmovdi_internal_astep, cmovsi_internal_astep): New.
8875         Unify the cmov[ds]i splitters.
8876
8877 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
8878
8879         * real.c (asctoeg): Rename `error' label to unexpected_char_error
8880
8881 2000-07-26  Nick Clifton  <nickc@cygnus.com>
8882
8883         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
8884         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
8885
8886         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
8887         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
8888
8889 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
8890
8891         * c-decl.c (finish_enum): Convert enumerations that fit in an
8892         `int' to `int'.
8893         (build_enumerator): In pedantic mode, cast to `int' those that
8894         don't.
8895
8896 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
8897
8898         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
8899
8900 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8901
8902         * sh.md (cmpgtdi_t): Must be split.
8903         (cmpgtdi_t+1): New splitter.
8904
8905 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8906
8907         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
8908         warnings for indented directives even if we are skipping.
8909
8910 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
8911
8912         * invoke.texi (strict-prototypes): Remove.
8913         * extend.texi (Deprecated Features): Add strict-prototypes.
8914         (Backwards Compatibility): New node.
8915
8916 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8917
8918         * config/i386/i386.md (andsi_1+1): Allow HImode.
8919         (andsi_1+2): Require q_regs_operand.
8920
8921 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8922
8923         * config/i386/i386.md (call_pop): Check operands[0],
8924         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8925         (call): Likewise.
8926         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8927         (call_value): Likewise.
8928
8929 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8930
8931         * toplev.c (pipe_closed): Delete.
8932         (crash_signal): New.  Generate ICE for a fatal signal.
8933         (float_signal): Call crash_signal outside a float-handler
8934         block, not abort.
8935         (main): Install crash_signal as handler for core-dumping signals.
8936
8937 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
8938
8939         * rs6000.c (print_operand, case 'T'): New case.
8940
8941         * rs6000.md (call_indirect_aix32): Convert to expander of
8942         scheduled instructions.
8943         (call_indirect_aix64): Likewise.
8944         (call_value_indirect_aix{32,64}): Likewise.
8945         (call, call_value): Invoke expanders for AIX.  Fall through to
8946         matchers for SysV.
8947         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
8948         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
8949         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
8950         only "g" constraint.
8951         (call_nonlocal_aix64): Likewise.
8952         (call_value_nonlocal_aix{32,64}): Likewise.
8953         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
8954         operands.
8955         (call_value_nonlocal_sysv): New pattern.
8956         (indirect_jump{si,di}): Use new 'T' modifier.
8957         (tablejump{si,di} matchers): Likewise.
8958         (return_internal_{si,di}): Likewise.
8959         (return_eh_{si,di}): Likewise.
8960
8961 2000-07-24  Richard Henderson  <rth@cygnus.com>
8962
8963         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
8964         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
8965         * config/ia64/ia64.md (movdi_internal): Use it.
8966
8967 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
8968
8969         * cppexp.c: Warn about unary + if -Wtraditional.
8970         * cpplex.c (lex_line): Always set BOL on the first token of a line.
8971
8972 2000-07-24  Michael Meissner  <meissner@redhat.com>
8973
8974         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
8975         unsupported macro.
8976
8977 2000-07-24  Nick Clifton  <nickc@cygnus.com>
8978
8979         * config/arm/arm.c (emit_multi_reg_push): Generate a
8980         REG_FRAME_RELEATED_NOTE that is compatable with the code in
8981         dwarf2out_debug_frame_expr.
8982
8983 2000-07-24  Jason Merrill  <jason@redhat.com>
8984
8985         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
8986         UNALIGNED_INT_ASM_OP.
8987         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
8988         a location expression.
8989         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
8990         assume indirect access if we're saving the CFA address exactly.
8991
8992         * Makefile.in (bootstrap): Move -BstageN/ to the end.
8993
8994 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
8995
8996         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
8997         as well.
8998
8999 2000-07-24  Michael Meissner  <meissner@redhat.com>
9000
9001         * invoke.texi (D30V Options): Add d30v options.
9002
9003 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
9004
9005         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
9006         needed by our gcse pass anymore.
9007         (free_pre_mem): Corresponding changes.
9008         (compute_pre_data): Do not call compute_transpout anymore.
9009
9010         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
9011         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
9012         changes.
9013
9014         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
9015         (compute_pre_data): Do it here instead.
9016
9017         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
9018         'temp_bitmap'.
9019         (pre_delete): Corresponding changes.
9020
9021 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
9022
9023         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
9024         to figure out whether or not a variable has already been emitted.
9025
9026 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
9027
9028         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
9029         instead of gen_call.
9030
9031 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
9032
9033         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
9034
9035 2000-07-23  Kazu Hirata  <kazu@hxi.com>
9036
9037         * h8300.c: Fix formatting.
9038
9039 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
9040
9041         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
9042         for `long' switch expression into a plain warning.
9043
9044         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
9045         (yylex): Don't pedwarn for "inline" in C99 mode.
9046
9047         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
9048         with %p.
9049         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
9050         ggc_alloc): Likewise.
9051         * bb-reorder.c (dump_scope_forest_1): Likewise.
9052
9053 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
9054
9055         * reload.c (find_reloads_toplev): Add new parameter
9056         "address_reloaded".
9057         (find_reloads): Add new parameter to find_reloads_toplev calls.
9058
9059 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
9060
9061         * collect2.c (main): Typo fixed.
9062         * diagnostic.c: Typo fixed.
9063         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
9064         * eh-common.h: Typo fixed.
9065         * emit-rtl.c (start_sequence): Typo fixed.
9066         * flow.c (find_label_refs): Typo fixed.
9067         (calculate_global_regs_live): Typo fixed.
9068         (mark_regno_cond_dead): Typo fixed.
9069         (create_edge_list): Typos fixed.
9070         (verify_edge_list): Typo fixed.
9071         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
9072         * loop.c (strength_reduce): Typo in function name fixed.
9073         * rtl.h: Added comments.  Typo in function name fixed.
9074         * rtlanal.c: Typo in function name fixed.
9075         (insn_dependant_p): Rename to ...
9076         (insn_dependent_p): ... this.
9077         (computed_jumo_p): Typo fixed.
9078
9079 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9080
9081         * system.h (__FUNCTION__): Wrap definition in #ifndef.
9082
9083 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
9084
9085         * rs6000.h (SIZE_TYPE): Define.
9086
9087 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
9088
9089         * ssa.c (rename_insn_1): Don't rename registers that are
9090         CLOBBERed.
9091
9092 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
9093
9094         * diagnostic.c (trim_filename, fancy_abort): Moved here from
9095         rtl.c.
9096         (fatal_function, set_fatal_function): Removed.
9097         (fatal): Don't prepare for or call the fatal_function.
9098         (diagnostic_lock, error_recursion): New.
9099         (diagnostic_for_decl, report_diagnostic): Guard against
9100         re-entering the error reporting routines.
9101         (fancy_abort): Assume function is not NULL.
9102
9103         * errors.c (fancy_abort): New.  Assume function is not NULL.
9104         * tradcpp.c (fancy_abort): Assume function is not NULL.
9105
9106         * system.h: Provide default definition of __FUNCTION__.
9107         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
9108         Always use __FUNCTION__ in definition of abort.
9109         * tree.h: Likewise.
9110         * varray.h: Likewise.
9111         * toplev.h: Likewise.  Don't prototype set_fatal_function.
9112
9113 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
9114
9115         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
9116         in 64-bit mode.
9117         * glimits.h: Don't do #if defined for ARCH_PPC.
9118
9119         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
9120         constants of size no larger than a pointer should go in the TOC.
9121         Add 'MODE' parameter.
9122         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
9123         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
9124         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
9125         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
9126         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
9127         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
9128         (rs6000_legitimize_address): Likewise.
9129         (rs6000_emit_move): Likewise.
9130         (rs6000_select_rtx_section): Likewise.
9131         (output_toc): Deal properly with outputting small constants like
9132         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
9133         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
9134         MODE parameter.  Put small constants in the TOC.
9135
9136         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
9137         easy in SImode.
9138         (rs6000_emit_move): When reload calls us with an illegitimate
9139         address, exit early.  Move the change_address calls to one place
9140         at the end of the routine.  Merge the SImode and DImode expanders.
9141         When called by reload to put an integer into a FP register, force
9142         it to memory.
9143
9144         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
9145         field.
9146         (rs6000_hash_constant): Hash mode too.
9147         (toc_hash_function): Allow for key_mode.
9148         (toc_hash_eq): Structures are different if key_mode differs.
9149         (output_toc): Add 'mode' parameter.  Save key_mode.
9150         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
9151         Pass 'mode' parameter.
9152         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
9153
9154         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
9155         for vtable references.
9156
9157         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
9158         choice, don't put integer values in FP regs.
9159
9160 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
9161
9162         * flow.c (verify_flow_info): Revamp code to verify that the
9163         head and end of each basic block are in the insn chain.
9164
9165 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
9166
9167         * gcse.c (record_one_set): Prepend instead of append onto
9168         reg_set_table, making it O(n) instead O(n^2).
9169         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
9170         Use a queue instead of a stack as worklist.
9171
9172 2000-07-20  Kazu Hirata  <kazu@hxi.com>
9173
9174         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
9175         * h8300.h (OK_FOR_T): New.
9176         (EXTRA_CONSTRAINT): Support OK_FOR_T.
9177         * h8300.md: Use inc/dec.[wl] for increment/decrement
9178         by 1 and 2 in HI and SI modes.
9179
9180 2000-07-20  Jim Wilson  <wilson@cygnus.com>
9181
9182         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
9183         larger than 14 bits.
9184
9185 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
9186
9187         * cppmacro.c (CAN_PASTE_AFTER): New macro.
9188         (count_params): Don't set GNU_REST_ARGS on anything.
9189         (save_expansion): Set PASTE_LEFT only on tokens for which
9190         CAN_PASTE_AFTER is true, or which are named operators.
9191
9192         * cpplex.c (parse_args): Distinguish between a rest argument
9193         given one empty argument, and a rest argument given zero arguments.
9194         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
9195         deletion of previous token based on that.
9196         (get_raw_token): Flatten some control structure.
9197
9198         * cpplib.h (CPP_LAST_EQ): Correct.
9199         (VOID_REST): New token flag.
9200         (GNU_REST_ARGS): Delete.
9201
9202         * tradcpp.c (main): Don't munge -D options.
9203         (make_definition): Bring -D handling in line with cpplib.
9204         (do_define): Strip all leading whitespace from macro definitions.
9205
9206 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
9207
9208         * Makefile.in (tradcpp): Depend on intl.o and version.o.
9209
9210 2000-07-20  Bruce Korb  <bkorb@gnu.org>
9211
9212         * fixincl/check.tpl: strip the platform specific types before testing
9213         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
9214         * fixincl/fixincl.tpl: use platform specific types
9215         * fixincl/fixlib.h: include the platform specific types
9216         * fixincl/inclhack.def(gnu_types): don't supply the types
9217         * fixincl/fixincl.x: regen
9218
9219 2000-07-19  Jim Wilson  <wilson@cygnus.com>
9220
9221         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
9222         GR_REGS.
9223
9224 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
9225
9226         * tradcpp.c (rescan): Do not recognize directives when the #
9227         is indented.
9228
9229 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
9230
9231         Implement C++ named operators.
9232
9233         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
9234         of operators allowed in #if and having an _EQ variant.  Add
9235         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
9236         (cpp_token flags): Add NAMED_OP.
9237         (enum node_type): Add T_OPERATOR.
9238         (struct cpp_hashnode): Add code slot to value union.
9239         * cpphash.h (spec_nodes): Remove n_defined.
9240
9241         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
9242         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
9243         (is_macro_disabled): Tweak error messages.
9244
9245         * cpplib.c (get_define_node): Disallow all named operators as
9246         macro names.  Tweak error messages.
9247         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
9248
9249         * cppinit.c (builtin_array): Add entries for the named operators.
9250         * cppexp.c (lex): Check for CPP_DEFINED token.
9251         (priority table): Add entries for CPP_MIN and CPP_MAX.
9252         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
9253
9254 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
9255
9256         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
9257         larger than the array of cuids.
9258         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
9259         cuids.
9260
9261 2000-07-19  Bruce Korb  <bkorb@gnu.org>
9262
9263         * fixinc/fixincl.c:  Convert to using a table of environment variables
9264         and activate the auto-edit marker on the fixed output files.
9265         * fixinc/fixlib.h:  Define the environment table
9266         * fixinc/fixincl.sh: export the ${INPUT} dir
9267         * fixinc/check.tpl: likewise
9268
9269 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
9270
9271         * gcc.c (.h spec): Fix typo.
9272
9273 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
9274
9275         * Makefile.in: Fix tradcif.c path.
9276
9277 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
9278
9279         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
9280           macros, not five.
9281
9282         * cpphash.h (TOKEN_NAME): New macro.
9283         (_cpp_spell_operator): Deleted.
9284         (token_spellings): Now _cpp_token_spellings.
9285
9286         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
9287         * cpplex.c: Use OP and TK macros when expanding the
9288         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
9289         store the stringification of the enumeration name (CPP_CHAR,
9290         etc.) in the name slot of token_spellings.
9291         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
9292         token_spellings directly.
9293         * cpplib.c: Use TOKEN_SPELL.
9294
9295         * cpplex.c (_cpp_push_token): If the token being pushed back
9296         is the previous token in this context, just subtract one from
9297         context->posn.
9298         * cppmacro.c (save_expansion): Clear aux field when storing a
9299         placemarker.
9300
9301 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
9302
9303         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
9304         buffer, provided it is not NULL.
9305
9306 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
9307
9308         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
9309         case of invalid volatile re-declaration.
9310
9311 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
9312
9313         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
9314         (expand_call): Adjust caller.
9315
9316 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
9317
9318         * diagnostic.h (report_diagnostic): Change prototype.
9319
9320         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
9321         diagnostic_for_decl):  Change prototype.
9322         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
9323         error, warning, error_with_file_and_line,
9324         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
9325         Adjust call to report_diagnostic, diagnostic_for_decl.
9326         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
9327         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
9328
9329         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
9330         varaible argument list.
9331
9332 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
9333
9334         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
9335         moved to cppmacro.c.
9336         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
9337         dump_hash_helper): Delete.
9338         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
9339         cpp_forall_identifiers): New. Implement specialized version of
9340         Vlad's expandable hash table.
9341         (cpp_lookup): Use new functions.
9342         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
9343         implementation.
9344         * cppmacro.c: New file.
9345         * cppinit.c (dump_macros_helper): New.
9346         (cpp_finish): Iterate over the identifier table directly.
9347         * cpplex.c (parse_name): Calculate the hash of the identifier
9348         while we scan it.  Use _cpp_lookup_with_hash when we can.
9349
9350         * cpphash.h: Update prototypes.
9351         (xcnewvec, HASHSTEP): New helper macros.
9352         * cpplib.h: Update prototypes.
9353         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
9354         (cppmacro.o): New rule.
9355         (cpphash.o): Update deps.
9356
9357         * cppmain.c: Do not set pfile->printer if no_output is on.
9358
9359 2000-07-15  Neil Booth  <neilb@earthling.net>
9360
9361         * cpplib.c: Change all directive-handler functions to return
9362         void, not int.
9363         * cpphash.h: Update typedefs.
9364
9365 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
9366
9367         * configure: Regenerate.
9368
9369         * extend.texi (Extended Asm): Mention that a memory clobber
9370         does not count as a side-effect.
9371
9372         * unroll.c (copy_loop_body): Fix one instance of using host
9373         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
9374         cross-compile.
9375
9376         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
9377
9378 2000-07-17  Richard Henderson  <rth@cygnus.com>
9379
9380         * config/ia64/ia64.md (movdi): Split out load address code.
9381         New post-reload splitter for symbolic operands.
9382         (movdi_internal): Abort if we didn't split symbolic operands
9383         when we should have.
9384         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
9385         (ia64_reorg): Split insns when not optimizing.
9386         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
9387
9388 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9389
9390         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
9391         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
9392
9393 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
9394
9395         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
9396
9397 2000-07-17  Jason Merrill  <jason@redhat.com>
9398
9399         * Makefile.in (clean): Remove libgcc directory.
9400
9401         * configure.in (-Wno-long-long check): Use higher-level macros.
9402
9403 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
9404
9405         * simplify-rtx.c (simplify_binary_operation): Recognize
9406            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
9407         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
9408            a CONST_INT, it will always be zero.
9409
9410 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
9411
9412         * loop.c (check_dbra_loop) : Return if more than one condition is
9413         present to control the loop.
9414
9415 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
9416
9417         * mips.c (mips_expand_prologue): Don't calculate the last argument
9418         register unless we need it.  When we are calculating this, make
9419         sure FUNCTION_ARG is giving us a REG.
9420
9421 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9422
9423         * flow.c (libcall_dead_p): Use single_set to verify the insn
9424         has only one set and get for analysis.
9425         (propagate_one_insn): Don't pass the PATTERN of the insn.
9426
9427 2000-07-17  Mark Klein <mklein@dis.com>
9428
9429          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
9430
9431 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9432
9433         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
9434         * configure.in (TARGET_GETGROUPS_T): Evaluate.
9435         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
9436         of second argument of getgroups.
9437         * configure, config.in: Rebuilt.
9438
9439 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
9440
9441         * simplify-rtx.c (simplify_relational_operation): Two signed
9442         values with equal high words are less/greater than each other if
9443         their low words are less/greater when considered as unsigned.
9444
9445 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
9446
9447         * configure.in (vax-*-openbsd):  Change to new style configuration,
9448         add collect2/float_format information.
9449         * configure:  Rebuilt.
9450         * config/vax/openbsd1.h:  New.
9451         * config/vax/openbsd.h:  New.
9452         * config/vax/t-openbsd:  New.
9453
9454 2000-07-17  Chip Salzenberg  <chip@valinux.com>
9455
9456         * c-common.c (shorten_compare): Quiet warnings about unsigned
9457         comparisons with zero when they occur in a system header.
9458
9459 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9460
9461         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
9462         update to describe current practice.
9463
9464         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
9465
9466         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
9467         references to C9X.  Change references to -fstd and -flang-isoc9x
9468         to refer to -std.
9469
9470         * c-common.c (scan_char_table): Allow "z" length modifiers on
9471         diouxXn formats.
9472         (check_format_info): Use TYPE_DOMAIN on the type matched against
9473         for "z" formats, to retrieve the language size_t rather than the
9474         internal one.
9475
9476         * c-common.c (check_format_info): Do not make a pedantic objection
9477         to the 'L' length modifier if used with a floating point type
9478         character.
9479
9480         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
9481         constants in C99 mode.
9482
9483 2000-07-17  Kazu Hirata  <kazu@hxi.com>
9484
9485         * h8300.md: Fix the format of mac.
9486         (movsi_h8300hs): Output a tab after stmac instead of a space.
9487
9488         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
9489         profitable adds/subs sequences.
9490
9491         * fold-const.c: Fix comment typos.
9492
9493 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
9494
9495         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
9496
9497 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9498
9499         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
9500
9501 2000-07-16  Neil Booth  <NeilB@earthling.net>
9502
9503         * cpplex.c: Update comments.
9504         * README.Portability: Small update.
9505
9506 2000-07-16  Neil Booth  <NeilB@earthling.net>
9507
9508         * README.Portability:  Small update.
9509
9510 2000-07-15  Richard Henderson  <rth@cygnus.com>
9511
9512         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
9513         * config/ia64/ia64.c (ia64_move_ok): New function.
9514         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
9515         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
9516
9517 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
9518
9519         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
9520         immediately following a paste operator.
9521         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
9522         (cpp_reader_init): Call it, if HOST_EBCDIC.
9523         (cpp_handle_options): Do not sort option list here.
9524         (handle_option): Rename to cpp_handle_option and export.
9525         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
9526         _cpp_get_token directly.
9527         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
9528         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
9529         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
9530         cpp_scan_line.
9531
9532 2000-07-15  Richard Henderson  <rth@cygnus.com>
9533
9534         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
9535         cast around an expression.  Tidy other unsigned tests.
9536
9537 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
9538
9539         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
9540         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
9541         (v_message_with_decl): Rename to ...
9542         (format_with_decl): ... this. Tweak
9543         (diagnostic_for_decl): New function.
9544         (fatal_io_error): Use verbatim in lieu of notice.
9545         (announce_function): Use verbatim.
9546         (default_print_error_function): Likewise.
9547         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
9548         infratructure.
9549
9550 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9551
9552         * mips.c (function_arg_pass_by_reference): Don't do automatic
9553         aggregate initialization.
9554         (machine_dependent_reorg): Initialize variable `mode'.
9555
9556         * mips.md (absdi2): Change variable `regno1' to unsigned int.
9557         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
9558         conflicts with sys/param.h macro of the same name.
9559         (reload_outdi): Likewise.
9560
9561 2000-07-15  Michael Meissner  <meissner@redhat.com>
9562
9563         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
9564         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
9565         create a new node instead.
9566
9567 2000-07-15  Neil Booth  <NeilB@earthling.net>
9568
9569         * README.Portability: Correct example about calling a function
9570         through a pointer to function.  Format wide paragraphs.
9571
9572 2000-07-15  Michael Meissner  <meissner@redhat.com>
9573
9574         * README.Portability: Update integer suffixes and function
9575         prototype sections.
9576
9577 2000-07-15  Neil Booth  <NeilB@earthling.net>
9578
9579         * README.Portability: Small update.
9580
9581 2000-07-15  Neil Booth  <NeilB@earthling.net>
9582
9583         * README.Portability: New file.
9584
9585 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
9586
9587         * INSTALL: Give special instructions for building GCC on Irix 6.
9588         * config/mips/x-iris6 (CC): Don't set it.
9589         (OLDCC): Likewise.
9590
9591 2000-07-14  Jason Merrill  <jason@redhat.com>
9592
9593         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
9594         register in the stack and later in another register, use the new
9595         register.
9596
9597 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
9598
9599         * config/mips/mips.md: (absdi2): Handle sign_extend for
9600         second operand.
9601
9602 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
9603
9604         * cpplib.c (do_pragma_dependency): Tidy warning messages.
9605
9606 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
9607
9608         * .cvsignore: Correct typo.
9609
9610 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
9611
9612         * .cvsignore: Add generated YACC files.
9613         * objc/.cvsignore: New file.
9614
9615 2000-07-14  Neil Booth  <NeilB@earthling.net>
9616
9617         * cpplex.c (adjust_column): New funcion.
9618         (skip_whitespace): Use it.
9619         (skip_block_comment): Use it, and warn about /*/* with
9620         -Wcomments.
9621
9622 2000-07-14  Neil Booth  <NeilB@earthling.net>
9623
9624         * cpphash.c (struct macro_info): Add new members.
9625         (_cpp_free_definition): Delete the macro directly.
9626         (count_params): Return void, with first token of
9627         expansion in struct macro_info on success.
9628         (parse_define): Return int.  Hoist syntax checking from
9629         save_macro_expansion.  Leave call to save_expansion to
9630         _cpp_create_definition.
9631         (alloc_macro): Needs just 2 arguments.
9632         (free_macro): Delete.
9633         (save_expansion): Don't perform syntax check.
9634         (_cpp_create_definition): Call save_expansion.
9635
9636 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9637
9638         * genrecog.c (write_header): Split long string.
9639
9640         * cpphash.c (macro_info): Don't use the `signed' keyword.
9641
9642         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
9643
9644 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
9645
9646         * calls.c (stored_args_map): New variable.
9647         (check_sibcall_argument_overlap_1): New.
9648         (check_sibcall_argument_overlap): New.
9649         (expand_call): Initialize stored_args_map.
9650         Call check_sibcall_argument_overlap.
9651
9652 2000-07-13  Bruce Korb  <bkorb@gnu.org>
9653
9654         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
9655         (emit_gnu_type): utility procedure for gnu_type_fix
9656         (gnu_type_fix): implement various pre-processor guards around
9657         standard types so these types can be defined over and over
9658         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
9659         types alluded to above will have GNU-compliant base types
9660         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
9661         * fixinc/inclhack.def: add test_text entries and utilize the new
9662         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
9663         * fixinc/fixincl.x: regenerate
9664
9665 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9666
9667         * diagnostic.c (vline_wrapper_message_with_location,
9668         v_message_with_file_and_line, v_error_with_file_and_file,
9669         v_error_for_asm, v_warning_for_asm, vfatal,
9670         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
9671         vsorry, verror, vwarning, vpedwarn): Remove.
9672         (diagnostic_for_asm): New function.
9673         (pedwarn, error, warning, pedwarn_with_file_and_line,
9674         error_with_file_and_line, warning_with_file_and_line, sorry,
9675         error_for_asm, warning_for_asm, fatal): Reimplement.
9676         (finish_diagnostic): Clear diagnostic info as well.
9677
9678 2000-07-13  Neil Booth  <NeilB@earthling.net>
9679
9680         * c-common.h (flag_digraphs): New.
9681         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
9682         * c-lex.c (yylex): Use flag_digraphs to decide whether to
9683         honour digraphs.
9684
9685 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
9686
9687         * gcc.c (do_spec_1): Add new %B operator.
9688         (set_input): Prepare for %B.
9689
9690         (link_command_spec): Move up with the other tm.h-
9691         overrideable specs.  Factor out the portion conditional on
9692         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
9693         (struct compiler): Just have a single spec string.  All users
9694         updated.
9695         (default_compilers): Remove unnecessary braces.
9696         (static_specs): Update.
9697
9698         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
9699         named specs.
9700         (C and assembly specs): Use the new named specs, as appropriate.
9701
9702         * objc/lang-specs.h: Use the new named specs.
9703         Remove unnecessary braces.
9704
9705 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9706
9707         * gcc.c (execute): If a subprocess gets a fatal signal, report
9708         strsignal() of the signal number, and ask for a bug report.
9709         Do not do this for SIGPIPE if there's already been an error.
9710
9711         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
9712         Delete pipe_closed.
9713
9714         * tradcif.c: Remove.
9715
9716 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9717
9718         * final.c (profile_function): Do not emit profile counters in
9719         the data section, if NO_PROFILE_COUNTERS is defined.
9720         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
9721         FUNCTION_PROFILER.
9722
9723         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
9724         (FUNCTION_PROFILER): Just emit a call to mcount.
9725
9726 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9727
9728         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
9729
9730         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
9731         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
9732         traditional, lang_chill, or lang_fortran.
9733
9734         * cppfiles.c: #undef strcmp to suppress warning about macros
9735         used without arguments.
9736         (_cpp_execute_include): Use f, not fname, in "No include path"
9737         error.
9738         (_cpp_pop_file_buffer): New function.
9739         * cpplib.c: Don't include <sys/mman.h>.
9740         (cpp_push_buffer): Set line_base and lineno in new buffer.
9741         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
9742
9743         * cpplex.c: Move all prototypes and structure declarations to the
9744         top of the file.  Properly parenthesise some macro arguments.
9745         (cpp_scan_line): New function.
9746         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
9747         don't need to walk up the stack counting.
9748
9749 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9750
9751         * c-common.c (combine_strings): Emit a pedantic warning when a
9752         string length is greater than the minimum ANSI C is required
9753         to support.
9754
9755 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
9756
9757         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
9758         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
9759
9760 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9761
9762         * c-decl.c (define_label): Warn about identifier conflicts with
9763         labels in traditional C.
9764
9765         * c-parse.in (unop +): Warn about the unary plus operator for
9766         traditional C.
9767
9768         * c-typeck.c (store_init_value): Warn about automatic aggregate
9769         initialization for traditional C.
9770
9771         * invoke.texi (-Wtraditional): Document new warnings.
9772
9773 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9774
9775         * Makefile.in (c-errors.o): Fix thinko in dependency.
9776
9777 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9778
9779         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
9780         -traditional, -ftraditional, or -traditional-cpp was given.
9781         Do not pass -traditional to the preprocessor.
9782         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
9783         preprocessor does it automatically.
9784         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
9785
9786         * ch/lang-specs.h: Always use tradcpp.  Do not pass
9787         -traditional, -trigraphs, or -pedantic to the preprocessor.
9788         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
9789         _LANGUAGE_FORTRAN.
9790
9791 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9792
9793         * cppexp.c (LOGICAL): Delete macro.
9794         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
9795         and && directly.
9796
9797         * cpphash.c (HASHSIZE): Increase to 4096.
9798         (struct hashdummy): Add hash field.
9799         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
9800         the string values using memcmp.
9801         (cpp_lookup): Set dummy.hash.
9802
9803 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
9804
9805         * configure.in (m88k-openbsd): Express configuration using new fragment
9806         style.
9807         * configure: Rebuilt.
9808         * m88k/aout-dbx.h: New.
9809         * m88k/openbsd.h: New.
9810         * m88k/xm-openbsd.h: New.
9811
9812 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9813
9814         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
9815
9816 2000-07-12  Richard Henderson  <rth@cygnus.com>
9817
9818         * reload.c (push_secondary_reload): Make sure to add the new
9819         reload at the end, after acquiring secondary memory.
9820
9821 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9822
9823         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
9824
9825         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
9826         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
9827
9828         * c-parse.in (stmt): Delete unused variables.
9829
9830         * convert.c (convert_to_vector): Likewise.
9831
9832         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
9833
9834         * tree.c (finish_vector_type): Prototype.
9835
9836 2000-07-12  Bruce Korb  <bkorb@gnu.org>
9837
9838         * fixinc/fixfixes.c: use xmalloc
9839         * fixinc/fixincl.c(initialize): set program name for xmalloc
9840         * fixinc/fixlib.c(must_malloc): obsolete
9841         (is_cxx_header): no longer used - disabled
9842         (skip_quote): inserted and disabled for future use
9843         * fixinc/fixlib.h: reflects above
9844         * fixinc/fixtests.c: removed dinkleberries
9845
9846 2000-07-12  Neil Booth  <NeilB@earthling.net>
9847
9848         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
9849         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
9850
9851         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
9852         struct toklist_dummy): New.
9853         (cpp_free_definition): Free macros with free_macro.
9854         (count_params): Don't save paramter spellings.  Save macro
9855         information in a struct macro_info.
9856         (parse_define): Don't allocate a token list.
9857         (save_expansion): Allocate the macro's token list, and
9858         save parameter spellings if necessary.  Use TOKEN_SPELL.
9859         (cpp_create_definition): Make list const.
9860
9861 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9862
9863         * c-typeck.c (pedwarn_c99): Move to
9864         * c-errors.c: ... Here.
9865         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
9866         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
9867         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
9868         (c-errors.o): List dependency.
9869
9870 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
9871
9872         * c-parse.c: Remove.
9873         * c-parse.h: Likewise.
9874         * c-parse.y: Likewise.
9875         * objc/objc-parse.c: Likewise.
9876         * objc/objc-pasre.y: Likewise.
9877
9878 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
9879
9880         * gcc.texi: Fix minor typos
9881         * extend.texi: Fix minor typos
9882
9883 2000-07-11  Marc Espie <espie@openbsd.org>
9884
9885         * collect2.c (main): Recognize .lo as object files.
9886
9887 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9888
9889         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
9890         true.
9891
9892         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
9893         with MAP_ANONYMOUS and MAP_ANON.
9894         * configure, config.in: Rebuilt.
9895
9896 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9897
9898         * diagnostic.c (save_output_state): Remove.
9899         (restore_output_state): Likewise.
9900         (clear_text_info): New function.
9901         (clear_diagnostic_info): Likewise.
9902         (output_text_length, is_starting_newline, output_prefix,
9903         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
9904         prefixing_policy, output_buffer_ptr_to_format_args): New macros
9905         (set_real_maximum_length, output_set_maximum_length,
9906         output_set_prefix, output_get_prefix, output_set_maximum_length,
9907         output_destroy_prefix, init_output_buffer,
9908         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
9909         output_add_newline, output_add_character, output_add_space,
9910         output_append_r, output_append, wrap_text, output_format,
9911         output_do_printf, output_printf, output_do_verbatim,
9912         output_verbatim, verbatim): Use them.
9913         (output_clear): Split into cleat_text_info and
9914         clear_diagnostic_info.
9915         (struct output_state): Move to...
9916
9917         * diagnostic.h: ...Here
9918         (struct output_buffer): Adjust.
9919
9920 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
9921
9922         * cpplex.c (parse_name): No longer inline (premature optimization).
9923         (do_pop_context): Fold into pop_context.
9924         (pop_context): Returns int.
9925         (lex_next): Hoist test for end of directive into pop_context.
9926         (push_macro_context): Returns int; takes just reader and token.
9927         Hoist test for excessive nesting to caller.
9928         (push_arg_context): Returns void; takes just reader and token.
9929         Do not call stringify_arg or get_raw_token.
9930         (get_raw_token): Convert tail recursion through push_arg_context
9931         to a loop at this level.  Call stringify_arg here if appropriate.
9932         (maybe_paste_with_next): Convert tail recursion to a while loop.
9933         Hoist test of paste_level to caller.
9934
9935         (stringify_arg): Push arg context at beginning.
9936         (cpp_get_token): Split out core into _cpp_get_token.  Call
9937         process_directive here.  Throw away CPP_PLACEMARKER tokens.
9938         (_cpp_get_token): Convert tail recursion through
9939         push_macro_context to a loop at this level.
9940         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
9941         _cpp_get_raw_token): Use _cpp_get_token.
9942         (_cpp_skip_rest_of_line): Drop the context stack directly; do
9943         not call pop_context.
9944         (_cpp_run_directive): Call lex_next directly.
9945
9946         * cpphash.h: Prototype _cpp_get_token.
9947         * cppexp.c (lex): Use it.
9948         * cpphash.c (parse_define): Use it.
9949         * cpplib.c (get_define_node, do_undef, parse_include,
9950         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
9951         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
9952         parse_ifdef, validate_else): Use it.
9953         (cpp_push_buffer): Tweak error message; abort if anyone tries
9954         to push a buffer while macro expansions are stacked.
9955
9956 2000-07-11  Donn Terry  <donnte@microsoft.com>
9957
9958         * cpplex.c (free_macro_args, save_token): Cast arg of free
9959         and/or xrealloc to PTR.
9960         (_cpp_init_input_buffer): Clear all fields of the base context.
9961
9962 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
9963
9964         * gensupport.c (process_rtx): Make rtl checking stop
9965         complaining about the define_insn while it is being
9966         converted from a define_insn_and_split.
9967
9968 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
9969
9970         * config/mips/mips.c (simple_memory_operand): Access the
9971         INTVAL of the address, not it's containing MEM.
9972
9973 2000-07-11  Bruce Korb  <bkorb@gnu.org>
9974
9975         * fixinc/fixtests.c(double_slash): obsolete
9976         (else_endif_label): likewise
9977         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
9978         (libc1_ifdefd_memx): correct initial comment
9979         and omit the #if/#endif pair from the memxxx declarations
9980         * fixinc/fixincl.x: regen
9981
9982 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9983
9984         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
9985
9986 2000-07-11  Neil Booth  <NeilB@earthling.net>
9987
9988         * cpp.texi: Update.
9989
9990 2000-07-11  Neil Booth  <NeilB@earthling.net>
9991
9992         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
9993         (handle_option): Set digraphs according to standard.
9994         Merge OPT_lang_c89 handler with OPT_std_c89.
9995
9996         * cpplex.c: (lex_line, can_paste): Honour digraphs in
9997         accordance with the digraphs flag.
9998
9999         * cpplib.h: (struct cpp_options): New option digraphs.
10000
10001 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
10002             Bruce Korb  <bkorb@gnu.org>
10003
10004         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
10005         * fixinc/fixincl.x: Regenerate.
10006         * fixinc/tests/base/testing.h: Add testcase.
10007
10008 2000-07-10  Richard Henderson  <rth@cygnus.com>
10009
10010         * config/ia64/ia64.c (got_symbolic_operand): New.
10011         (symbolic_operand, move_operand): Revert 0701 change.
10012         * config/ia64/ia64.h (PREDICATE_CODES): Update.
10013         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
10014         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
10015         split the offset into a 14-bit low part instead of a 13-bit low part.
10016         (load_fptr): Mark the mem as unchanging.
10017         (load_symptr): Use got_symbolic_operand.
10018
10019 2000-07-10  Nick Clifton  <nickc@cygnus.com>
10020
10021         * libgcc2.c (next_stack_level): Cast result of computation to
10022         (void **) so that the assignment does not generate a warning.
10023
10024 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
10025
10026         * flags.h : Add new variable flag_single_precision_constant.
10027         * toplev.c (display_help) : Add -fsingle-precision-constant option.
10028         (flag_single_precision_constant): New.
10029         * c-lex.c (yylex): Convert floating point constant to single
10030         precision constant.
10031         * invoke.texi : Add documentation for this new option.
10032
10033 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
10034
10035         * diagnostic.c (output_octal): Second parameter is unsigned.
10036         (output_long_octal): Likewise.
10037         (output_hexadecimal): Likewise.
10038         (output_long_hexadecimal): Likewise.
10039         (output_format): Adjust arguments extraction. Tweak.
10040         (output_verbatim, verbatim): End variable argument list.
10041         (report_diagnostic): Improve documentation.
10042
10043 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
10044
10045         * c-common.h (build_stmt): Declare.
10046         (build_continue_stmt): Likewise.
10047         (build_break_stmt): Likewise.
10048         (build_return_stmt): Likewise.
10049
10050         * c-decl.c (do_case): Rewrite to do what previously done in
10051         c-parse.in.
10052
10053         * c-semantics.c (build_stmt): Define.
10054         (build_return_stmt): Likewise.
10055         (build_break_stmt): Likewise.
10056         (build_continue_stmt): Likewise.
10057         (build_case_label): Likewise.
10058
10059         * c-parse.in (BREAK): Change to build tree, then generate RTL.
10060         (CONTINUE): Likewise.
10061         (RETURN): Likewise.
10062         (CASE): Likewise.
10063         (DEFAULT): Likewise.
10064
10065         * c-parse.y: Regenerate.
10066         * c-pasre.c: Likewise.
10067
10068 2000-07-09  Jason Merrill  <jason@redhat.com>
10069
10070         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
10071
10072         * tree.h (STRIP_NOPS): Check for error_mark_node.
10073         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
10074         (dwarf2out_*): Remove duplicate declarations.
10075
10076         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
10077         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
10078
10079 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
10080
10081         * diagnostic.c (wrap_text): New function.
10082         (maybe_wrap_text): Likewise.
10083         (output_add_string): Use it.
10084         (output_format): Likewise.
10085         (count_error): Use verbatim instead of notice.
10086         (report_error_function): Likewise. Don't use plain fprintf.
10087         (finish_diagnostic): New function.
10088         (output_do_verbatim): Tweak.  Commonalize functionalities in
10089         output_verbatim and verbatim.
10090         (output_verbatim): Adjust.
10091         (verbatim): Likewise.
10092         (report_diagnostic): Define.
10093
10094         * diagnostic.h (report_diagnostic): Prototype.
10095
10096 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
10097
10098         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
10099
10100 2000-07-09  Neil Booth  <NeilB@earthling.net>
10101
10102         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
10103         IShspace, ISspace: Update.
10104
10105         * cppinit.c: ISTABLE: Update.
10106         V: New.
10107
10108         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
10109         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
10110         (skip_block_comment, skip_line_comment, parse_string,
10111         lex_line): Use is_vspace rather than IS_NEWLINE.
10112         (skip_whitespace, lex_line): Clean up to use is_nvspace.
10113         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
10114         gets a BOL flag.
10115         (lex_next): Unconditionally stop if within a directive.
10116         Treat directives within macro invocations as directives
10117         (after parse_args emits error), not as the argument.
10118
10119 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
10120
10121         * diagnostic.c (diagnostic_args): New macro.
10122         (diagnostic_msg): Likewise.
10123         (output_formatted_integer): Likewise.
10124         (output_state): New data type.
10125         (digit_buffer): Make global.
10126         (output_add_integer): Rename to output_decimal. Squeeze
10127         digit_buffer.
10128         (output_long_decimal, output_unsigned_decimal,
10129         output_long_unsigned_decimal, output_octal, output_long_octal,
10130         output_hexadecimal, output_long_hexadecimal): New functions.
10131         (output_append_r): New function.
10132         (output_append): Tweak.
10133         (output_flush_on): Rename to output_to_stream.
10134         (output_format): Change prototype.  Improve documentation. Handle
10135         more format specifiers.
10136         (build_location_prefix): Rename to context_as_prefix.
10137         (output_notice): Rename to output_do_printf.
10138         (output_printf): Tweak.
10139         (line_wrapper_printf): Likewise.
10140         (vline_wrapper_message_with_location): Adjust call to renamed
10141         functions.
10142         (v_message_with_decl): Likewise.
10143         (default_print_error_function): Likewise.
10144         (save_output_state): New function.
10145         (restore_output_state): Likewise.
10146         (output_do_verbatim): Likewise.
10147         (output_verbatim): Define.
10148         (verbatim): Likewise.
10149
10150         * diagnostic.h (printer_fn): Change return type from void to int.
10151         Improve documentation.
10152         (output_add_integer): Rename to output_decimal.
10153         (output_flush_on, output_format): Don't export.
10154         (output_verbatim, verbatim): Declare.
10155
10156 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
10157
10158         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
10159         Check whether c divides op1 exactly if operation is not
10160         multiplication.
10161
10162 2000-07-08  Richard Henderson  <rth@cygnus.com>
10163
10164         * final.c (final): Do not abort when reg-stack introduces
10165         a new insn.
10166
10167 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
10168
10169         * cpplib.h (struct cpp_name): Now struct cpp_string.
10170         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
10171         CPP_HEADER_NAME): Change to type S.
10172         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
10173         field, a cpp_hashnode *.  All references to val.name updated
10174         to use val.str or val.node as appropriate.
10175         (struct cpp_reader): Add spec_nodes field.
10176         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
10177
10178         * cpphash.h (struct spec_nodes): New.
10179         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
10180         val.str.  All references to 'spelling > SPELL_NONE' updated to
10181         match.
10182
10183         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
10184         pfile->buffer->inc are not NULL before dereferencing them.
10185
10186         * cpplex.c (parse_name): Take a pointer to the current token,
10187         plus current position and limit as args; return the new
10188         position; don't copy the text of a name into the string
10189         buffer, instead call cpp_lookup and store the node pointer.
10190         If extending a token, copy out the text of the old into a
10191         scratch buffer, append the new, look that up and store the new
10192         node pointer.  Inline.
10193         (maybe_paste_with_next): If the result of paste is a NAME,
10194         then look up the pasted text and store its node pointer.
10195         (lex_line): Adjust for new parse_name interface.
10196         Check for L"str", L'str' using spec_nodes->n_L.
10197         (spell_token): SPELL_IDENT tokens have their spelling in
10198         val.node->name.  Handle SPELL_STRING tokens that don't have
10199         string delimiters.
10200         (_cpp_expand_name_space,
10201         (can_paste): Check for L ## "str" using spec_nodes->n_L.
10202         (cpp_get_token, special_symbol): No need to call cpp_lookup.
10203         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
10204         return 1=equal 0=not, not a tristate.
10205
10206         * cpphash.c (var_args_str): Delete.
10207         (find_param): Compare node fields directly.
10208         (is__va_args__): Use CPP_PEDANTIC.  Just compare
10209         token->val.node with spec_nodes->n__VA_ARGS__.
10210         (dump_funlike_macro): Don't use var_args_str.
10211
10212         * cpplib.c (_cpp_check_directive): Just walk through
10213         spec_nodes->dirs comparing pointers.
10214         (get_define_node, do_pragma_poison, detect_if_not_defined,
10215         parse_ifdef): The identifier has already been looked up.
10216         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
10217         node.
10218         (do_if): Only call detect_if_not_defined at beginning of file.
10219         (_cpp_parse_assertion): Only copy string pointers for
10220         SPELL_STRING tokens.
10221         (pragma_dispatch): Take a node pointer and examine its name
10222         field.
10223         (_cpp_init_stacks): Also initialize the spec_nodes structure.
10224
10225         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
10226         _cpp_init_macros.
10227         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
10228         reverse order from the corresponding _cpp_init_* routines.
10229
10230         * cppexp.c (parse_number, parse_charconst, parse_defined,
10231         lex): Check val.node->type instead of calling cpp_defined.
10232         Use spec_nodes entries where appropriate.
10233
10234         * fix-header.c, scan-decls.c: Update for interface changes.
10235
10236 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
10237
10238         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
10239         emitting aux_truncdfsf2.
10240
10241 2000-07-03  Donn Terry  (donnte@microsoft.com)
10242
10243         * cppinit.c (print_help): split overlong line into ISO C89
10244         maximum chunks.
10245
10246 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
10247
10248         * cppexp.c: Update all code for new lexer interface.
10249         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
10250         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
10251         * cpplex.c (token_names): Trim leading CPP_ from names; make
10252         the strings unsigned.
10253         (_cpp_spell_operator): New.
10254         (is_macro_disabled): Disable all macros if rescanning
10255         preprocessed text.
10256         (_cpp_get_directive_token): Remove.
10257
10258         * cppinit.c: Don't set no_macro_expand.
10259         * cpplib.c (read_line_number, do_line): Check only for EOF,
10260         not VSPACE.
10261         * cpphash.h: Update prototypes.
10262         * cpplib.h (CPP_VSPACE): Remove.
10263         (struct cpp_reader): Remove no_macro_expand.
10264
10265 2000-07-08  Neil Booth  <NeilB@earthling.net>
10266
10267         * cpphash.c (is__va_args__): New function.
10268         (count_params): Fix line reported in error messages.  Use
10269         is__va_args__.  Don't return ')' on error.  Flag GNU style
10270         rest args macro definitions.
10271         (parse_define): Check macro name is not __VA_ARGS__.
10272         (save_expansion): Check identifier in non-varargs-macro is
10273         not __VA_ARGS__.  Don't flag GNU_VARARGS.
10274         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
10275         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
10276          than per-token GNU_VARARGS.
10277         * cpplib.h (GNU_VARARGS): Remove.
10278         (GNU_REST_ARGS): New.
10279
10280 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10281
10282         * i386.md (call_pop, call, call_value_pop): Do not set
10283         current_function_uses_pic_offset_table for calls to static
10284         functions or indirect calls.
10285
10286 2000-07-07  Jim Wilson  <wilson@cygnus.com>
10287
10288         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
10289         is_predicate_reg, then take max write_count of register pair.
10290
10291 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10292
10293         * tradcpp.c (main): Rename label `include' to `add_include' to
10294         avoid conflicts with variable `include' in traditional C.
10295
10296 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
10297
10298         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
10299
10300 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
10301
10302         * sibcall.c (uses_addressof): Add INMEM argument, check for
10303         current_function_internal_arg_pointer outside of MEM rtxs in addition
10304         to ADDRESSOFs.
10305         (sequence_uses_addressof): Update caller.
10306
10307 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
10308
10309         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
10310         and friends.
10311
10312 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10313
10314         * system.h (UNION_INIT_ZERO): New macro for initializing union
10315         members in structs.
10316
10317         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
10318
10319 2000-07-07  Neil Booth  <NeilB@earthling.net>
10320
10321         * cpp.texi: Update.
10322
10323 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
10324
10325         * final.c (final): Detect out of bounds array access to
10326         the insn_lengths array.
10327
10328 2000-07-07  Kazu Hirata  <kazu@hxi.com>
10329
10330         * fold-const.c (fold): Fix a comment typo.
10331
10332 2000-07-07  Neil Booth  <NeilB@earthling.net>
10333
10334         * cpp.texi: Update to new lexer.
10335
10336 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
10337
10338         * tradcpp.c: New file.
10339         * tradcif.y: New file.
10340         * tradcif.c: New generated file.
10341
10342         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
10343         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
10344         dependencies of C.  Install tradcpp from install-common, in
10345         $(libsubdir).
10346
10347 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
10348
10349         * cppinit.c: Include cppdefault.h.  Refer to
10350         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
10351         to GCC_INCLUDE_DIR and its length.
10352         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
10353         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
10354         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
10355         cppdefault.h.
10356         (include_defaults_array): Move to cppdefault.c.
10357
10358         * cppdefault.h: New file.
10359         * cppdefault.c: New file.
10360
10361         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
10362         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
10363         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
10364         this file.
10365
10366 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10367
10368         * reload.c (push_reload): When seeing if can reuse a register,
10369         check extra registers against widest of INMODE and OUTMODE.
10370
10371 2000-07-06  Neil Booth  <NeilB@earthling.net>
10372
10373         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
10374         based on full length of predicate.
10375
10376 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
10377
10378         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
10379         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
10380
10381 2000-07-05  Kazu Hirata  <kazu@hxi.com>
10382
10383         * h8300-proto.h: Fix formatting.
10384         * h8300.c: Likewise.
10385         * h8300.h: Likewise.
10386
10387 2000-07-05  Jim Wilson  <wilson@cygnus.com>
10388
10389         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
10390         CCmode.
10391
10392 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
10393
10394         * invoke.texi: Fix minor typos
10395         * md.texi: Fix minor typos
10396
10397 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
10398
10399         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
10400
10401 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
10402
10403         * cpplex.c: Don't include sys/mman.h.
10404         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
10405
10406         * cpplib.c: Include sys/mman.h and obstack.h.
10407         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
10408         obstack.
10409         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
10410         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
10411         bother freeing if stack entries (they will be freed with their buffer).
10412         (do_endif): Free if stack entries from the buffer obstack.
10413         (push_conditional): Allocate if stack entries from the buffer obstack.
10414
10415         (find_answer): Rename to _cpp_find_answer.
10416         (do_assert, do_unassert): Update.
10417
10418         * cpphash.h: Update prototypes.
10419         (xobnew): New convenience macro.
10420         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
10421         Update comments.
10422         (struct cpp_hashnode): Remove disabled field.
10423
10424         * cppinit.c: Don't include hashtab.h or splay-tree.h.
10425         (report_missing_guard): Moved to cppfiles.c.
10426         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
10427         cpp_init_includes.
10428         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
10429         cpp_cleanup_includes.  Don't destroy hashtab or
10430         all_include_files here.
10431         (cpp_finish): Use _cpp_report_missing_guards.
10432
10433         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
10434         (_cpp_init_include_table): Rename _cpp_init_includes.
10435         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
10436
10437         * cppexp.c (parse_assertion): Update for new name of
10438         find_answer.
10439
10440         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
10441
10442 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
10443
10444         * cpplib.c (do_ident): s/VSPACE/EOF/
10445
10446 2000-07-05  Neil Booth  <NeilB@earthling.net>
10447
10448         * cpplex.c: Fix trigraph replacement within strings.
10449
10450 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10451
10452         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
10453
10454         * xcoffout.c (assign_type_number): Constify.
10455         (xcoffout_source_file): Add static prototype.  Don't needlessly
10456         cast away const-ness.
10457
10458 2000-07-04  Jason Merrill  <jason@redhat.com>
10459
10460         * frame.h (frame_state): Move base_offset to end.
10461
10462 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
10463
10464         * calls.c (emit_library_call_value_1): Revert previous change.
10465
10466 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
10467
10468         * fix-header.c (struct partial_proto): Remove unnecessary fields.
10469         (recognized_extern, recognized_function, read_scan_file):
10470         Update for new scheme.
10471         (check_protection): It's still a multiple include guard even
10472         if it doesn't always trigger.
10473         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
10474         new scheme.
10475         * scan.h: Declare struct cpp_token.  Update prototypes.
10476
10477 2000-07-03  Neil Booth  <neilb@earthling.net>
10478             Zack Weinberg  <zack@wolery.cumb.org>
10479
10480         Complete overhaul of the lexer and macro expander.
10481
10482         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
10483         arg, arglist, argdata, reflist, collect_objlike_expansion,
10484         collect_funlike_expansion, collect_params,
10485         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
10486         unsafe_chars, macarg, compare_defs, special_symbol,
10487         scan_arguments, stringify, funlike_macroexpand,
10488         _cpp_quote_string, monthnames): Delete.
10489         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
10490         _cpp_create_definition, _cpp_dump_definition,
10491         dump_hash_helper): Adjust.
10492         (find_param, count_params, parse_define, var_args_str,
10493         check_macro_redefinition, save_expansion): New.
10494
10495         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
10496         parse_string, output_line_command, trigraph_replace,
10497         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
10498         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
10499         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
10500         _cpp_skip_rest_of_line): Modify.
10501
10502         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
10503         find_position, null_warning, bump_column, expand_name_space,
10504         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
10505         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
10506         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
10507         _cpp_prescan): Delete.
10508
10509         (dump_param_spelling, process_directive, lex_next,
10510         is_macro_disabled, stringify_arg, expand_context_stack,
10511         output_token, make_string_token, alloc_number_token,
10512         special_symbol, duplicate_token, maybe_paste_with_next,
10513         can_paste, prevent_macro_expansion, restore_macro_expansion,
10514         get_temp_token, release_temp_tokens, quote_string,
10515         token_names, token_spellings, _cpp_expand_name_space,
10516         _cpp_glue_header_name, _cpp_reserve_name_space,
10517         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
10518         placemarker_token, eof_token, cpp_context, macro_args,
10519         get_raw_token, parse_arg, parse_args, save_token,
10520         push_arg_context, push_macro_context, pop_context,
10521         do_pop_context, free_macro_args, _cpp_get_line,
10522         _cpp_run_directive): New.
10523
10524         * cpplib.c (validate_else, parse_include, push_conditional,
10525         pass_thru_directive, read_line_number, parse_ifdef,
10526         detect_if_not_defined, _cpp_check_directive, do_define,
10527         do_undef, do_include, do_import, do_include_next, do_error,
10528         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
10529         top_pragmas, do_pragma_gcc, do_pragma_implementation,
10530         do_pragma_poison, do_pragma_system_header,
10531         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
10532         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
10533         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
10534         cpp_defined): Update for new scheme.
10535         (strtoul_for_line, get_define_node, dump_macro_name,
10536         _cpp_check_linemarker, _cpp_parse_assertion): New.
10537         (_cpp_handle_directive, do_pragma_default): Delete.
10538
10539         * cpphash.h (struct predicate): Now struct answer.
10540         (enum spell_type, struct token_spelling, struct directive,
10541         directive_handler): New.
10542         Update prototypes.  Remove unused macros.
10543         * cpplib.h: Update prototypes.  Remove unused macros,
10544         structure definitions, and fields.
10545
10546         * cpperror.c (print_containing_files, v_message): Adjust.
10547         * cppexp.c (parse_assertion, lex, parse_escape,
10548         _cpp_parse_expr): Adjust.
10549         * cppfiles.c (open_include_file, _cpp_execute_include,
10550         _cpp_compare_file_date, cpp_read_file, read_include_file):
10551         Adjust.
10552         * cppinit.c (dump_special_to_buffer): Delete.
10553         (append_include_chain, merge_include_chains, cpp_reader_init,
10554         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
10555         cpp_finish, handle_option, print_help): Adjust.
10556         * cppmain.c (main): Adjust.
10557
10558 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
10559
10560         * cppspec.c (lang_specific_driver): Use double quotes in error
10561         message.
10562
10563 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
10564
10565         * calls.c (emit_library_call_value_1): Use valreg instead
10566         of hard_libcall_value.
10567
10568 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
10569
10570         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
10571         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
10572         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
10573         (movhi): Likewise.
10574         (movqi): Likewise.
10575         (movdf): Likewise.
10576         (movsf): Likewise.
10577         (movdi): Likewise.
10578         (movti): Likewise.
10579
10580         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
10581         mode instead of wider_mode is being used.
10582
10583 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
10584
10585         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
10586         of 'r'. Use q_regs_operand.
10587         (andsi_1+2): Use q_regs_operand.
10588
10589 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
10590
10591         * builtins.c (get_memory_rtx): Always put into alias set 0.
10592
10593 2000-07-03  Nick Clifton  <nickc@cygnus.com>
10594
10595         * config/arm/arm.md: Fix post increment and pre increment
10596         peepholes so that they do not generate UNPREDICATBLE opcodes.
10597         (ie ones where the increment clobbers the source/destination).
10598
10599 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
10600
10601         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
10602         change too big for -mtiny-stack" a warning, if larger than 63.
10603         (out_set_stack_ptr): Change the logic so -mno-interrupts is
10604         always safe to use on possible future devices.
10605         (function_prologue): Write SPH before SPL, for consistency.
10606         If interrupt_func_p true, we know we have enabled interrupts.
10607         (avr_num_arg_regs): New function.  Round up to even number of
10608         bytes if no -mpack-args or if calling a libgcc function.
10609         (function_arg, function_arg_advance): Use it.
10610         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
10611         Output "movw" if available.
10612         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
10613         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
10614         (asm_output_section_name): Add blanks for consistent output.
10615         (encode_section_info): Set TREE_READONLY for progmem data to
10616         avoid gas warnings about changed section attributes.
10617         (avr_hard_regno_mode_ok): Force non-QImode data to start in
10618         even numbered registers on devices with "movw".
10619         * config/avr/avr.h (MASK_*): Define bits for target_flags.
10620         (TARGET_SWITCHES): Mark help strings for translation.
10621         Add new -mpack-args and -menhanced switches.
10622         (TARGET_OPTIONS): Mark help strings for translation.
10623         (progmem_section): Add section attributes.
10624         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
10625         Output "movw" if available.
10626         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
10627         New patterns.
10628         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
10629         call convention (arguments aligned on even registers).
10630         (_cleanup, _exit): Make weak symbols libc can override.
10631
10632 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10633
10634         * fp-bit.h: New file.
10635
10636         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
10637         Comment #endif statements.
10638         (__thenan_sf, __thenan_df): Add missing braces around initializer.
10639
10640 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
10641
10642         * gcse.c (compute_pre_data): Compute ae_kill using other local
10643         properties instead of calling compute_ae_kill.
10644
10645         * alias.c (init_alias_analysis): Do not call
10646         prologue_epilogue_contains until after reload has completed.
10647
10648 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
10649
10650         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
10651         (genrtl_finish_compound_stmt): Likewise.
10652         (genrtl_compound_stmt): Change to return void.
10653
10654         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
10655         move code from here to ...
10656         (genrtl_compound_stmt): ... here.
10657         (genrtl_finish_compound_stmt): Remove.
10658         (expand_stmt): Add comment.
10659
10660 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
10661
10662         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
10663         and VOID_TYPE_P.
10664
10665 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
10666
10667         * cpplib.h (struct cpp_reader): New field include_depth.
10668         (struct cpp_printer): Rename last_bsd to last_id.
10669         * cppfiles.c (read_include_file): Bump include_depth.
10670         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
10671         (output_line_command): Output correct #line if a header
10672         is including itself and is not protected against multiple inclusion.
10673         Use include_depth instead of buffer_stack_depth, last_id instead of
10674         last_bsd.
10675         * cppinit.c (cpp_start_read): Initialize last_id instead of
10676         last_bsd.
10677
10678 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
10679
10680         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
10681         (c-semantics.o): New target.
10682
10683         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
10684         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
10685         (genrtl_clear_out_block): Likewise.
10686         (genrtl_goto_stmt): Likewise.
10687         (genrtl_expr_stmt): Likewise.
10688         (genrtl_decl_stmt): Likewise.
10689         (genrtl_if_stmt): Likewise.
10690         (genrtl_while_stmt): Likewise.
10691         (genrtl_do_stmt): Likewise.
10692         (genrtl_return_stmt): Likewise.
10693         (genrtl_for_stmt): Likewise.
10694         (genrtl_break_stmt): Likewise.
10695         (genrtl_continue_stmt): Likewise.
10696         (genrtl_scope_stmt): Likewise.
10697         (genrtl_switch_stmt): Likewise.
10698         (genrtl_case_label): Likewise.
10699         (genrtl_begin_compound_stmt): Likewise.
10700         (gerntl_finish_compound_stmt): Likewise.
10701         (genrtl_compound_stmt): Likewise.
10702         (genrtl_asm_stmt): Likewise.
10703         (genrtl_decl_cleanup): Likewise.
10704         (DECL_ANON_UNION_ELEMS): Likewise.
10705         (emit_local_var): Likewise.
10706         (make_rtl_for_local_static): Likewise.
10707         (expand_cond): Likewise.
10708         (expand_stmt): Likewise.
10709         (c_expand_return): Likewise.
10710         (c_expand_start_case): Likewise.
10711         (do_case): Likewise.
10712         (COMPOUND_STMT_NO_SCOPE): Likewise.
10713         (c_expand_asm_operands): Likewise.
10714         (NEW_FOR_SCOPE_P): New macro.
10715         (expand_expr_stmt_fn): New type.
10716
10717         (set_current_function_name_declared): Likewise.
10718         (current_function_name_declared): Likewise.
10719         (lang_expand_stmt): Likewise.
10720         (stmts_are_full_exprs_p): Likewise.
10721         (anon_aggr_type_p): Likewise.
10722         (lang_expand_expr_stmt): Likewise.
10723         (build_case_label): Likewise.
10724
10725         * c-decl.c (lang_expand_expr_stmt): Initialize.
10726         (stmts_are_full_exprs_p): Define.
10727         (current_function_name_declared): Likewise.
10728         (do_case): Likewise.
10729         (lang_expand_stmt): Likewise.
10730         (set_current_function_name_declared): Likewise.
10731         (anon_aggr_type_p): Likewise.
10732
10733         * c-semantics.c: New file.
10734         (expand_cond): Moved from cp/semantics.c.
10735         (genrtl_do_pushlevel): Likewise.
10736         (genrtl_clear_out_block): Likewise.
10737         (genrtl_goto_stmt): Likewise.
10738         (genrtl_expr_stmt): Likewise.
10739         (genrtl_decl_stmt): Likewise.
10740         (genrtl_if_stmt): Likewise.
10741         (genrtl_while_stmt): Likewise.
10742         (genrtl_do_stmt): Likewise.
10743         (genrtl_return_stmt): Likewise.
10744         (genrtl_for_stmt): Likewise.
10745         (genrtl_break_stmt): Likewise.
10746         (genrtl_continue_stmt): Likewise.
10747         (genrtl_scope_stmt): Likewise.
10748         (genrtl_switch_stmt): Likewise.
10749         (genrtl_case_label): Likewise.
10750         (genrtl_begin_compound_stmt): Likewise.
10751         (genrtl_finish_compound_stmt): Likewise.
10752         (genrtl_compound_stmt): Likewise.
10753         (genrtl_asm_stmt): Likewise.
10754         (genrtl_decl_cleanup): Likewise.
10755         (make_rtl_for_local_static): Moved from cp/decl.c.
10756         (emit_local_var): Likewise.
10757         (expand_stmt): Define.
10758
10759         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
10760         (c_expand_return): Likewise.
10761         (c_expand_start_case): Likewise.
10762
10763 2000-07-01  Richard Henderson  <rth@cygnus.com>
10764
10765         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
10766         with the low 13 bits set.
10767         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
10768         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
10769         of the low 13 bits into a CONST plus an adddi3.
10770         (load_symptr): Set RTX_UNCHANGING_P.
10771
10772 See ChangeLog.3 for earlier changes.