OSDN Git Service

* cppexp.c (lex): Use NODE_NAME and NODE_LEN.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2
3         * cppexp.c (lex): Use NODE_NAME and NODE_LEN.
4         * cpphash.c (_cpp_lookup_with_hash): Similarly.
5         * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len,
6         cpp_spell_token, cpp_output_token): Similarly.
7         * cpplib.c (lex_macro_node, do_undef, do_pragma,
8         do_pragma_poison, parse_assertion, do_assert): Similarly.
9         * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p,
10         save_parameter, _cpp_create_definition, check_trad_stringification,
11         cpp_macro_definition): Similarly.
12         * cppmain.c (cb_define, cb_undef, dump_macro): Similarly.
13         * c-lex.c (cb_undef, c_lex): Similarly.
14         * fix-header.c (recognized_function): Similarly.
15         * cpplib.h (NODE_LEN, NODE_NAME): New.
16         (cpp_hashnode): Rename length len.
17
18 Wed May 16 13:41:10 2001  Jeffrey A Law  (law@cygnus.com)
19
20         * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in
21         GPRs.
22
23 2001-05-16  Andreas Jaeger  <aj@suse.de>
24
25         * Makefile.in (toplev.o): Add dependency on dwarf2asm.h.
26
27         * toplev.c: Include dwarf2asm.h for prototype of
28         dw2_output_indirect_constants.
29
30 Wed May 16 19:53:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
31
32         * stmt.c (expand_asm_operands): Be able to offload addressof
33         expression to memory. (PR optimization/185)
34
35 Wed May 16 18:53:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
36
37         * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after
38         applying distributive law.
39
40 2001-05-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
41
42         * pa-hpux10.h (THREAD_MODEL_SPEC): Define.
43
44         * gthr-dce.h (UNUSED): Attribute unused macro.
45         (__gthread_key_dtor): Make arguments UNUSED.
46         (__gthread_key_delete): Revise for compatibility with DRAFT4
47         implementation.
48
49 2001-05-16  David Edelsohn  <edelsohn@gnu.org>
50
51         * doc/install.texi: Update AIX information.
52         * README.RS6000: Remove obsolete file.
53
54 2001-05-16  Jakub Jelinek  <jakub@redhat.com>
55             Nathan Sidwell  <nathan@codesourcery.com>
56
57         * gcc.c (give_switch): Don't write before start of string.
58         Always append suffix.
59
60 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
61
62         * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear
63         after stage3.
64
65 2001-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
66
67         * README.ALTOS: Remove obsolete file.
68
69 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
70
71         * c-lex.h (save_and_forget_protocol_qualifiers,
72         forget_protocol_qualifiers, remember_protocol_qualifiers):
73         Remove deleted functions' prototypes.
74
75 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
76
77         * c-parse.in (methodtype): New production.
78         (methoddef, methodproto): Collapse separate '-' and '+'
79         handlers into 1.
80
81 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
82
83         * c-common.h (RID_FIRST_PQ): New.
84         * c-parse.in (objc_pq_context): New.
85         (objc parser): Set objc_pq_context rather than calling
86         remember_protocol_qualifiers and forget_protocol_qualifiers.
87         Don't call save_and_forget_protocol_qualifiers.
88         (yylexname): Handle objc protocol qualifiers here.
89         * stringpool.c (struct str_header): Replace with sp_hashnode.
90         (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
91         (alloc_string): Rename alloc_ident.  Use the SP_ accessors.
92         Allocate an IDENTIFIER_NODE for each identifier.
93         (FORALL_STRINGS, set_identifier): Delete.
94         (FORALL_IDS, expand_string_table, stringpool_statistics): Update.
95         (ggc_alloc_string): Use an obstack.
96         (get_identifier, maybe_get_identifier, mark_string_hash): Update.
97         * tree.h: Update comments.
98         (set_identifier): Delete.
99         * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
100         save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
101         remember_protocol_qualifiers): Delete.
102
103 Tue May 15 22:14:09 2001  Jeffrey A Law  (law@cygnus.com)
104
105         * flow.c (life_analysis): After life analysis is complete, do
106         an optional scan over insns looking for REG_LABEL notes that
107         reference a deleted label.
108         (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL
109         before peeking at LABEL_NUSES.
110
111 2001-05-15  Richard Henderson  <rth@redhat.com>
112
113         * unwind-sjlj.c (_Unwind_GetDataRelBase): New.
114         (_Unwind_GetTextRelBase): New.
115
116 2001-05-15  Mark Mitchell  <mark@codesourcery.com>
117
118         * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
119
120 2001-05-15  Geoffrey Keating  <geoffk@redhat.com>
121
122         * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
123         so that CHOOSE_SECTION gets used.
124
125         * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat
126         TARGET_RELOCATABLE like flag_pic for now.
127
128 2001-05-15  David Edelsohn  <edelsohn@gnu.org>
129
130         * rs6000.md (movdi splitter): Sign extend more efficiently.
131         * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant
132         to "long long" valid on 32-bit and 64-bit hosts.
133         (logical_operand): Cast trunc_int_for_mode return value.
134         (rs6000_emit_move): Shift macro to encapsulate variable.
135         (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC.
136         (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but
137         plus_constant requires signed argument.
138
139 2001-05-15  Loren J. Rittle  <ljrittle@acm.org>
140
141         * gthr-posix.h: Make additional pthread-* functions weak.
142
143 Tue May 15 13:51:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
144
145         * recog.c (apply_change_group): Avoid unneeded validating.
146
147 2001-05-14  David Edelsohn  <edelsohn@gnu.org>
148
149         * rs6000.c (num_insns_constant_wide): Constants are sign-extended.
150         (num_insns_constant): CONST_INT can be 64-bits.
151
152 2001-05-14  Stan Shebs  <shebs@apple.com>
153
154         * config/darwin.h (LIB_SPEC): Just use -lSystem.
155         (LIBGCC_SPEC): Don't define.
156
157 2001-05-14  Richard Henderson  <rth@redhat.com>
158
159         * configure.in (gcc_cv_as_eh_frame): New test.
160         * config.in, configure: Rebuild.
161         * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT.
162
163 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
164
165         * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
166         extended precision divide.
167
168 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
169
170         * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
171         for RETURNS as well.
172
173 Mon May 14 17:34:48 CEST 2001  Jan Hubicka  <jh@suse.cz>
174
175         * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH
176         (CPP_CPU??_SIZE_TYPE): New.
177         (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from...
178         (CPP_CPU_SPEC): ... here; support choosing of CPU.
179         (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon.
180         (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only
181         compiler.
182         * i386.c (override_options): Add sorry about not suported modes.
183
184 Mon May 14 08:56:47 2001  Jeffrey A Law  (law@cygnus.com)
185
186         * config/pa/som.h (NM_FLAGS): Remove.
187         (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names.
188         (ASM_OUTPUT_SECTION_NAME): Remove.
189         (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise.
190
191 2001-05-14  Mark Mitchell  <mark@codesourcery.com>
192
193         * regrename.c (regrename_optimize): Do not rename registers to
194         leaf registers.
195
196 2001-05-14  Alexandre Oliva  <aoliva@redhat.com>
197
198         * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
199         contain MEMs.  Remove useless distinction about clobbering
200         registers.
201
202 2001-05-13  Geoff Keating  <geoffk@redhat.com>
203
204         * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
205         * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
206         * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
207         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
208         (EXCEPTION_SECTION): Define.
209
210 2001-05-13  Zack Weinberg  <zackw@stanford.edu>
211
212         * libgcc2.c, libgcc2.h: Restore __eprintf.  Label as used for
213         binary backward compat only.
214         * Makefile.in (LIB2FUNCS_ST): New.  Put _eprintf here, not
215         in LIB2FUNCS.  Pass it to mklibgcc.
216         * mklibgcc.in: Handle LIB2FUNCS_ST.
217
218         * Makefile.in (installdirs): Don't create $(gcc_tooldir).
219
220 2001-05-13  Alexandre Oliva  <aoliva@redhat.com>
221
222         * tm.texi (THREAD_MODEL_SPEC): Document it.
223         * gcc.c (main): Use it.
224         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it.
225         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise.
226
227 2001-05-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
228
229         * rtl.h (SYMBOL_REF_WEAK): New macro.
230         * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap.
231         * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary.
232         * rtl.texi (SYMBOL_REF_WEAK): Document it.
233         * gcc.texi: Remove wrong description.
234
235 2001-05-13  Mark Mitchell  <mark@codesourcery.com>
236
237         * Makefile.in (STAMP): New macro.
238         Replace all uses of `touch' with $(STAMP).
239         * fixinc/Makefile.in: Likewise.
240
241 Sun May 13 07:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
242
243         * configure.in: ldopen is never in -lexc, so don't test for it.
244         Add test for exc_resume in -lexc for Ada.
245         * configure: Regenerated.
246
247 2001-05-12  Richard Henderson  <rth@redhat.com>
248
249         * dwarf2asm.c (size_of_encoded_value): New function.
250         * dwarf2asm.h: Declare it.
251         * except.c (output_function_exception_table): Align the TType
252         array only as wide as the encoding.
253
254 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
255
256         * extend.texi: Document #pragma GCC java_exceptions.
257
258 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
259
260         * c-parse.in (bison parser, init_reswords): Remove uses of
261         doing_objc_thang.
262         * c-tree.h (doing_objc_thang): Remove.
263
264 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
265
266         * cpplex.c (_cpp_lex_token): Ensure we warn at most once
267         about files not ending in newlines.
268
269 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
270
271         * dwarfout.c (dwarfout_init): Add cast.
272         * sched-deps.c (sched_analyze_insn): Remove unused vars.
273         * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so.
274 cp:
275         * method.c (build_mangled_C99_name): Remove unused prototype.
276
277 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
278
279         * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
280
281 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
282
283         * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
284         * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document.
285
286 2001-05-11  Richard Henderson  <rth@redhat.com>
287
288         * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
289         * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1,
290         dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New.
291         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype.
292         (dw2_output_indirect_constants): Prototype.
293         * dwarf2out.c (dwarf2out_begin_prologue): Generate
294         current_function_func_begin_label if we'll need it for EH.  Exit
295         early for IA64_UNWIND_INFO.
296         * except.c: Get DW_EH_PE_* defines from dwarf2.h.
297         (eh_data_format_name): Update for indirect references.
298         (output_function_exception_table): Care for IA64_UNWIND_INFO.
299         Handle ASM_PREFERRED_EH_DATA_FORMAT.
300         * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't
301         define HAVE_eh_return etc.
302         * final.c (final_start_function): Always call dwarf2out_begin_prologue.
303         (final_end_function): Don't call output_function_exception_table.
304         * toplev.c (compile_file): Call dw2_output_indirect_constants.
305         (rest_of_compilation): Invoke output_function_exception_table
306         for ia64 before assemble_end_function.
307         * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document.
308         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document.
309
310         * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New.
311         * unwind.h: Declare them.
312         * libgcc-std.ver: Export them.
313         * unwind-pe.h: New file.
314
315         * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
316
317         * config/ia64/fde-glibc.c: Use "struct unw_table_entry"
318         instead of "fde".
319         (find_fde_for_dso): Extract DT_PLTGOT.
320         (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return
321         the segment and gp as well.
322         * config/ia64/frame-ia64.c: Remove file.
323         * config/ia64/frame-ia64.h: Remove file.
324         * config/ia64/unwind-ia64.c: New file.
325         * config/ia64/unwind-ia64.h: New file.
326         * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove.
327         (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove.
328         (ASM_OUTPUT_EH_DOUBLE_INT): Remove.
329         (ASM_PREFERRED_EH_DATA_FORMAT): New.
330         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
331         (IA64_UNWIND_INFO): Re-enable.
332         (HANDLER_SECTION): Remove.
333         (EH_RETURN_DATA_REGNO): New.
334         * config/ia64/ia64.md (exception_receiver): Remove.
335         * config/ia64/t-glibc (LIB2ADDEH): Re-enable.
336         * config/ia64/t-ia64 (LIB2ADDEH): Re-enable.
337
338 2001-05-11  Richard Henderson  <rth@redhat.com>
339
340         * config/ia64/ia64.c (group_barrier_needed_p): Don't allow
341         calls and jumps to be bundled together.
342         (ia64_reorg): Emit a break after a noreturn call that ends
343         a function.
344         * config/ia64/ia64.md (break_f): New.
345
346 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
347
348         * c-lex.c (lex_charconst): Convert into a simple wrapper
349         around cpp_interpret_charconst, to which most of the code
350         body is moved.
351         * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE,
352         MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK,
353         MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove.
354         (lex): Use cpp_interpret_charconst.
355         * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst,
356         hex_digit_value): New functions.
357         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros.
358         * cpplib.h (cpp_interpret_charconst): New prototype.
359         * Makefile.in: Update.
360
361 2001-05-12  Dean Wakerley  <dean@wakerley.com>
362
363         * doc/install.texi: New file. Converted to texinfo from the HTML
364         documentation in wwwdocs/htdocs/install.
365
366 Fri May 11 15:50:13 2001  Jeffrey A Law  (law@cygnus.com)
367
368         * gcse.c (insert_insn_end_bb): Do not search for assignments to
369         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
370
371         * toplev.c (compile_file): Move comment for opening output
372         file to just before the code that opens the output file.
373
374 2001-05-11  Jakub Jelinek  <jakub@redhat.com>
375
376         * regmove.c (regmove_optimize): Suppress the optimization for
377         unchanging destination register.  Add comment above function.
378
379 2001-05-11  Zack Weinberg  <zackw@stanford.edu>
380
381         * Makefile.in: Exterminate all references to assert.h.
382         * cross-make: Likewise.
383         * assert.h: Delete.
384         * configure.in: Correct commentary.
385         * configure: Regenerate.
386
387         * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
388         Remove __eprintf.
389
390         * config/t-freebsd, config/t-linux, config/t-linux-aout,
391         config/t-netbsd, config/t-rtems, config/x-linux,
392         config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
393         No need to override INSTALL_ASSERT_H.
394
395         * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
396         fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
397         fixinc/fixincl.sh: Don't install assert.h into objdir/include.
398
399 2001-05-11  Graham Stott  <grahams@redhat.com>
400
401         * combine.c (simplify_comparison): Fix typo.
402
403 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
404
405         * loop.h (struct movables): Remove `num'.
406         * loop.c (scan_loop): Don't set it.  Use count_insns_in_loop.
407         Adjust call to strength_reduce.
408         (num_unmoved_movables): New function.
409         (move_movables): Don't set movables->num.
410         (strength_reduce): Compute the number of instructions in the loop
411         here, rather than in the caller.
412         (check_dbra_loop): Always clear reversible_mem_store if there
413         are any memory sets.
414         (loop_regs_scan): Don't count instructions here.
415         (count_insn_in_loop): New function.
416
417 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
418
419         * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P.
420
421 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
422
423         * c-common.c (finish_label_expr): New function, lifted from
424         from cp/semantics.c.
425         * c-common.h (finish_label_expr, lookup_label): New prototypes.
426         * c-parse.in: Move 3 blocks of parser code into new functions.
427         * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions.
428         * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes.
429         (lookup_label): Remove.
430
431 2001-05-11  Alexandre Oliva  <aoliva@redhat.com>
432
433         * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define
434         FLOAT_BIT_ORDER_MISMATCH.
435
436 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
437
438         * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
439         bytes.  Reported by Kazu Hirata <kazu@hxi.com>.
440
441 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
442
443         * expr.c (emit_group_load): extract_bit_field requires a REG or
444         MEM as an argument.
445
446 Thu May 10 14:45:44 2001  Jeffrey A Law  (law@cygnus.com)
447
448         * cse.c (cse_insn): Mostly remove first hunk of code which collapsed
449         a computed jump into an unconditional jump.
450         In second hunk of code for collapsing computed and conditional jumps
451         into unconditional jumps, reemit the jump in additional cases.
452
453         * jump.c (jump_optimize_1): Do not wrap the new jump target
454         inside a LABEL_REF; gen_jump will do that automatically.
455
456 2001-05-10  Toon Moene  <toon@moene.indiv.nluug.nl>
457
458         * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
459         contents for a SYMBOL_REF in case of floating point constants.
460
461 2001-05-10  DJ Delorie  <dj@redhat.com>
462
463         * c-common.c (combine_strings): Widen strings in a
464         host-endian-independent way.
465
466 2001-05-10  Joseph S. Myers  <jsm28@cam.ac.uk>
467
468         * c-parse.in: Remove many shift/reduce conflicts.  Update
469         %expect values.
470         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
471         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
472         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
473         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
474         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
475         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
476         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
477         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
478         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
479         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
480         maybe_type_quals_setattrs, typespec_nonattr, typespec_attr,
481         typespec_reserved_nonattr, typespec_reserved_attr,
482         typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr,
483         structsp_nonattr, components_notype, component_notype_declarator,
484         absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute,
485         firstparm, setspecs_fp): New
486         (typed_declspecs, reserved_declspecs, typed_typespecs,
487         reserved_typespecquals, declmods, typespec, typespecqual_reserved,
488         typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
489         declmods_no_prefix_attr, nonempty_type_quals, structsp,
490         type_quals): Remove.  Users updated.
491         (initdecls, notype_initdecls, after_type_declarator,
492         parm_declarator, notype_declarator, absdcl1, components, ivars):
493         Don't allow attributes at the start of a declarator; include them
494         in the production containing the declarator instead.  Always
495         require type specifiers before trying to redeclare a typedef name.
496         (typename): Allow for attributes but warn that they are ignored.
497         (parmlist, firstparm, setspecs_fp): Include attributes in
498         parmlist; suck them off the parser stack in firstparm using
499         setspecs_fp.
500
501 Thu May 10 09:17:42 2001  Jeffrey A Law  (law@cygnus.com)
502
503         * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
504         to determine if a block has an unconditional jump at its end.
505
506         * jump.c (jump_optimize_1): When converting a conditional jump
507         to an unconditional jump, build the jump using gen_jump instead
508         of just modify operands in-place.
509
510 2001-05-09  Zack Weinberg  <zackw@stanford.edu>
511
512         * cppinit.c (cpp_post_options): Shut off macro expansion if
513         -fpreprocessed.
514         * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept
515         IN_I directives only if the # is in column 1 and the directive
516         name begins in column 2.
517         * cppmain.c (scan_buffer): Insert a space between # and an
518         identifier, when that identifier is a directive name.
519
520         * tradcpp.c (struct file_buf): Add a pointer to the next entry
521         in the header search path.
522         (enum node_type): Add T_INCLUDE_NEXT.
523         (directive_table): Add entry for include_next.
524         (do_include_next): New function.
525         (process_include): New routine, broken out of do_include.
526         (finclude): Insert 'nhd' argument, to be copied into
527         next_header_dir of the new buffer.
528         (main): Adjust to match.
529         * gsyslimits.h, limity.h: Un-indent #include_next.
530
531 2001-05-09  Joseph S. Myers  <jsm28@cam.ac.uk>
532
533         * objc.texi: Move from ../libobjc/objc-features.texi.  Adjust for
534         inclusion as a chapter of the GCC manual.
535         * gcc.texi: Include objc.texi.
536         * fdl.texi: Use @unnumberedsec for the addendum.
537         * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies.
538
539 Wed May  9 16:01:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
540
541         * i386.md (DImode move splitters): Use !MMX and !SSE for the condition.
542
543 Wed May  9 10:40:25 2001  Alexandre Oliva  <aoliva@redhat.com>
544
545         * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
546         handling of two-address insns.
547
548 Wed May  9 10:36:18 2001  Alexandre Oliva  <aoliva@redhat.com>
549
550         * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
551         ../binutils/nm-new instead of ../binutils/nm.
552
553 Wed May  9 12:15:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
554
555         * i386.md (movdi splitter): Fix the splitting condition
556         (float_extenddftf splitter): Fix mode.
557
558 Wed May  9 12:05:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
559
560         * genrecog.c (write_switch): Avoid outputting of switch for
561         types wider than int.
562
563 2001-05-03  Andrew Haley  <aph@cambridge.redhat.com>
564
565         * reload1.c (copy_eh_notes): New function.
566         (emit_input_reload_insns): Call it.
567         (emit_output_reload_insns): Call it.
568
569 2001-05-07  Zack Weinberg  <zackw@stanford.edu>
570
571         * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*):
572         Delete stanzas.
573         * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h,
574         config/i386/sco4dbx.h, config/i386/x-sco4: Delete file.
575
576         * optabs.c: Delete #ifdef BROKEN_LDEXP block.
577
578 2001-05-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
579
580         * pa.md (interspace_jump): Revise comment.
581         (builtin_longjmp): Block initial setup insns from delay slot of
582         interspace branch.
583         (builtin_setjmp_receiver): New expander to save and restore PIC
584         register.
585
586         * som.h (NM_FLAGS): Remove `-n' sort option.  Revise comment.
587
588 Mon May  7 09:30:14 2001  Jeffrey A Law  (law@cygnus.com)
589
590         * toplev.c (compile_file): Set up the output file before we call
591         the various initializers for the compiler.
592
593         * except.c (sjlj_mark_call_sites): Do not search for assignments to
594         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
595
596         * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
597         * pa-64.h (*_TYPE_SIZE): Undefine before redefining.
598
599 2001-05-06  Zack Weinberg  <zackw@stanford.edu>
600
601         * Makefile.in (tradcpp0): Correct typo in dependency list.
602
603 2001-05-06  Geoff Keating  <geoffk@redhat.com>
604
605         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
606         the link register if we're not going to use it.
607
608         * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
609         (output_function_profiler): Likewise.
610
611 2001-05-07  Alan Modra  <amodra@one.net.au>
612
613         * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
614
615 2001-05-06  Alexandre Oliva  <aoliva@redhat.com>
616
617         * unroll.c (loop_iterations): Don't sign-extend abs_diff;
618         zero-extend it.  Make abs_inc unsigned.
619
620         * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the
621         widest mode in narrowing and widening operations.
622
623         * config/mips/mips.md: Sign extend CONST_INTs.
624
625 2001-05-06  Andreas Jaeger  <aj@suse.de>
626
627         * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer
628         (i386 Options): Document -momit-leaf-frame-pointer.
629
630 2001-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
631
632         * c-typeck.c (internal_build_compound_expr): Check for
633         array to pointer conversion just once.
634
635 2001-05-05  Richard Henderson  <rth@redhat.com>
636
637         * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.
638
639 2001-05-05  Richard Henderson  <rth@redhat.com>
640
641         * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes
642         to the parent of the fixup region.
643
644 2001-05-05  Jakub Jelinek  <jakub@redhat.com>
645
646         * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring
647         "inline" keyword.
648         * cpp.texi (__NO_INLINE): Document it.
649
650 2001-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
651
652         * cppfiles.c (struct include_file): New member err_no.
653         (find_or_create_entry): Set it.
654         (open_file): Don't set fds to -2.  Instead, use err_no to
655         remember previous errors, if any.
656
657 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
658
659         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
660         between X and Y by using sequences of xgdx and xgdy.
661
662 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
663
664         * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
665         of '!' for the 'D' alternative ('!' is too strong).
666         ("*logicalsi3_silshl16"): Likewise.
667         ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
668         ("movstrictsi"): Remove spurious '+'.
669         ("movstrictqi"): Don't accept 'A' and remove spurious '+'.
670         ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
671         ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
672         a reload to them.
673
674 2001-05-04  David Edelsohn  <edelsohn@gnu.org>
675
676         * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT.
677
678 2001-05-04  Lars Brinkhoff  <lars@nocrew.org>
679
680         * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
681         into -a.
682
683 2001-05-04  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
684
685         * config/rs6000/rs6000.md (ashldi3 splits): Guard with
686         TARGET_POWERPC64.
687
688 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
689
690         * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
691         soft register, use ror instead of rol.
692
693 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
694
695         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
696         into account pre/post increment decrement for 68HC12.
697         Fix other problems in replacement and fix call to reg_mentioned_p.
698
699 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
700
701         * config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
702         Put the soft registers in bss for 68HC12.
703         (L_regs_d3_4): New for _.d3 and _.d4.
704         (L_regs_d5_6): Likewise.
705         (L_regs_d1_2): Likewise.
706         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
707
708 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
709
710         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
711         to the pre-processor when -fshort-double is specified.
712         * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
713
714 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
715
716         * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
717         (__mulsi3): Rewrite for 68HC12.
718         * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
719         Mark 'x' constraint with earlyclobber to prevent a
720         RELOAD_FOR_OTHER_ADDRESS to go in it.
721         (mulhi3_m68hc12): New pattern.
722         (mulhi3_m68hc11): Rename of mulhi3.
723         (mulhi3): New expand for 68HC12 optimisation.
724         (umulhisi3, mulhisi3): New patterns for 68HC12.
725
726 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
727
728         * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
729         (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
730         (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
731
732 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
733
734         * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
735         constants cheap after reload.
736         * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
737         are cheap.
738         (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
739         so that gcc prefers a shift by 16.
740         (m6811_cost, m6812_cost): Make the shift cheap compared to an add.
741
742 2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
743
744         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define.
745
746 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
747
748         * alpha.h: NULL_PTR -> NULL.
749         * arm.c: Likewise.
750         * arm.h: Likewise.
751         * avr.h: Likewise.
752         * c4x.c: Likewise.
753         * c4x.h: Likewise.
754         * i386.c: Likewise.
755         * i386.md: Likewise.
756         * i860.c: Likewise.
757         * ia64.c: Likewise.
758         * m68hc11.h: Likewise.
759         * rs6000.h: Likewise.
760         * sh.c: Likewise.
761         * sh.h: Likewise.
762         * sparc.h: Likewise.
763         * v850.c: Likewise.
764
765         * expr.c: Likewise.
766         * final.c: Likewise.
767         * gcc.c: Likewise.
768         * recog.c: Likewise.
769
770 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
771
772         * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
773         `bool' parameter to `int'.
774
775         * hash.c (hash_lookup): Likewise.
776
777         * hash.h (hash_lookup): Likewise.
778
779         * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
780
781 Fri May  4 13:10:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
782
783         * i386.c (x86_initialize_trampoline): Fix mode of constant.
784
785 2001-05-03  Geoff Keating  <geoffk@redhat.com>
786
787         * invoke.texi (i386 Options): Delete references to -malign-jumps,
788         -malign-loops, -malign-functions.
789         * i386.c (ix86_align_funcs): Delete.
790         (ix86_align_loops): Delete.
791         (ix86_align_jumps): Delete.
792         (override_options): Mark -malign-* as obsolete.  Emulate their
793         behaviour with the -falign-* options.  Default -falign-* from
794         the processor table.
795         * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
796         patch of Wed May 2 13:09:36 2001.
797         (LOOP_ALIGN): Delete.
798         (LOOP_ALIGN_MAX_SKIP): Delete.
799         (LABEL_ALIGN_AFTER_BARRIER): Delete.
800         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
801
802 2001-05-04  Andreas Jaeger  <aj@suse.de>
803
804         * except.h: Add prototype declaration for
805         expand_builtin_init_dwarf_reg_sizes.
806
807 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
808
809         * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
810
811 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
812
813         * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
814         instruction.
815         ("bitcmpqi2"): New pattern for bit-extract and test.
816         ("bitcmphi"): New pattern for bitb/bita instructions.
817
818 2001-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
819
820         * gccbug.in: Use a temporary directory when the mktemp command is
821         not available.
822
823 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
824
825         * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
826         instead of _.d1.
827         (INITIALIZE_TRAMPOLINE): Call it.
828         (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
829         (TRAMPOLINE_TEMPLATE): Remove.
830         * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
831         * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
832         Declare.
833
834 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
835
836         * config/t-freebsd: Don't install "assert.h" in gcc.  Compile crtbeginS.o
837         and crtendS.o with PIC.
838
839 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
840
841         * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
842         negative numbers.
843         (___subdi3, ___adddi3): Use x instead of y as index register.
844         (__init_bss_section, __map_data_section): Optimize for 68HC12.
845         (__memset, __memcpy): Likewise.
846         (regs): Put the soft registers in bss for 68HC12.
847         (abort): Use trap to abort for 68hc12.
848         (__mulhi3, __mulhi32): Use emul for 68hc12.
849         (__mulsi3): Avoid to use the tmp soft register for 68hc12.
850
851 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
852
853         * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
854         * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
855         * config/m68hc11/m68hc11.c (limit_reload_class): Remove.
856         (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
857         Set 68HC12 min offset to -65536.
858         (print_operand): Put parenthesis arround the operand if it refers
859         to a symbol having the same name as a register.
860         (m68hc11_z_replacement): When z register is replaced by its
861         equivalent soft register, force the insn to be re-recognized.
862         (m68hc11_check_z_replacement): Fix the test when destination is
863         the index register and z dies in the insn.
864         (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
865
866 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
867
868         * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
869         costs according to processor variant.
870         (m68hc11_shift_cost): New function to compute shift costs.
871         (m68hc11_rtx_costs): Define costs according to processor variant.
872         (m6811_cost): Costs for 68HC11.
873         (m6812_cost): Costs for 68HC12.
874         (COSTS_N_INSNS): Remove.
875
876         * config/m68hc11/m68hc11.h (RTX_COSTS): New.
877         (DEFAULT_RTX_COSTS): Remove.
878         (CONST_COSTS): Define costs according to OUTER_CODE.
879         (processor_costs): New struct to define costs.
880         (m68hc11_cost): Pointer to current costs.
881
882 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
883
884         * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
885         and use m68hc11_notice_keep_cc when using leax/leay.
886         (addhi3 split): Reject split if the insn is handled by
887         leax/leay above.
888         * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
889         push must be handled in a special way if the source operand uses
890         sp as index register.
891         (m68hc11_notice_keep_cc): New function.
892         (m68hc11_gen_movhi): Use it when an insn changes a register but
893         not the flags.
894         (m68hc11_gen_movqi): Fix move for 68HC12.
895         * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
896
897 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
898
899         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
900         and don't pass operands[0] to emit_library_call_value.
901
902 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
903
904         * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
905         (zero_extendsi split): Simplify and use (zero_extendhi).
906         (*addhi3): Remove 'w' constraint since stack pointer is handled
907         by (addhi3_sp).
908         (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
909         (*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
910         (*ashrhi3_const): Fix shift by 7.
911         (*lshrsi3_const16): Fix template.
912         (call, call_value): Fix constraint and predicate.
913
914 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
915
916         * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
917         (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
918         (CC_REGNUM): Likewise.
919         (*unnamed splits): Use above constants instead of hard coded numbers.
920         (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
921         (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
922         (*return_16bit, *unnamed peepholes): Likewise.
923
924 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
925
926         * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix):  Do not include
927         rs6000/rs6000.h twice.
928
929 2001-05-03  Mark Elbrecht  <snowball3@bigfoot.com>
930
931         * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
932         (CPP_SPEC): Conditionally define MSDOS and GO32.
933         (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
934         (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
935         ignored.
936         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
937
938 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
939
940         * config/mn10300/mn10300.md: Sign-extend GEN_INT operands.
941
942 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
943
944         * integrate.h (struct inline_remap): Add leaf_reg_map table.
945         * integrate.c (expand_inline_function): Use xcalloc to allocate
946         memory.
947         (copy_rtx_and_substitute): Use the leaf_reg_map for leaf
948         registers.
949
950 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
951
952         * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
953         if it is not set.
954
955 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
956
957         * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
958         linker if -mrelax is given.
959         (TARGET_SWITCHES): Document -mrelax.
960
961         Re-installed 2001-01-09's patch:
962         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
963         if it's wider than long and the target's long is wider than the
964         host's.
965
966 2001-05-02  David O'Brien  <obrien@FreeBSD.org>
967
968         * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h:  Do not
969         directly include rs6000/rs6000.h.  Instead do it in tm.h.
970
971 2001-05-02  Stan Shebs  <shebs@apple.com>
972
973         * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
974         NSConstantString for NeXT-style runtimes.
975         (STRING_OBJECT_GLOBAL_NAME): New macro.
976         (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
977         OCTI_STRING_CLASS_DECL.
978         (constant_string_global_id): New macro.
979         (string_class_decl): Ditto.
980         (setup_string_decl): New function.
981         (build_objc_string_object): Use it to build a NeXT runtime
982         compatible string initializer.
983
984 2001-05-02  Jakub Jelinek  <jakub@redhat.com>
985
986         * tradcpp.c (do_define): Make sure we don't walk past limit.
987
988 2000-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
989
990         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
991         offsets if not REG_OK_STRICT.
992
993         * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
994         (INT_REG_OK_FOR_INDEX_P): Likewise.
995         (INT_REG_OK_FOR_BASE_P): Likewise.
996         (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
997         (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
998         (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
999         INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
1000         REG_OK_FOR_BASE_P. Take an additional parameter.
1001         (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
1002         (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
1003         (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
1004         (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
1005         rs6000_legitimate_address() and use it.
1006         * config/rs6000/rs6000.c: Update all callers.
1007         (rs6000_legitimate_address): New function.
1008
1009 2001-05-02  David Edelsohn  <edelsohn@gnu.org>
1010
1011         * config/rs6000/rs6000.c (rs6000_emit_move): Merge
1012         special_constant conditional blocks together.
1013
1014 2001-05-02  Dale Johannesen  <dalej@apple.com>
1015
1016         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
1017         parameter.
1018         (STRICT_ARGUMENT_NAMING): Define.
1019         * config/rs6000/rs6000.c (function_arg_advance, function_arg,
1020         function_arg_partial_nregs, setup_incoming_varargs): Remove
1021         args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
1022         is defined.
1023
1024 Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1025
1026         * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
1027
1028         * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
1029         for replacement.
1030
1031         * expr.c (store_field): Do nothing except elaborate side-effects if
1032         zero-bit field.
1033
1034 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1035
1036         * c-lex.c: NULL_PTR -> NULL.
1037         * cse.c: Likewise.
1038         * emit-rtl.c: Likewise.
1039         * gcse.c: Likewise.
1040         * genpeep.c: Likewise.
1041         * jump.c: Likewise.
1042         * mips-tdump.c: Likewise.
1043         * reload1.c: Likewise.
1044         * rtlanal.c: Likewise.
1045         * stmt.c: Likewise.
1046         * stor-layout.c: Likewise.
1047         * toplev.c: Likewise.
1048
1049 2001-05-01  Per Bothner  <per@bothner.com>
1050
1051         * expr.c (expand_expr):  When compiling LABELED_BLOCK_EXPR,
1052         call do_pending_stack_adjust before emiting label.
1053
1054 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
1055
1056         * extend.texi: Fix typo.
1057
1058 2001-05-01  Stan Shebs  <shebs@apple.com>
1059
1060         * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
1061         of UOBJC_MODULES_decl.
1062         (generate_strings): Clear DECL_CONTEXT of new decl nodes.
1063         (generate_descriptor_table): Ditto.
1064         (generate_protocols): Ditto.
1065         (generate_protocol_list): Ditto.
1066         (generate_classref_translation_entry): Ditto.
1067
1068 2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
1069
1070         * invoke.texi (Optimize Options): Add documentation for `--param
1071         max-delay-slot-insn-search' and `--param
1072         max-delay-slot-live-search' and reorder --param section.
1073         * params.def: Modify initial comment.
1074         * params.h (param_info): Add `help' member.
1075         * toplev.c (lang_independent_params): Include `help' description.
1076         (display_help): Print --param parameters.
1077
1078 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1079
1080         * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
1081         Remove references to deleted files.
1082         (*-*-openbsd): No need to override xmake_file.
1083         (*-*-sysv4): Treat like *-*-sysv.
1084
1085         * configure.in: Probe for ldopen in various places, and set up
1086         collect2 to be linked with them if found.
1087         Don't dink with Windows registry stuff unless $host_os is a
1088         Win32 os name.  Check to see if we need -ladvapi32.
1089         * configure: Regenerate.
1090
1091         * Makefile: Get rid of CLIB and HOST_CLIB.
1092         Substitute in COLLECT2_LIBS and link collect2 against its contents.
1093         * build-make: Get rid of HOST_CLIB.
1094
1095         * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
1096         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
1097         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
1098         config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
1099         config/rs6000/x-rs6000: Delete.
1100
1101         * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
1102         Don't set CLIB.
1103
1104         24 x-host fragments remain, 0 x-cpu, 3 top level.
1105
1106 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1107
1108         * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
1109         * configure: Regenerate.
1110
1111 2001-05-01  Angela Marie Thomas <angela@cygnus.com>
1112
1113         * Makefile.in (install-headers): Remove redundant dependency.
1114
1115 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
1116
1117         * c-tree.texi (USING_STMT): Document.
1118
1119 2001-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1120
1121         * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
1122         * c-common.c: Likewise.
1123         * c-decl.c: Likewise.
1124         * combine.c: Likewise.
1125         * rs6000.c: Likewise.
1126         * except.c: Likewise.
1127         * explow.c: Likewise.
1128         * expr.c: Likewise.
1129         * fold-const.c: Likewise.
1130         * function.c: Likewise.
1131         * gcc.c: Likewise.
1132         * gcse.c: Likewise.
1133         * integrate.c: Likewise.
1134         * loop.c: Likewise.
1135         * objc/objc-act.c: Likewise.
1136         * recog.c: Likewise.
1137         * reg-stack.c: Likewise.
1138         * reload.c: Likewise.
1139         * reload1.c: Likewise.
1140         * simplify-rtx.c: Likewise.
1141         * stmt.c: Likewise.
1142         * varasm.c: Likewise.
1143
1144 2001-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
1145
1146         * diagnostic.def: New file.
1147         * diagnostic.h (diagnostic_t): New enum.
1148         * Makefile.in (diagnostic.o): Depend on diagnostic.def
1149
1150 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1151
1152         * tsystem.h: Test only POSIX for availability of string.h
1153         and time.h.
1154         * config.gcc (all systems): If USG appeared in xm_defines,
1155         change it to POSIX.  If both USG and POSIX appeared, just
1156         delete USG. Remove unnecessary quotes around xm_defines
1157         settings.
1158         (m68k-crds-unos*): Don't #define unos - tested nowhere.
1159         (m68k-apple-aux*): Don't #define AUX - tested nowhere.
1160         (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
1161         powerpc-*-linux*): No need to set xm_defines - handled by
1162         global settings for *-*-linux*.
1163
1164 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1165
1166         * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
1167         Always include gstab.h, not system stab.h.  Don't provide
1168         default definitions of N_CATCH or N_OPT.  Always use the
1169         gstab.h variant of STAB_CODE_TYPE.
1170         * final.c: Don't include stab.h/gstab.h at all, or provide
1171         defaults for N_SLINE and N_SOL.
1172
1173         * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
1174         N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
1175         available.
1176         * sdbout.c: Always include gsyms.h instead of system syms.h.
1177
1178         * configure.in: No need to check for stab.h.
1179         * configure, config.in: Regenerate.
1180         * Makefile.in (final.o): Don't depend on gstab.h.
1181
1182 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1183             Richard Henderson  <rth@redhat.com>
1184
1185         * extend.texi: Improve documentation of volatile asms.
1186
1187 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1188
1189         * c-tree.texi: Fix thinko.
1190         * gcc.texi: Likewise.
1191
1192 2001-04-30  Richard Henderson  <rth@redhat.com>
1193
1194         * c-common.c (c_promoting_integer_type_p): New function, from the
1195         corpse of old macro.  Properly promote too-small enumerations and
1196         booleans.  Adjust all callers.
1197         * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
1198         (c_promoting_integer_type_p): Declare.
1199         * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
1200         * c-typeck.c: Likewise.
1201         (default_conversion): Remove now redundant boolean check.
1202
1203 2001-04-30  Jan Hubicka  <jh@suse.cz>
1204             Richard Henderson  <rth@redhat.com>
1205
1206         * regmove.c (try_apply_stack_adjustment): Remove now redundant
1207         sanity checks.
1208         (combine_stack_adjustments_for_block): Don't combine stack
1209         allocation followed by deallocations.  Handle grow-up stacks.
1210
1211 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1212
1213         * fdl.texi: New file.
1214         * c-tree.texi: Use the GFDL.
1215         * gcc.texi: Likewise.
1216
1217 2001-04-30  Stan Shebs  <shebs@apple.com>
1218
1219         * invoke.texi: Add a section documenting Objective-C options.
1220
1221 2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>
1222
1223         * emit-rtl.c (try_split):  Copy EH notes to sequence.
1224
1225 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1226
1227         * regmove.c (record_stack_memrefs): Catch all references to the
1228         stack pointer.
1229
1230 2001-04-29  Toomas Rosin <toomas at ns dot tklabor dot ee>
1231
1232         * Makefile.in(stmp-fixinc): quote shell assignment values
1233
1234 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1235
1236         * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
1237
1238         * gcc.c: Likewise.
1239
1240         * prefix.c: Likewise.
1241
1242 2001-04-28  Stan Shebs  <shebs@apple.com>
1243
1244         * objc/objc-act.c (handle_class_ref): Rewrite to flush target
1245         specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
1246         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
1247         * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
1248
1249         * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
1250         (NEXT_OBJC_RUNTIME): Define.
1251
1252 Sat Apr 28 21:02:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
1253
1254         * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
1255         * simplify-rtx.c (simplify_gen_relational): Likewise.
1256
1257         * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
1258
1259         * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
1260         * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
1261
1262         * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
1263         registers in SSE case; fix handling of the immediates.
1264         (negsf2_ifs, abssf2_ifs): Tweak constraints; require
1265         operands to be in regsiters before reload.
1266         (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
1267         (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
1268         (abstf,absxf,negtf,negxf splitters): Compute
1269         properly the regnum for x86_64.
1270         (avsdf2_if_rex64): New.
1271
1272 Sat Apr 28 10:36:23 2001  Jeffrey A Law  (law@cygnus.com)
1273
1274         * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
1275         and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
1276         into the constant pool.
1277         * jump.c (jump_optimize_1): Remove barrier successors after all
1278         the LABEL_NUSES counds have been computed.
1279         (delete_barrier_successors): When deleting a tablejump insn, also
1280         delete the jump table it uses.
1281         * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
1282         label into memory.
1283
1284 2001-04-28  Martin Kalen  <martin.kalen@todaysystems.com.au>
1285
1286         * pa.c (FRP): Remove erroneous white space in macro definition.
1287
1288 2001-04-28  Andreas Jaeger  <aj@suse.de>
1289
1290         * invoke.texi: Use XX-bit instead of XXbit or XX bit where
1291         appropriate.
1292         * extend.texi: Likewise.
1293         * tm.texi: Likewise.
1294
1295 2001-04-28  Andreas Jaeger  <aj@suse.de>
1296
1297         * md.texi: Use XX-bit instead of XXbit or XX bit where
1298         appropriate.
1299
1300 2001-04-28  Jens Schweikhardt <schweikh@schweikhardt.net>
1301
1302         * gcc.c (process_command): Allow -l lib in addition to -llib
1303         for POSIX compliance. This fixes PR c/2347.
1304
1305         * invoke.texi: Update section on Link Options accordingly.
1306
1307 2001-04-27  Zack Weinberg  <zackw@stanford.edu>
1308
1309         * function.c (purge_addressof_1): Remove the duplicate
1310         if (code == SET) block.  Fold the two if (code == ADDRESSOF)
1311         blocks together.
1312
1313 2001-04-28  Jason Merrill  <jason_merrill@redhat.com>
1314
1315         * except.c (expand_eh_region_start): Don't start a new block.
1316         (expand_eh_region_end): Don't end a block.
1317         * stmt.c (expand_end_bindings): Don't end EH blocks.
1318         (expand_decl_cleanup): Starting an EH region won't change the block.
1319         (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
1320         (is_eh_region): Lose.
1321         * tree.h: Adjust.
1322
1323 2001-04-27  Jeffrey Oldham  <oldham@codesourcery.com>
1324
1325         * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
1326
1327         * collect2.c (main): Add `-L' case to remove duplicate entries.
1328         (is_in_args): New function to check for a duplicate argument.
1329         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
1330         * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
1331         * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
1332         Define to be nonzero.
1333
1334 2001-04-27  Andreas Jaeger  <aj@suse.de>
1335             Richard Henderson  <rth@redhat.com>
1336
1337         * md.texi (Machine Constraints): Document additional i386
1338         constraints and fix description of "A".
1339
1340 Fri Apr 27 10:43:49 2001  Jeffrey A Law  (law@cygnus.com)
1341
1342         * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
1343
1344 2001-04-27  Jason Merrill  <jason_merrill@redhat.com>
1345
1346         * except.c (get_exception_filter): word_mode, not Pmode.
1347
1348 2001-04-26  Geoffrey Keating  <geoffk@redhat.com>
1349
1350         * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
1351         common to other movsf patterns.  Move up so that in future
1352         people who change the other patterns will change it too.
1353         (movsf_lo_sum): Allow even for soft-float; add appropriate
1354         constraints.
1355         (movsf_high): Likewise.
1356         (movsf_high+1): Allow even for soft-float.
1357
1358         * function.c (expand_function_end): Always clobber the
1359         return registers, even if there is no return label.
1360
1361 Thu Apr 26 20:28:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
1362
1363         * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
1364
1365 Thu Apr 26 19:20:28 CEST 2001  Jan Hubicka  <jh@suse.cz>
1366
1367         * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
1368         (pushqi2_rex64, pushhi2_rex64): Add.
1369
1370 2001-04-26  Andrew Haley  <aph@cambridge.redhat.com>
1371
1372         * except.c (expand_eh_region_end_cleanup): Force pending stack
1373         adjust before emitting label that branches around cleanup code.
1374
1375 2001-04-26  H.J. Lu  (hjl@gnu.org)
1376
1377         * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
1378
1379         * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
1380         define.
1381         * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
1382         (ASM_OUTPUT_SECTION_NAME): Likewise.
1383         (ASM_WEAKEN_LABEL): Likewise.
1384         (UNIQUE_SECTION): Likewise.
1385         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1386         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1387         * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
1388         (ASM_OUTPUT_SECTION_NAME): Likewise.
1389         (ASM_WEAKEN_LABEL): Likewise.
1390         (UNIQUE_SECTION): Likewise.
1391         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1392         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1393         * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
1394         * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
1395         (ASM_FILE_START): Likewise.
1396         (ASM_OUTPUT_SOURCE_LINE): Likewise.
1397         (ASM_DECLARE_OBJECT_NAME): Likewise.
1398         (ASM_FILE_END): Likewise.
1399         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1400         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1401         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1402         (ASM_OUTPUT_CASE_LABEL): Likewise.
1403         (ASM_OUTPUT_SKIP): Likewise.
1404         (ASM_OUTPUT_ASCII): Likewise.
1405         (ASM_OUTPUT_IDENT): Likewise.
1406         (READONLY_DATA_SECTION): Likewise.
1407         (EXTRA_SECTIONS): Likewise.
1408         (EXTRA_SECTION_FUNCTIONS): Likewise.
1409         (SELECT_RTX_SECTION): Likewise.
1410         (SELECT_SECTION): Likewise.
1411
1412         * config/mips/linux.h (INVOKE__main): Undefine.
1413         (CTOR_LIST_BEGIN): Likewise.
1414         (CTOR_LIST_END): Likewise.
1415         (DTOR_LIST_BEGIN): Likewise.
1416         (DTOR_LIST_END): Likewise.
1417         (SET_ASM_OP): Defined it to ".dummy".
1418         (ASM_OUTPUT_DEF): Defined.
1419         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
1420
1421 2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>
1422
1423         * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
1424         assembler supports .p2align.
1425
1426 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
1427
1428         * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
1429
1430 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1431
1432         * integrate.c (expand_inline_function): Check for error_mark_node
1433         in actual argument.
1434
1435 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1436
1437         * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
1438         -m386 and -m486.
1439
1440 2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
1441
1442         * configure.in (configargs.h): Define thread_model.
1443         * configure: Rebuilt.
1444         * gcc.c (main): Print it with -v.
1445
1446 2001-04-25  Joseph S. Myers  <jsm28@cam.ac.uk>
1447
1448         * invoke.texi: Document -Wmissing-braces, -dumpspecs,
1449         -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
1450         * gcc.1: Regenerate.
1451
1452 2001-04-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1453
1454         * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
1455         is_redundant_typedef): Use static inline instead of inline static.
1456
1457 Wed Apr 25 18:21:01 2001  Christopher Faylor <cgf@cygnus.com>
1458
1459         * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
1460         this directory is always searched.
1461
1462 2001-04-25  Richard Henderson  <rth@redhat.com>
1463
1464         * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
1465         of registers to restore along non eh_return path.
1466
1467 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1468
1469         * c-format.c (check_format_info_recurse): Handle
1470         PLUS_EXPR for format string.
1471
1472 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1473
1474         * config/ia64/ia64.h (CC1_SPEC): Define.
1475         * config/ia64/linux.h (CC1_SPEC): Define.
1476
1477 Wed Apr 25 17:09:50 2001  J"orn Rennecke <amylaar@redhat.com>
1478
1479         * emit-rtl.c (constant_subword): Also do sign extension in
1480         BITS_PER_WORD == 16 case.
1481
1482 2001-04-25  Jason Merrill  <jason_merrill@redhat.com>
1483
1484         * loop.c (try_swap_copy_prop): Go back to checking insn.
1485
1486 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1487
1488         * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
1489         if check_mode is non-zero.
1490
1491 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1492
1493         * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
1494         out and comparison sequence has been detected, put result into
1495         proper temporary pseudo.
1496
1497 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1498
1499         * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
1500         * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
1501         * libgcc2.c: Remove __dummy and __builtin_saveregs.
1502         * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
1503         * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
1504         for future reference.
1505
1506 2001-04-24  Jason Merrill  <jason_merrill@redhat.com>
1507
1508         * except.c (reachable_handlers): Step out one level from a RESX.
1509
1510         * except.c (struct eh_region): Rename 'last' to 'resume'.
1511         (mark_eh_region, duplicate_eh_region_1): Adjust.
1512         (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
1513         (build_post_landing_pads): Likewise.
1514         (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
1515         (expand_eh_region_end_must_not_throw): Likewise.
1516         (connect_post_landing_pads): Thread (only) regions with non-deleted
1517         resume insns.
1518
1519         * except.c (expand_eh_region_end_cleanup): Save the EH return data
1520         registers around the cleanup.
1521         (get_exception_filter): New fn.
1522         (finish_eh_generation): Use it.
1523
1524 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
1525
1526         * c-semantics.c (add_scope_stmt): Don't call
1527         current_scope_stmt_stack multiple times.
1528
1529 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1530             Nathan Sidwell <nathan@codesourcery.com>
1531
1532         Lazy __FUNCTION__ generation.
1533         * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
1534         RID_C99_FUNCTION_NAME): New _RIDs.
1535         (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
1536         (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
1537         CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
1538         global tree slots.
1539         (function_id_node, pretty_function_id_node, func_id_node): Remove.
1540         (c99_function_name_decl_node, function_name_decl_node,
1541         pretty_function_name_decl_node, saved_function_name_decls):
1542         Declare.
1543         (struct language_function): Remove x_function_name_declared_p.
1544         (make_fname_decl): Remove a parameter.
1545         (declare_function_names): Remove prototype.
1546         (start_fname_decls, finish_fname_decls): Prototype.
1547         (fname_as_string): Likewise.
1548         (fname_string, fname_decl): Likewise.
1549         * c-common.c (make_fname_decl): Adjust.
1550         (struct fname_var_t): New struct.
1551         (fname_vars): New static array.
1552         (declare_function_name): Remove.
1553         (start_fname_decls, finish_fname_decls): New functions.
1554         (fname_as_string): New function from remnants of
1555         declare_function_name.
1556         (fname_string, fname_decl): New functions.
1557
1558         * c-decl.c (c_function_name_declared_p): Remove.
1559         (init_decl_processing): Don't generate __FUNCTION__ et al ids,
1560         don't call declare_function_name. Call start_fname_decls.
1561         (c_make_fname_decl): Adjust parameters. Generate the name. Don't
1562         clobber the line number. Call finish_decl.
1563         (start_function): Call start_fname_decls.
1564         (finish_function): Call finish_fname_decls.
1565         Remove c_function_name_declared_p.
1566         (push_c_function_context): Don't push c_function_name_declared_p.
1567         (pop_c_function_context): Don't pop c_function_name_declared_p.
1568         (c_begin_compound_stmt): Don't check c_function_name_declared_p.
1569         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
1570         (program): Call finish_fname_decls for C.
1571         (primary): Add VAR_FUNC_NAME.
1572         (reswords): Add slots for __FUNCTION__ et al.
1573         (rid_to_yy): Add mappings for __FUNCTION__ et al.
1574         (yylexname): If it's a STRING_FUNC_NAME generate the function name
1575         now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
1576         * c-semantics.c (prune_unused_decls): Remove.
1577         (finish_stmt_tree): Don't call prune_unused_decls.
1578         (genrtl_decl_stmt): Don't prune unused decls here.
1579
1580 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
1581
1582         * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
1583         constant pool, use the pool's SYMBOL_REF instead.
1584
1585         * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
1586         v850e.
1587
1588 2001-04-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1589
1590         * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
1591         passing nested NOP_EXPRs to fold.
1592
1593 Mon Apr 23 14:32:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
1594
1595         * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
1596
1597 2001-04-22  Mark Mitchell  <mark@codesourcery.com>
1598
1599         * loop.c (loop_delete_insns): Add prototype.
1600
1601 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
1602
1603         * configure.in:  Remove ENABLE_STD_NAMESPACE.
1604         * config.in:  Regenerated.
1605         * configure:  Regenerated.
1606
1607 2001-04-22  Stan Shebs  <shebs@apple.com>
1608
1609         * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
1610         into xm_defines.
1611         * config/rs6000/xm-darwin.h: Remove file.
1612
1613 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1614
1615         * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
1616         (write_c_file_stat): Likewise.
1617
1618         * dbxout.c (dbxout_init): Likewise.
1619
1620         * profile.c (output_func_start_profiler): Likewise.
1621
1622 2001-04-22  Philipp Thomas  <pthomas@suse.de>
1623
1624         * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
1625         require it instead of the CVS version.
1626         * cpperror.c (v_message): Put a blank before the macro
1627         body to not confuse exgettext.
1628
1629 2001-04-21  Mark Mitchell  <mark@codesourcery.com>
1630
1631         * flow.c (proagate_one_insn): Remove useless assignment.
1632         * jump.c (delete_insn): Tidy.
1633         * loop.c (try_copy_prop): When deleting an instruction with a
1634         REG_RETVAL note, delete the entire libcall sequence.
1635         (loop_delete_insns): New function.
1636         * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
1637         we're not substituting into them yet.
1638
1639 2001-04-21  Kazu Hirata  <kazu@hxi.com>
1640
1641         * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
1642
1643         * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
1644         Fix a comment typo.
1645         * config/i960/i960.c (signed_arith_operand): Likewise.
1646
1647         * calls.c (expand_call): Fix a comment typo.
1648
1649 2001-04-20  Zack Weinberg  <zackw@stanford.edu>
1650
1651         * configure.in: Probe for times, clock, struct tms, and clock_t.
1652         * configure, config.in: Regenerate.
1653         * timevar.c: Replace ifdef forest in get_time with (relatively)
1654         straightforward series of checks based on autoconf's probes.
1655
1656 Fri Apr 20 12:24:50 2001  Jeffrey A Law  (law@cygnus.com)
1657
1658         * config/pa/som.h (NM_FLAGS): Define.
1659
1660 2001-04-20  Bernd Schmidt  <bernds@redhat.com>
1661
1662         * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
1663         function.
1664         * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
1665         * ia64.c (nop_cycles_until): New function.
1666         (prev_cycle, prev_first, last_issued): New static variables.
1667         (ia64_sched_reorder): Additional arg for clock.
1668         On final scheduling pass, emit extra NOPs as needed.
1669         Set prev_first and prev_cycle.
1670         (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
1671         (ia64_variable_issue): Set last_issued.
1672
1673 2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
1674
1675         * config/i386/i386.c (ix86_expand_int_movcc,
1676         ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
1677
1678 2001-04-20  Geoff Keating  <geoffk@redhat.com>
1679
1680         * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
1681         ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
1682         ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
1683         ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
1684         ctrdi_internal6): In the short-branch case, this insn is only 4
1685         bytes long.  Reported by Reza Yazdani <reza@apple.com>.
1686
1687 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1688
1689         * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
1690         "=u" is used together with "st" resp. "st(1)" clobber.
1691
1692 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1693
1694         * gcse.c (gcse_main): Fix comment typo.
1695         (delete_null_pointer_check): Likewise.
1696         (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
1697         * cse.c (cse_insn): Likewise.
1698         * function.c (fixup_var_refs_insns_with_hash): The sequence is
1699         toplevel.
1700
1701 2001-04-19  Zack Weinberg  <zackw@stanford.edu>
1702
1703         * toplev.c: Excise all code for the undocumented -dm option.
1704         (float_signal): Call signal just once, unconditionally.
1705
1706 2001-04-19  Geoff Keating  <geoffk@redhat.com>
1707
1708         * fold-const.c (fold): Use first_rtl_op rather than
1709         TREE_CODE_LENGTH when looping over parameters of a tree.
1710         Correct strange grouping in test for evaluated SAVE_EXPR.
1711
1712 Thu Apr 19 19:15:26 2001  Jeffrey A Law  (law@cygnus.com)
1713
1714         * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
1715         * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
1716
1717         * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
1718         name at 32 total characters.
1719         (ASM_OUTPUT_SECTION_NAME): Similarly.  Also, only support placing
1720         functions in named sections -- data items can still go into unique
1721         sections, but they have normal names (ie $LIT$ and $DATA$).
1722
1723         * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
1724         INIT_PRIORITY.
1725
1726 2001-04-19 DJ Delorie  <dj@redhat.com>
1727
1728         * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1729         to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
1730         * config/i386/cygwin.h: Likewise.
1731         * config/i386/mingw32.h: Likewise.
1732         * config/vax/vms.h: Likewise.
1733         * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
1734
1735         * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
1736         to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
1737         * config/i386/xm-cygwin.h: Likewise.
1738         * config/i386/xm-djgpp.h: Likewise.
1739         * config/i386/xm-mingw32.h: Likewise.
1740         * config/vax/xm-vms.h: Likewise.
1741
1742         * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
1743         instead of OBJECT_SUFFIX.
1744         * collect2.c (find_a_file): Look for files matching the extension
1745         HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
1746         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
1747         TARGET_EXECUTABLE_SUFFIX.
1748         (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
1749         (make_relative_prefix): Likewise.
1750         (convert_filename): Use TARGET_ suffixes throughout.  Remove
1751         NO_AUTO_EXE_SUFFIX.
1752         (process_command): Likewise.
1753         (do_spec_1): Likewise.
1754         * java/lang.c (init_parse): Likewise.
1755
1756         * gcc.texi : Document four new options matching the pattern
1757         (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
1758         for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
1759         documentation for NO_AUTO_EXE_SUFFIX.
1760
1761 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
1762
1763         * toplev.h (struct lang_hooks): Allow decode_option to indicate
1764         that language-independent processing should not be done.
1765         * toplev.c (main): Adjust accordingly.
1766
1767         * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
1768         * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
1769
1770         * mips.md (reload_outputdi): Require that operand0 be a
1771         general_operand.
1772
1773 2001-04-19  Jakub Jelinek  <jakub@redhat.com>
1774
1775         * invoke.texi (-Wshadow): Clarify.
1776
1777 2001-04-18  Mark Mitchell  <mark@codesourcery.com>
1778
1779         * loop.c (load_mems): Examine all the instructions in the loop
1780         before concluding that all jumps branch to the first instruction
1781         after the loop.
1782
1783 Wed Apr 18 20:32:03 2001  Christopher Faylor <cgf@cygnus.com>
1784
1785         * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
1786
1787 2001-04-18  Jakub Jelinek  <jakub@redhat.com>
1788
1789         * cpp.texi (-Wwhite-space): Remove.
1790         (-Wall): -Wall does not imply -Wwhite-space.
1791
1792 2001-04-17  Zack Weinberg  <zackw@stanford.edu>
1793
1794         * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
1795         use it instead of blindly generating a .stabs.
1796         * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
1797         in the right place.
1798         * xcoffout.c: Don't bother defining default for N_CATCH.
1799         (UNKNOWN_STAB): Use internal_error.
1800         (stab_to_sclass): Remove now-unnecessary aborts.
1801         Remove #if 0'ed case N_BROWS.  Add #ifdef N_OPT block.
1802
1803 Tue Apr 17 21:41:11 2001  Jeffrey A Law  (law@cygnus.com)
1804
1805         * jump.c (mark_all_labels): Canonicalize the tail recursion
1806         label attached to CALL_PLACEHOLDER insns.
1807
1808 2001-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1809
1810         * output.h (dump_flow_info, free_basic_block_vars,
1811         which_alternative): Delete redundant prototypes.
1812
1813         * rtl.h (bss_section): Likewise.
1814
1815 2001-04-17  Loren J. Rittle  <ljrittle@acm.org>
1816
1817         * dbxout.c (N_OPT): Define if not available from <stab.h>
1818
1819 2001-04-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1820
1821         * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
1822         libraries and native K&R compilers.
1823
1824 2001-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1825
1826         * c-typeck.c (convert_arguments): Don't check for width changes
1827         with -Wtraditional.
1828
1829         * invoke.texi (-Wtraditional): Update documentation.
1830
1831 2001-04-16  Zack Weinberg  <zackw@stanford.edu>
1832
1833         * toplev.c (output_lang_identify): Delete.
1834         (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
1835         Don't generate gcc2_compiled. label.  Don't emit a nop if profiling.
1836         If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
1837         after calling ASM_FILE_END.
1838
1839         * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
1840         Instead, unconditionally emit an N_OPT stab with string equal
1841         to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
1842
1843         * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
1844
1845         * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
1846         config/psos.h, config/ptx4.h, config/1750a/1750a.h,
1847         config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
1848         config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
1849         config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
1850         config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
1851         config/i370/i370.h, config/i386/beos-elf.h,
1852         config/i386/osf1elf.h, config/i386/osfrose.h,
1853         config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
1854         config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
1855         config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
1856         config/m68k/tower-as.h, config/mcore/mcore-elf.h,
1857         config/mips/iris6.h, config/mips/osfrose.h,
1858         config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
1859         config/sparc/sp64-elf.h:
1860         Delete definitions of any or all of: ASM_IDENTIFY_GCC,
1861         ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
1862
1863         * config/elfos.h, config/freebsd.h, config/linux.h,
1864         config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
1865         config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
1866         config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
1867         of ASM_FILE_START which merely emit a .version directive.  Delete
1868         definitions of ASM_FILE_END which merely emit an .ident directive.
1869
1870         * config/avr/avr.h, config/vax/vax.h: Delete definition of
1871         ASM_IDENTIFY_GCC and move part of its logic into
1872         ASM_FILE_START.
1873
1874         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
1875         config/sparc/linux-aout.h: Don't emit .version directive in
1876         ASM_FILE_START.
1877
1878         * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
1879         (output_file_start): Correct comment.
1880
1881         * config/i386/osfrose.h: Don't emit trailing .ident directive.
1882         * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
1883         to match gdb.
1884         * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
1885         * config/rs6000/aix.h: Correct comment.
1886
1887         * config/i386/i386afe.h: Delete.
1888         * config.gcc: Remove references to i386afe.h.
1889
1890         * tm.texi: Delete documentation of ASM_IDENTIFY_GCC.  The
1891         other macros deleted by this patch were undocumented.
1892
1893 Mon Apr 16 08:03:48 2001  Jeffrey A Law  (law@cygnus.com)
1894
1895         * pa.md (reload_outdi): Operand 0 must be a non hard register.
1896
1897         * pa.c (secondary_reload_class): SAR<->FP copies require a
1898         secondary register.
1899
1900         * install.texi (mips-mips-bsd): Update list of functions
1901         required to include memmove.
1902         * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
1903         used functions to include memmove.
1904
1905 2001-04-15  Toon Moene  <toon@moene.indiv.nluug.nl>
1906
1907         * i386.md (sqrtdf2): SFmode should be DFmode.
1908
1909 2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
1910
1911         * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
1912         (find_moveable_store): Likewise.
1913
1914 2001-04-15  Jim Wilson  <wilson@redhat.com>
1915
1916         * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
1917
1918 Sat Apr 14 16:24:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
1919
1920         * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
1921         (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
1922
1923 2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
1924
1925         * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
1926         first alternative.
1927
1928 2001-04-14  Alan Modra  <amodra@one.net.au>
1929
1930         * pa.c (force_mode): New function.
1931         (emit_move_sequence): Use it instead of generating new rtx_REGs.
1932
1933 2001-04-13  Jim Wilson  <wilson@redhat.com>
1934
1935         * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
1936         (first_instruction): New static variable.
1937         (rtx_needs_barrier): Return 1 for alloc.
1938         (init_insn_group_barriers): Set first_instruction.
1939         (rws_sum): Delete duplicate definition.
1940         (group_barrier_needed_p): Return 0 when first_instruction true.
1941         (safe_group_barrier_needed_p): Save and restore first_instruction
1942         around group_barrier_needed_p call.
1943
1944 Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
1945
1946         * expr.h (enum libfunc_index): Add LTI_memmove.
1947         (memmove_libfunc): Define macro.
1948         * optabs.c (init_optabs): Initialize memmove_libfunc.
1949         * expr.c (expand_assignment): Use memmove_libfunc instead of
1950         memcpy_libfunc.
1951
1952 2001-04-13  Alan Modra  <alan@linuxcare.com.au>
1953
1954         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
1955         fp mode addresses.
1956
1957 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1958
1959         * Makefile.in (reg-stack.o): Depend on reload.h.
1960         (insn-attrtab.o): Depend on flags.h.
1961
1962         * genattrtab (main): Include flags.h in insn-attrtab.c.
1963
1964         * reg-stack.c: Include reload.h.
1965
1966         * sparc.h (flag_pic): Delete redundant declaration.
1967
1968         * output.h (flag_pic): Likewise.
1969
1970         * tree.h (pedantic): Likewise.
1971
1972 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1973
1974         * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
1975
1976         * jump.c, regmove.c, toplev.c: Include reload.h.
1977
1978         * reload.h (reload_cse_regs): Declare.
1979
1980         * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
1981         reload_cse_regs, init_reload, mark_home_live, reload,
1982         init_caller_save): Delete redundant prototypes.
1983
1984 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1985
1986         * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
1987
1988         * regclass.c, ssa.c: Include expr.h.
1989
1990         * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
1991         gen_move_insn): Delete redundant declarations.
1992
1993 2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1994
1995         * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
1996         (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
1997         MAKEINFO and MAKEINFOFLAGS too.
1998         (stage4_build): Correctly order -B flags.
1999
2000 2001-04-13  Alan Modra  <amodra@one.net.au>
2001
2002         * pa.c (hppa_init_pic_save): Set rtx_unchanging for
2003         PIC_OFFSET_TABLE_SAVE_RTX.
2004         (zdepi_cint_p): Describe zdepi insn.
2005         Formatting and white space fixes throughout file.
2006
2007         * pa.c (uint32_operand): Don't use long constant >= 2^32.
2008         (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
2009         about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
2010         (compute_movstrsi_length): Make `align' unsigned to avoid warning.
2011         (output_64bit_and): Use plain `int's for shift counts.
2012         (output_64bit_ior): Likewise.
2013         (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
2014         * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
2015         `N', and simplify.
2016
2017         * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
2018         * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
2019         * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
2020         NEW_HP_ASSEMBLER into one.  Kill warnings.
2021
2022         * pa-gas.h: Delete file.
2023         * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
2024         Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
2025         hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
2026         instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
2027
2028         * config/pa/mill32.S: New file.
2029         * config/pa/mill64.S: New file.
2030         * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
2031         LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
2032         * config/pa/t-linux64: New file.
2033         * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
2034         (LIB1ASMFUNCS, LIB1ASMSRC): Define.
2035         (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
2036
2037         * elfos.h (SELECT_SECTION): Undef before defining.
2038         * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
2039         (LIB_SPEC): Remove -lmilli.
2040         (DBX_REGISTER_NUMBER): Remove.
2041         (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
2042         (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
2043         NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
2044         DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
2045         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
2046         ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
2047         ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
2048         TARGET_GAS): Define.
2049         * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
2050         (function_arg): If TARGET_ELF32, pass fp args in both general and fp
2051         regs if we don't have a prototype.
2052         * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
2053         * pa.h (TARGET_ELF32): Default to 0 if undefined.
2054         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
2055         EH_RETURN_HANDLER_RTX): Define.
2056         * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
2057         (DWARF_FRAME_REGNUM): Define.
2058         * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
2059         * pa32-linux.h: New file.
2060         * pa64-linux.h: New file.
2061
2062         * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2063         (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
2064         (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
2065         NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
2066         DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
2067         DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
2068         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2069         FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2070         READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
2071         DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
2072         UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
2073         ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
2074         TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
2075         * pa64-hpux.h: New file.
2076         (ASM_FILE_START): Correct typo.
2077         (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
2078         * config.gcc: Modify for above.
2079
2080 Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
2081
2082         * jump.c (jump_optimize_1): Don't delete dead stores here.
2083         * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
2084         prior to running jump optimize before cse2.
2085
2086 2001-04-12  Richard Henderson  <rth@redhat.com>
2087
2088         * Makefile.in (regmove.o): Depend on except.h.
2089         * regmove.c: Include it.
2090
2091 2001-04-12  Stan Shebs  <shebs@apple.com>
2092
2093         * objc/objc-act.c: Remove all code ifdefed with the never-used
2094         macro OBJC_INT_SELECTORS.
2095         * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
2096         * tm.texi: Remove doc for OBJC_INT_SELECTORS.
2097
2098 Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
2099
2100         * config/pa/quadlib.c: Add prototypes.
2101
2102 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2103
2104         * bitmap.h (debug_bitmap): Delete redundant prototype.
2105
2106         * rtl.h (get_frame_size): Likewise.
2107
2108 2001-04-12  Jim Wilson  <wilson@redhat.com>
2109
2110         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
2111         to just emit an fnorm.
2112
2113 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2114
2115         * c-common.h (truthvalue_conversion, type_for_mode,
2116         type_for_size): Delete redundant declarations.
2117
2118         * c-lex.h (is_class_name): Likewise.
2119
2120         * c-tree.h (pedantic, convert, getdecls, gettags,
2121         global_bindings_p, init_decl_processing, insert_block,
2122         maybe_build_cleanup, poplevel, print_lang_decl,
2123         print_lang_identifier, print_lang_type, pushdecl, pushlevel,
2124         set_block, incomplete_type_error, build_function_call,
2125         lvalue_or_else, mark_addressable): Likewise.
2126
2127         * expr.h (expand_tree_builtin): Likewise.
2128
2129 2001-04-12  Mark Mitchell  <mark@codesourcery.com>
2130
2131         * invoke.texi: Document --param max-gcse-memory.
2132
2133 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2134
2135         * configure.in (errno): Check for declaration.
2136         * configure, config.in: Regenerated.
2137
2138         * system.h (errno): Only declare if not already done.
2139
2140 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2141
2142         * recog.c (general_operand, immediate_operand,
2143         nonmemory_operand): Require CONST_INTs to be sign-extended
2144         values for their modes.
2145
2146 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2147
2148         * expmed.c (store_bit_field): Truncate CONST_INTs.
2149         (expand_mult_highpart, expand_divmod): Likewise.
2150         * expr.c (convert_modes, store_field): Likewise.
2151         * integrate.c (expand_inline_function): Use promote_mode() to
2152         determine whether to convert_modes() an argument as signed
2153         or unsigned.
2154         * optabs.c (expand_binop): Get CONST_INT operands
2155         sign-extended for their appropriate modes.
2156         * stmt.c (emit_case_nodes): Convert node values to the
2157         appropriate mode.
2158         (expand_end_case): Convert minval and range to the appropriate
2159         mode.
2160         * unroll.c (loop_iterations): Truncate abs_diff to the mode of
2161         the iteration variable.
2162         * varasm.c (immed_double_const): Don't require words to be
2163         narrower than host wide ints to properly sign-extend
2164         CONST_INTs.
2165
2166 2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
2167
2168         * sh.md (builtin_setjmp_receiver): New expander.
2169
2170 2001-04-12  David Edelsohn  <dje@watson.ibm.com>
2171
2172         * config/rs6000/rs6000.c (rs6000_emit_move): Do not
2173         special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
2174         for generating CONST_INT and CONST_DOUBLE.
2175
2176 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2177
2178         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
2179         already sign-extended.
2180         (rs6000_emit_prologue): Make register iterator signed.
2181         (rs6000_emit_epilogue): Likewise.
2182         * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
2183         and low.
2184         (movsf split, movdf split): Sign-extend CONST_INTs.
2185         (movdi splits): Likewise.
2186
2187 2001-04-12  Kelley Cook <kelley.cook@home.com>
2188
2189         * config-lang.in (lang_dirs): Add in zlib.
2190
2191 2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
2192
2193         * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
2194         operands that make it to RTL.
2195
2196 2001-04-11  Stan Shebs  <shebs@apple.com>
2197
2198         Add Darwin (Mac OS X kernel) native support.
2199         * config.gcc (powerpc-*-darwin*): Add native bits.
2200         * config/darwin.c: New file, generic Darwin support functions.
2201         * config/darwin.h: New file, generic Darwin definitions.
2202         * config/darwin-protos.h: New file, generic Darwin prototypes.
2203         * rs6000/darwin.h: New file, Darwin for PowerPC.
2204         * rs6000/t-darwin: New file, Darwin makefile fragment.
2205         * rs6000/rs6000.h (OBJECT_MACHO): New macro.
2206         (TARGET_MACHO): Ditto.
2207         (rs6000_abi): Add ABI_DARWIN.
2208         (RS6000_REG_SAVE): Add ABI_DARWIN case.
2209         (RS6000_SAVE_AREA): Ditto.
2210         (FP_ARG_MAX_REG): Ditto.
2211         (RETURN_ADDRESS_OFFSET): Ditto.
2212         * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
2213         cases.
2214         (rs6000_emit_move): Add ABI_DARWIN cases.
2215         (print_operand): Ditto.
2216         (first_reg_to_save): Ditto.
2217         (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
2218         (debug_stack_info): Ditto.
2219         (rs6000_emit_prologue): Ditto.
2220         (rs6000_emit_epilogue): Ditto.
2221         (output_profiler_hook): Ditto.
2222         (output_function_profiler): Ditto.
2223         (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
2224         (output_mi_thunk): Add TARGET_MACHO case.
2225         (add_compiler_stub): Ditto.
2226         (output_compiler_stub): Ditto.
2227         (no_previous_def): Ditto.
2228         (output_call): Ditto.
2229         (machopic_output_stub): Ditto.
2230         (rs6000_machopic_legitimize_pic_address): Ditto.
2231         (toc_section): Ditto.
2232         * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
2233         (macho_high): Ditto.
2234         (macho_low): Ditto.
2235         (movsi_low): Ditto.
2236         (load_macho_picbase): Ditto.
2237         (call): Add TARGET_MACHO case to modify function.
2238         (call_value): Ditto.
2239         (call_nonlocal_sysv): Add ABI_DARWIN case.
2240         (call_value_nonlocal_sysv): Ditto.
2241         * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
2242         Add prototype.
2243         (machopic_output_stub): Ditto.
2244         * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
2245
2246 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2247
2248         * dwarf2out.c (modified_type_die): Don't create new types here.
2249         * tree.h (get_qualified_type): New function.
2250         (build_qualified_type): Adjust comment.
2251         * tree.c (get_qualified_type): New function.
2252         (build_qualified_type): Use it.
2253
2254 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2255
2256         * cpp.texi (-Wtraditional): Update description.
2257
2258         * invoke.texi (-Wtraditional): Likewise.
2259
2260 2001-04-11  Jim Wilson  <wilson@redhat.com>
2261
2262         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
2263         requires more than 64 bits of alignment.
2264
2265 2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2266
2267         * cpplib.c (do_line): Sanity check iff enable checking.
2268
2269 2001-04-11  Richard Henderson  <rth@redhat.com>
2270
2271         * Makefile.in (insn-recog.o): Depend on toplev.h.
2272         (insn-emit.o, doloop.o): Likewise.
2273         * genrecog.c, genemit.c: Include toplev.h in generated file.
2274         * doloop.c: Include toplev.h.
2275
2276 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2277
2278         * Makefile.in (gcse.o): Depend on params.h.
2279         * gcse.c: Include params.h.
2280         (gcse_main): Don't do GCSE if doing so will take inordinate
2281         amounts of memory.
2282         * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
2283         * params.h (MAX_GCSE_MEMORY): New macro.
2284
2285 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2286
2287         * Makefile.in (insn-output.o): Depend on $(EXPR_H).
2288
2289         * genoutput.c (output_prologue): Include expr.h in insn-output.c.
2290
2291 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2292
2293         * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
2294
2295         * real.h (ereal_atof, real_value_truncate, target_isnan,
2296         target_isinf, target_negative, assemble_real, debug_real): Delete
2297         redundant prototypes.
2298
2299         * Makefile.in (ifcvt.o): Depend on toplev.h.
2300
2301         * c-semantics.c: Include expr.h.
2302
2303         * ifcvt.c: Include toplev.h.
2304
2305         * expr.h (rtx_equal_p): Delete prototype.
2306
2307         * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
2308         protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
2309         eliminate_constant_term, expand_complex_abs, find_single_use,
2310         make_tree, init_expr_once, init_optabs, supports_one_only):
2311         Likewise.
2312
2313         * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
2314         rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
2315         expand_assignment, store_expr, emit_line_note_after,
2316         emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
2317
2318         * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
2319
2320         * sparc-protos.h: Delete redundant prototypes.
2321
2322 2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
2323
2324         * reload.c (push_reload): Add condition missed in SUBREG byte
2325         offset patch.
2326
2327 Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2328
2329         * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
2330
2331 Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
2332
2333         * i386.md (floatsisf_sse): Fix output template
2334         * i386.c (ix86_expand_fp_movcc)
2335
2336         * reg-stack.c (emit_pop_insn): Handle complex modes.
2337         (move_for_stack_reg): Emit proper move mode.
2338         (subst_stack_regs_pat): Handle complex modes.
2339
2340 2001-04-11  Jakub Jelinek  <jakub@redhat.com>
2341
2342         * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
2343
2344 2001-04-10  Richard Henderson  <rth@redhat.com>
2345
2346         * libgcc2.h (__terminate_func_ptr): Remove typedef.
2347         (__pure_virtual, __terminate, __terminate_set_func,
2348         __default_terminate, __throw_type_match, __empty,
2349         __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
2350         __eh_rtime_match, __unwinding_cleanup, __rethrow,
2351         __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
2352         Remove prototypes of deleted functions.
2353
2354 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2355
2356         * c-typeck.c (convert_arguments): -Wtraditional now activates
2357         -Wconversion warnings, except for changes in signed-ness.
2358         Detect complex<->int & int<->complex conversions as well.
2359
2360         * invoke.texi (-Wtraditional): Document it.
2361
2362 Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2363
2364         * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
2365         * flow.c (set_block_for_new_insns): Remove needless cast and
2366         properly check for unset block number.
2367
2368 2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
2369
2370         * function.c (purge_single_hard_subreg_set): Only check REGNO if
2371         the subreg was a hard register. Pseudos are left as subregs.
2372
2373 2001-04-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2374
2375         * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
2376         (LIB2ADD_ST): New macro, pass it to mklibgcc.
2377         * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
2378         (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
2379         * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
2380
2381 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
2382
2383         * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
2384
2385 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2386
2387         * output.h (set_block_num): Missed it earlier, remove deprecated
2388         prototype.
2389
2390 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2391
2392         * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
2393         (load_killed_in_block_p): Change bb parameter from int to basic_block.
2394         (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
2395         (handle_rd_kill_set): Change bb parameter from int to basic_block.
2396         (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
2397         (expr_killed_p): Change bb parameter from int to basic_block, pass
2398         basic_blocks instead of ints as parameters.
2399         (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
2400         (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
2401         from int to basic_block, pass basic_blocks instead of ints as parms.
2402         (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
2403         parameter from int to basic_block, pass basic_blocks instead of ints.
2404         (process_insert_insn): Pass basic_blocks instead of ints as parameters.
2405         (insert_insn_end_bb): Change bb parameter from int to basic_block,
2406         pass basic_blocks instead of ints.
2407         (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
2408         basic_blocks instead of ints as parameters.
2409         (pre_delete): Pass basic_blocks instead of ints as parameters.
2410         (hoist_expr_reaches_here_p): Change bb parameter from int to
2411         basic_block, pass basic_blocks instead of ints.
2412         (hoist_code): Pass basic_blocks instead of ints as parameters.
2413         (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
2414         Change bb parameter from int to basic_block.
2415         (build_store_vectors): Pass basic_blocks instead of ints as parameters.
2416         (insert_insn_start_bb): Change bb parameter from int to basic_block,
2417         pass basic_blocks instead of ints.
2418         (insert_store): Pass basic_blocks instead of ints as parameters.
2419         (replace_store_insn, delete_store): Change bb parameter from int to
2420         basic_block, pass basic_blocks instead of ints.
2421         (store_motion): Pass basic_blocks instead of ints as parameters.
2422
2423 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2424
2425         * basic-block.h (set_new_block_for_insns): New Prototype.
2426         (set_block_num): Delete prototype.
2427         * flow.c (set_block_num): Remove obsolete function.
2428         (set_block_for_new_insns): Set BB for single or multiple insns.
2429         * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
2430         (process_insn_end_bb): Use set_block_for_new_insns or
2431         set_block_for_insn instead of set_block_num.
2432         (pre_insert_copy_insn): Use set_block_for_new_insns.
2433         (update_ld_motion_stores): Use set_block_for_new_insns.
2434         (insert_insn_start_bb): Use set_block_for_new_insns.
2435         (replace_store_insn): Use set_block_for_new_insns.
2436
2437 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2438             Jeff Law  <law@redhat.com>
2439
2440         * alias.c (get_addr): Externalize.
2441         (canon_true_dependence): New function. Behaves like true_dependance
2442         except it already assumes a MEM has been canonicalized.
2443         * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
2444         * gcse.c (struct ls_expr): Add load/store expressions structure.
2445         (modify_mem_list, canon_modify_mem_list): New variable.
2446         (gcse_main): Initialize & finalize alias analysis. Use enhanced
2447         load motion and store motion if requested.
2448         (alloc_gcse_mem): Allocate space for modify_mem_list array.
2449         (free_gcse_mem): Free the modify_mem_list array.
2450         (oprs_unchanged_p): Use load_killed_in_block_p.
2451         (gcse_mems_conflict_p, gcse_mem_operand): New variables.
2452         (mems_conflict_for_gcse_p): New function.  Don't kill loads
2453         with stores to themselves if its in the load/store expression list.
2454         (load_killed_in_block_p): New function.
2455         (canon_list_insert): New Function.
2456         (record_last_mem_set_info): Keep a list of all instructions which
2457         can modify memory for each basic block.
2458         (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
2459         (oprs_not_set_p): Use load_killed_in_block_p.
2460         (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
2461         (expr_killed_p): Use load_killed_in_block_p.
2462         (compute_transp): Do not pessimize memory references.
2463         (pre_edge_insert): Update stores for a load motion expression.
2464         (one_pre_gcse_pass): Check loads/stores for extra load motion.
2465         (ldst_entry): Find or create a ldst_expr structure.
2466         (free_ldst_entry): Free memory for an individual item.
2467         (free_ldst_mems): Free entire load/store expression list.
2468         (print_ldst_list): Print debug info.
2469         (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
2470         (enumerate_ldsts): Assign integer values to each entry in list.
2471         (first_ls_expr): First expression in the list.
2472         (next_ls_expr): Next expression in the list.
2473         (simple_mem): Check if expression qualifies for ld/st expression list.
2474         (invalidate_any_buried_refs): Remove from expression list if its
2475         used in some other way we dont understand.
2476         (compute_ld_motion_mems): Find all potential enhanced load motion
2477         expression.
2478         (trim_ld_motion_mems): Remove any expressions which are invalid.
2479         (update_ld_motion_stores): Copy store values to registers for loads
2480         which have been moved.
2481         (regvec, st_antloc, num_store): New global statics.
2482         (reg_set_info): Marks registers as set.
2483         (store_ops_ok): Verfies registers expressions are valid in a block.
2484         (find_moveable_store): Look for moveable stores in a pattern.
2485         (compute_store_table): Find stores in a function worth moving, maybe.
2486         (load_kills_store): Check dependance of a load and store.
2487         (find_loads): Find any loads in a pattern.
2488         (store_killed_in_insn): Check if a store is killed in an insn.
2489         (store_killed_after): Check is store killed after an insn in a block.
2490         (store_killed_before): Check is store killed before an insn in a block.
2491         (build_store_vectors): Generate the antic and avail vectors.
2492         (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
2493         (insert_store): Add a store to an edge.
2494         (replace_store_insn): Replace a store with a SET insn.
2495         (delete_store): Delete a store insn.
2496         (free_store_memory): Free memory.
2497         (store_motion): Perform store motion.
2498         * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
2499         * rtl.h (get_addr, canon_true_dependence): Add prototypes.
2500         * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
2501         (f_options): Add gcse-lm and gcse-sm.
2502
2503 Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
2504
2505         * i386.c (expand_fp_movcc): Fix condition reversal code.
2506
2507         * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
2508         * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
2509         (CLASS_MAX_NREGS): Use it.
2510
2511         * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
2512         handle properly complex values.
2513         (CLASS_MAX_NREGS): Likewise; update comment.
2514
2515 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2516
2517         * ia64.c (ia64_flag_schedule_insns2): New variable.
2518         (ia64_override_options): Initialize it.  Clear
2519         flag_schedule_insns_after_reload.
2520         (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
2521
2522 Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
2523
2524         * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
2525         Do not require source to match destination anymore;
2526         Add abort to the nontrivial cases that should be handled by split.
2527         (fix_trunc?fdi): Add SSE case for x86_64.
2528         (floatdi?f): Likewise.
2529         (floatdi?f_sse): New.
2530         (fix_trunc?fdi_sse): New.
2531
2532 2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
2533
2534         * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
2535         (DEBUG_ARANGES_END_LABEL): Ditto.
2536         (dwarfout_init): Generate length and version fields at the start
2537         of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
2538         after the length field.
2539         (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
2540         the .debug_aranges info.
2541
2542 Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
2543
2544         * i386.c (call, call_value): Make sure that resulting call_insn
2545         does have proper second operand.
2546
2547 Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
2548
2549         * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
2550         function.  Remove include of sys/cygwin.h.
2551
2552 Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
2553
2554         * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
2555         (CPP_SPEC): Always search */include/w32api for header files.
2556         (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
2557         (LINK_SPEC): Add "cyg" to the library search prefixes.
2558
2559 2001-04-08  Philip Blundell  <philb@gnu.org>
2560
2561         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
2562
2563 2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2564
2565         * cpperror.c (print_location): Don't special case <stdin>.
2566         (_cpp_begin_message): Handle WARNING_SYSHDR the same as
2567         WARNING, but we don't check if we're in system headers.
2568         * cpplib.h (enum error_type): WARNING_SYSHDR: New.
2569         * cpplib.c (do_warning): Warn in system headers.
2570
2571 2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
2572
2573         * mbchar.c: Include config.h first.
2574
2575 2001-04-07  Zack Weinberg  <zackw@stanford.edu>
2576
2577         * config.gcc: Set default for xmake_file at top, not bottom.
2578         Change places that set xmake_file to "none" to set to the
2579         empty string instead, or remove them entirely if there is no
2580         default xmake_file for this cpu_type.  Remove references to
2581         deleted files.
2582
2583         * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
2584         config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
2585         config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
2586         config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
2587         config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
2588         config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
2589         config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
2590         config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
2591         config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
2592         config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
2593         Delete.
2594
2595         * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
2596         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
2597         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
2598         config/mips/x-sysv, config/rs6000/x-aix31:
2599         Just set CLIB to -lld or -lmld, as appropriate.
2600
2601         * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
2602         config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
2603         config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
2604         config/mips/x-iris, config/pa/x-pa:
2605         Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
2606         OTHER_FIXINCLUDES_DIRS.
2607
2608         * config/i386/x-djgpp: Don't set LN or LN_S.
2609         * config/m88k/x-dolph: Don't define __m88k__.
2610         * config/m88k/x-tekXD88: Don't set AR_FLAGS.
2611         * config/pa/x-pa-mpeix: Just set up quadlib.asm.
2612         * config/i860/fx2800.h: No need to #undef SVR4.
2613
2614         38 x-host fragments remain, 2 x-cpu.
2615
2616 2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2617
2618         * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
2619
2620 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2621
2622         * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
2623
2624 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2625
2626         * configure.in: Add check for lstat.
2627         * configure, config.in: Regenerate.
2628         * cppinit.c (append_include_chain): Make empty path ".".
2629         * cpplib.c (do_line): Don't simplify #line paths.
2630         * cppfiles.c (remove_component_p): New function.
2631         (find_or_create_entry): Acknowledge stat () errors during
2632         path simplification.
2633         (handle_missing_header): Don't simplify paths.
2634         (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
2635         the empty path untouched.  Don't leave a trailing '/'.
2636
2637 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2638
2639         * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2640         * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2641
2642 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2643
2644         * cppfiles.c (open_file): Fail directories silently, but
2645         with an errno of NOENT set.
2646         (read_include_file): Move the common exit code to the sole
2647         caller.  Return an int indicating success or failure.  Let
2648         open_file handle directories.
2649         (stack_include_file): If read_include_file fails,
2650         push a "null" buffer.
2651
2652 2001-04-05  DJ Delorie  <dj@redhat.com>
2653
2654         * function.h (virtuals_instantiated): Declare.
2655         * function.c: (virtuals_instantiated): Make global.
2656         * calls.c (emit_library_call_value_1): Use
2657         virtual_outgoing_args_rtx only if it hasn't been instantiated.
2658         Otherwise, use the stack pointer directly.
2659
2660 Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
2661
2662         * i386.c (x86_initialize_trampoline): New global function.
2663         * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
2664         (INITIALIZE_TRAMPOLINE): Move offline.
2665         * i386-protos.h (x86_initialize_trampoline): Declare.
2666
2667 Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2668
2669         * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
2670         (lea_0): Rename to lea_1.
2671         (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
2672         (lea_general_?): Allow SImodes on TARGET_64BIT
2673         (lea_general_?_zext): New patterns.
2674         (call_1, call_1_rex64): Fix.
2675
2676 Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2677
2678         * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
2679
2680 Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2681
2682         * i386.c (function_arg): Return constm1_rtx for last argument.
2683         (ix86_expand_prologue): Update gen_call calls.
2684         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
2685         * i386.md (call_pop): Likewise.
2686         (call): Second operand is VOIDmode.
2687         (call_0): Likewise; Support 64bits.
2688         (call_exp): New expander.
2689         (call_1): Get to the sync.
2690         (call_1_exp): New pattern.
2691         (call_value): Support 64bit.
2692         (call_value_exp): New pattern.
2693         (untyped_call): Update gen_call call.
2694         (call_value_pop): Disable for 64bit.
2695         (call_value_0_rex64): New pattern.
2696         (call_value_1_rex64): Likewise.
2697
2698 2001-04-05  Bo Thorsen  <bo@suse.de>
2699
2700         * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
2701
2702 Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
2703
2704         * i386.md (*andsi_1+3): If used after reload, make sure the operand
2705         satisfies ANY_QI_REG_P.
2706
2707 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2708
2709         * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
2710         ASM_OPERAND.
2711
2712         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
2713         change.
2714
2715 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
2716
2717         * config.gcc: Remove default for xm_file.  Clean up local
2718         machine type handling.  Remove settings of xm_file to
2719         something that doesn't exist.  In the big switch, set xm_file,
2720         don't append to it (the value before the big switch is always
2721         null).  Don't force build_xm_file or host_xm_file to have a value.
2722         * configure.in: Remove default for xm_file.  Do not special
2723         case $cpu/xm-$cpu.h not existing.
2724         * configure: Regenerate.
2725
2726 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
2727
2728         * simplify-rtx.c (simplify_binary_operation): Check for overflow
2729         when folding integer division and modulo operations.
2730
2731 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
2732
2733         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
2734         instead of DWARF2_ADDR_SIZE for EH addresses.
2735         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
2736         EH addresses.
2737
2738 2001-04-04  Richard Henderson  <rth@redhat.com>
2739
2740         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
2741         * config/ia64/t-glibc (LIB2ADDEH): Disable.
2742         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
2743
2744 2001-04-04  Richard Henderson  <rth@redhat.com>
2745
2746         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
2747         * configure: Rebuilt.
2748
2749 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2750
2751         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
2752         push insns to delete to it instead of deleting them.
2753         (delete_null_pointer_checks): Delete insns from delete_list after
2754         all delete_null_pointer_checks_1 passes are done.
2755
2756 2001-04-04  Richard Henderson  <rth@redhat.com>
2757
2758         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
2759         * configure: Rebuilt.
2760
2761 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
2762
2763         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
2764         * config/romp/xm-romp.h: Delete.
2765
2766 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
2767
2768         * sched-deps.c (sched_analyze_insn): Partially revert March 27
2769         change.
2770
2771 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2772
2773         * emit-rtl.c (mark_label_nuses) Increment the label uses for
2774         all labels present in rtx.
2775         (try_split) Call new function for all split insns.
2776
2777 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2778
2779         * recog.c (validate_replace_rtx_1): Instead of aborting just make
2780         sure the change won't be validated.
2781
2782 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
2783
2784         * rtl.h (set_noop_p): Declare.
2785         * flow.c (set_noop_p): Move from here ...
2786         * rtlanal.c (set_noop_p): ... to here and enhance.
2787         * cse.c (delete_trivially_dead_insns): Use it.
2788         * gcse.c (hash_scan_set): Likewise.
2789         * jump.c (delete_noop_moves): Likewise.
2790         * recog.c (split_all_insns): Likewise.
2791
2792 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
2793
2794         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
2795         stack pointer via a LO_SUM.  Ditto for setting a temp register
2796         used to save to the stack.  Set cfa_temp when setting fp, and
2797         allow matches to cfa_temp in addition to cfa_store when saving
2798         regs.  Handle POST_INC and LO_SUM register stores.  Document the
2799         changes and errors in rule 12 doco.
2800
2801         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
2802         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
2803         (load_reg): Move closer to epilogue code.
2804         (DO_FRAME_NOTES): Define to control the following..
2805         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
2806         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
2807         notes as necessary.
2808         (hppa_expand_epilogue): Likewise.
2809
2810 2001-04-03  Richard Henderson  <rth@redhat.com>
2811
2812         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
2813         * configure: Rebuild.
2814
2815 2001-04-03  Richard Henderson  <rth@redhat.com>
2816
2817         * rtl.h (LCT_THROW): New.
2818         * calls.c (emit_library_call_value_1): Handle it.
2819         * except.c (connect_post_landing_pads): Use it.
2820
2821 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
2822
2823         * gansidecl.h: Delete file.
2824         * configure.in: Change all refs to gansidecl.h to use
2825         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
2826         lives.
2827         * configure: Regenerate.
2828
2829         * Makefile.in (intl.o): Don't depend on gansidecl.h.
2830         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
2831         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
2832         Don't include gansidecl.h.
2833         * intl.c, main.c, version.c, fixinc/fixlib.h,
2834         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
2835         gansidecl.h.
2836
2837 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
2838
2839         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
2840         Update for 64bit.
2841
2842 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
2843
2844         * config/i386/xm-beos.h, config/i386/xm-isc.h,
2845         config/i386/xm-next.h, config/i386/xm-sco.h,
2846         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
2847         config/m88k/xm-m88k.h: Delete.
2848
2849         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
2850         * config/romp/xm-romp.h: Don't define bcopy.
2851         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
2852         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
2853
2854         * config.gcc: Remove references to deleted files.
2855
2856         14 xm-host.h remain, 1 xm-cpu.h.
2857
2858 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
2859             David S. Miller  <davem@pierdol.cobaltmicro.com>
2860             Andrew MacLeod  <amacleod@redhat.com>
2861
2862         Use byte offsets in SUBREGs instead of words.
2863
2864         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
2865         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
2866         to pass new argument.
2867         (add_stored_regs): Use subreg_regno_offset function.
2868         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
2869         into account.
2870         (precompute_arguments): Use gen_lowpart_SUBREG.
2871         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
2872         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
2873         (simplify_set): Rework to use SUBREG_BYTE.
2874         (expand_field_assignment): Use SUBREG_BYTE.
2875         (make_extraction): Use SUBREG_BYTE.
2876         (if_then_else_cond): Use SUBREG_BYTE.
2877         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
2878         (gen_lowpart_for_combine): Compute full byte offset.
2879         * cse.c (mention_regs): Use SUBREG_BYTE.
2880         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
2881         (canon_hash): Use SUBREG_BYTE.
2882         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
2883         (gen_lowpart_if_possible): Formatting.
2884         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
2885         correctly.
2886         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2887         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2888         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2889         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
2890         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2891         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
2892         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
2893         certain invariants about SUBREGs the compiler creates.
2894         (gen_lowpart_SUBREG): New function.
2895         (subreg_hard_regno): New function to get the final register number.
2896         (gen_lowpart_common): Use SUBREG_BYTE.
2897         (gen_imagpart): Spacing nits.
2898         (subreg_realpart_p): Use SUBREG_BYTE.
2899         (gen_highpart): Use SUBREG_BYTE.
2900         (subreg_lowpart_p): Always compute endian corrected goal offset,
2901         even at the byte level, then compare against that.
2902         (constant_subword): New function, pulled out all constant cases
2903         from operand_subword and changed second argument name to offset.
2904         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
2905         and call constant_subword to do the work.  Return const0_rtx if
2906         looking for a word outside of OP.
2907         (operand_subword_force): Change second arg name to offset.
2908         * expmed.c (store_bit_field): Use SUBREG_BYTE.
2909         (store_split_bit_field): Use SUBREG_BYTE.
2910         (extract_bit_field): Use SUBREG_BYTE.
2911         (extract_split_bit_field): Use SUBREG_BYTE.
2912         (expand_shift): Use SUBREG_BYTE.
2913         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
2914         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
2915         * flow.c (set_noop_p): Use SUBREG_BYTE.
2916         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
2917         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
2918         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
2919         correction code.
2920         (optimize_bit_field): Use SUBREG_BYTE.
2921         (purge_addressof_1): Use SUBREG_BYTE.
2922         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
2923         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
2924         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
2925         * gengenrtl.c (special_rtx): Add SUBREG.
2926         * global.c (mark_reg_store): Use SUBREG_BYTE.
2927         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
2928         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
2929         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
2930         final byte offset is congruent to subreg's mode size.
2931         (subst_constants): Use SUBREG_BYTE.
2932         (mark_stores): Use subreg_regno_offset function.
2933         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
2934         function and SUBREG_BYTE.
2935         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
2936         (reg_is_born): Use subreg_hard_regno.
2937         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
2938         endian correction code.  Don't combine subregs unless resulting
2939         offset aligns with type.  Fix subreg constant extraction for DImode.
2940         Simplify SUBREG of VOIDmode CONST_DOUBLE.
2941         (general_operand): Remove dead mode_altering_drug code.
2942         (indirect_operand): Use SUBREG_BYTE.
2943         (constrain_operands): Use subreg_regno_offset function.
2944         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
2945         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
2946         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
2947         * regs.h (REG_SIZE): Allow target to override.
2948         (REGMODE_NATURAL_SIZE): New macro which target can override.
2949         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
2950         on the entire subreg rtx.
2951         (push_reload): Use SUBREG_BYTE in comments and code.
2952         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
2953         for hard registers inside subregs.
2954         (operands_match_p): Use subreg_regno_offset.
2955         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
2956         containing hard regs.
2957         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
2958         corrections when fixing up MEM subregs.
2959         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
2960         subreg_regno_offset where appropriate.
2961         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
2962         byte endian corrections when fixing up MEM subregs.
2963         (subst_reloads): When combining two subregs, make sure final
2964         offset is congruent to subreg's mode size.
2965         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
2966         (refers_to_regno_for_reload_p): Use subreg_regno.
2967         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
2968         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
2969         correction code for memory subreg fixups.
2970         (forget_old_reload_1): Use subreg_regno_offset.
2971         (choose_reload_regs): Use subreg_regno.
2972         (emit_input_reload_insns): Use SUBREG_BYTE.
2973         (reload_combine_note_store): Use subreg_regno_offset.
2974         (move2add_note_store): Use subreg_regno_offset.
2975         * resource.c (update_live_status, mark_referenced_resources): Use
2976         subreg_regno function.
2977         (mark_set_resources): Use subreg_regno function.
2978         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
2979         (subreg_regno_offset, subreg_regno): Define prototypes.
2980         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
2981         (gen_lowpart_SUBREG): Add prototype.
2982         * rtl.texi (subreg): Update to reflect new byte offset representation.
2983         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
2984         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
2985         (reg_overlap_mentioned_p): Use subreg_regno.
2986         (replace_regs); Make sure final offset of combined subreg is
2987         congruent to size of subreg's mode.
2988         (subreg_regno_offset): New function.
2989         (subreg_regno): New function.
2990         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
2991         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
2992         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
2993         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
2994         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
2995         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
2996         (a29k_get_reloaded_address): Use SUBREG_BYTE.
2997         (print_operand): Use SUBREG_BYTE.
2998         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
2999         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
3000         (arm_reload_out_hi): Use SUBREG_BYTE.
3001         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
3002         instead of SUBREG_WORD.
3003         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
3004         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
3005         SUBREG creation to use byte offset.
3006         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
3007         inverted load insns): Fix explicit rtl subregs to use byte
3008         offsets.
3009         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
3010         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
3011         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
3012         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
3013         to use byte offsets.
3014         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
3015         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
3016         offsets, also make sure it is congruent to SUBREG's mode size.
3017         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
3018         unnamed ldob insn): Generate SUBREGs with byte offset.
3019         (zero_extendqihi2): SUBREG's are byte offsets.
3020         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
3021         (m68hc11_gen_highpart): Use SUBREG_BYTE.
3022         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
3023         zero-extendqisi2): Generate SUBREGs with byte offset.
3024         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
3025         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
3026         subregs in rtl to use byte offsets.
3027         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
3028         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
3029         (mips_move_2words): Use subreg_regno_offset.
3030         (mips_secondary_reload_class): Use subreg_regno_offset.
3031         * config/mips/mips.md (DImode plus, minus, move, and logical op
3032         splits): Fixup explicit subregs in rtl to use byte offsets.
3033         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
3034         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
3035         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
3036         rtl to use byte offsets.
3037         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
3038         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
3039         subregs to use byte offsets.
3040         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
3041         Fixup explicit subregs in rtl to use byte offsets.
3042         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
3043         and remove byte endian correction code.
3044         * config/sh/sh.c (output_movedouble): Use subreg_regno.
3045         (gen_ashift_hi): Use SUBREG_BYTE.
3046         (regs_used): Use subreg_regno_offset.
3047         (machine_dependent_reorg): Use subreg_regno_offset.
3048         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
3049         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
3050         (movdf_i4): Subregs are byte offsets now.
3051         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
3052         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
3053         (REGMODE_NATURAL_SIZE): Override.
3054         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
3055         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
3056         with byte offsets.
3057         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
3058         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
3059         extendqidi2): Generate SUBREGs with byte offsets, also make sure
3060         it is congruent to SUBREG's mode size.
3061         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
3062         offsets.
3063         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
3064         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
3065         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
3066         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
3067         * config/v850/v850.c (print_operand, output_move_double): Use
3068         subreg_regno function.
3069
3070 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3071
3072         * configure.in (target_subdir): Use target_alias, not target.
3073         * configure: Rebuilt.
3074
3075         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
3076         other way round.
3077         * config/sh/crti.asm: Fix typos in comments.
3078
3079 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3080
3081         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
3082         TARGET_FAST_INDIRECT_CALLS.
3083         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
3084         -fPIC.  Don't warn.
3085         (return_addr_rtx): Short circuit export stub matching when
3086         TARGET_NO_SPACE_REGS.
3087         (output_millicode_call): For out of range calls, make -fPIC
3088         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
3089         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
3090         * pa.md: Modify length attr calculation of all millicode insns to
3091         match above.
3092
3093 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
3094
3095         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
3096         Require at least 2.11 in the version test.  Specifically check
3097         for and reject GAS version 2.10.90.
3098         * configure: regenerate.
3099
3100 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3101
3102         * pa.c (override_options): Remove PIC profiling warning.
3103         (hp_profile_labelno): Delete.
3104         (hp_profile_label_rtx): Delete.
3105         (hp_profile_label_name): Delete.
3106         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
3107         (output_function_prologue): Remove profiling code and all tests on
3108         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
3109         merge_sp_adjust_with_store can work for PIC and profiling.
3110         (hppa_expand_epilogue): Remove profile_flag test.
3111         (hppa_can_use_return_insn_p): Likewise.
3112         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
3113         cater for PROFILE_HOOK.
3114         (hppa_profile_hook): New function.
3115         * pa.h (FUNCTION_PROFILER): Now does nothing.
3116         (PROFILE_HOOK): Define.
3117         (hppa_profile_hook): Declare.
3118         (PROFILE_BEFORE_PROLOGUE): Delete.
3119         (ASM_OUTPUT_REG_PUSH): Delete.
3120         (ASM_OUTPUT_REG_POP): Delete.
3121         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
3122         r24.  Accept function name operand, and use this and a locally
3123         generated label to calculate pc-rel offset to func start.
3124
3125 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3126
3127         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
3128         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
3129         $(SYSTEM_H).
3130
3131 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3132
3133         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
3134         LO_SUM cases to where they belong.
3135
3136 2001-04-02  Richard Henderson  <rth@redhat.com>
3137
3138         * except.h (lang_eh_type_covers): Mark extern.
3139         (lang_eh_runtime_type): Likewise.
3140
3141 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
3142
3143         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
3144         gengenrtl.c:  Wrap generated header in multiple-include guard.
3145         Improve error checking.
3146
3147 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3148
3149         * configure.in: Don't check for putenv.
3150         * configure: Regenerate.
3151         * gcc.c (putenv): Don't define.
3152         * vax/xm-vms.h: Handle putenv.
3153
3154 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
3155
3156         * ifcvt.c (noce_emit_move_insn): New.
3157         (noce_try_store_flag, noce_try_store_flag_constants,
3158         noce_try_store_flag_inc, noce_try_store_flag_mask,
3159         noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
3160         noce_try_abs): Use it.
3161         (noce_process_if_block): Likewise.
3162         For STRICT_LOW_PART, take mode from its SUBREG.
3163
3164 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
3165
3166         * fold-const.c (fold): Before optimizing unsigned comparison with
3167         0x7fffffffU, make sure arg0 is integral type.
3168
3169 2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3170
3171         * c-tree.texi: Document representation of wide strings.
3172
3173 2001-04-01  Richard Henderson  <rth@redhat.com>
3174
3175         * except.h (expand_builtin_dwarf_fp_regnum): Declare.
3176
3177 Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
3178
3179         * i386.md: remove obsoleted comments.
3180         (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
3181         (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
3182         fix output template.
3183
3184 2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
3185
3186         * config/avr/libgcc.S (__mulhi3): Optimize previous change.
3187
3188 2001-03-30  Bernd Schmidt  <bernds@redhat.com>
3189
3190         * loop.c (load_mems): When generating a load from a pseudo, update
3191         REGNO_LAST_UID.
3192
3193 Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3194
3195         * i386.c (ix86_split_long_move): Use change address to compensate
3196         stack pointer change in push instruction.
3197
3198 Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
3199
3200         * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
3201         instead of rtx_equal_p; fix the output template.
3202
3203 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
3204
3205         * i386.c (ix86_expand_setcc): Support 64bit.
3206         (ix86_expand_int_movcc): Likewise.
3207         * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
3208         New patterns.
3209
3210         * i386.md (allocate_stack_worker): Turn to expander.
3211         (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
3212
3213         * i386.c (print_reg): Do not print x86_64 style regs on IA-32
3214
3215 2001-03-29  Richard Henderson  <rth@redhat.com>
3216
3217         * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
3218
3219 2001-03-28  Matthew Hiller  <hiller@redhat.com>
3220
3221         * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
3222         output template.
3223
3224         * MAINTAINERS: Added self.
3225
3226 2001-03-28  Richard Henderson  <rth@redhat.com>
3227
3228         * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
3229         Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
3230
3231 2001-03-28  Jim Wilson  <wilson@redhat.com>
3232
3233         * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
3234         operand_subword.
3235
3236 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3237
3238         * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
3239
3240         * tradcif.y (yyerror): Likewise.  Add format specifier in call to
3241         `error'.
3242
3243         * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
3244
3245 2001-03-28  DJ Delorie  <dj@redhat.com>
3246
3247         * Makefile.in (stage1_build): Revert CFLAGS patch.
3248
3249 2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
3250
3251         * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
3252         when multiplier or multiplicand is zero.
3253
3254 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
3255
3256         * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
3257
3258         * config/ia64/ia64.c (update_set_flags): New function, broken out of
3259         rtx_needs_barrier.
3260         (set_src_needs_barrier): Likewise.
3261         (rtx_needs_barrier): For SET case, use these two functions.  Rework
3262         PARALLEL case to handle all inputs before all outputs.
3263         (emit_insn_group_barriers): Call init_insn_group_barriers only if we
3264         saw a label and no stop bit since then.
3265         (maybe_rotate, process_epilogue): Add prototypes.
3266
3267 2001-03-28  Richard Henderson  <rth@redhat.com>
3268
3269         * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
3270         not TARGET_TOC for special toc restore handling.
3271         * config/rs6000/rs6000.md (eh_return): Likewise.
3272
3273 2001-03-28  Richard Henderson  <rth@redhat.com>
3274
3275         * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
3276         current_function_calls_eh_return.
3277         (output_function_epilogue): Handle eh_return.
3278         * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
3279         (EH_RETURN_DATA_REGNO): New.
3280         (EH_RETURN_STACKADJ_RTX): New.
3281         (EH_RETURN_HANDLER_RTX): New.
3282         * config/sparc/sparc.md (call/short branch peepholes): Check
3283         can_throw_internal instead of in_same_eh_region.
3284
3285         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
3286         for eh_return data registers.
3287         (rs6000_emit_prologue): Save eh_return data registers.
3288         (rs6000_emit_epilogue): Force inline restores if eh_return.
3289         Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
3290         * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
3291         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
3292         (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
3293         the target uses one.
3294         * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
3295         (return_eh_si, return_eh_di): Remove.
3296         (eh_return): New, from corpse of eh_epilogue.
3297         (eh_set_lr_si, eh_set_lr_di): New.
3298
3299         * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
3300         (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
3301         True for pic register if current_function_calls_eh_return.
3302         (ix86_expand_epilogue): Change "emit_return" argument into "style".
3303         Handle eh_return requirements.
3304         * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
3305         (EH_RETURN_STACKADJ_RTX): New.
3306         * config/i386/i386.md (exception_receiver): Remove.
3307         (eh_return, eh_return_1): New.
3308         * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3309
3310         * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
3311         (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
3312         (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
3313         * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
3314         (EH_RETURN_DATA_REGNO): New.
3315         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
3316         * config/alpha/alpha.md (eh_epilogue): Remove.
3317         (exception_receiver): Use $26 for ldgp input.
3318         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3319
3320 2001-03-28  Richard Henderson  <rth@redhat.com>
3321
3322         * except.c: Rewrite entirely for IA-64 ABI exception handling.
3323         * except.h: Likewise.
3324
3325         * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
3326         (LIB2ADDEHDEP): New.
3327         (LIB2FUNCS_EH): Remove.
3328         (LIB2ADD): Remove LIB2ADDEH.
3329         (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
3330         (LIBGCC_DEPS): Use LIB2ADDEHDEP.
3331         (crt{begin,end}[S].o): Likewise.
3332         (except.o): Update includes.
3333         * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
3334         (libgcc2_c_dep): Use LIB2ADDEHDEP.
3335
3336         * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
3337         * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
3338         * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
3339         * builtins.c (expand_builtin): Implement it.
3340         [BUILT_IN_EH_RETURN]: Update for nr arguments change.
3341         * c-common.c (c_common_nodes_and_builtins): Declare it.
3342         * c-decl.c (init_decl_processing): Update __builtin_eh_return.
3343         * calls.c (libfunc_nothrow): Remove.
3344         (emit_library_call_value_1): Don't call it.
3345         * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
3346         * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
3347         (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
3348         * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
3349         (current_funcdef_number): Globalize.
3350         (output_call_frame_info): Emit frame data if an lsda is needed.
3351         Generate augmentation for personality routine.  Don't play with
3352         difference symbols.
3353         (dwarf2out_begin_prologue): Record funcdef_number.
3354         * dwarf2out.h (current_funcdef_number): Declare.
3355         * expr.c (expand_expr): Update for except.h name changes.
3356         Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
3357         * expr.h (LTI_throw, LTI_rethrow): Remove.
3358         (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
3359         (LTI_eh_rtime_match): Remove.
3360         (LTI_unwind_resume, LTI_eh_personality): Add.
3361         (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
3362         * final.c (final): Don't call check_exception_handler_labels,
3363         init_insn_eh_region, or free_insn_eh_region.
3364         (final_scan_insn): Always emit debug labels for
3365         NOTE_INSN_EH_REGION notes.
3366         * flags.h (flag_new_exceptions): Remove.
3367         * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
3368         (record_active_eh_regions): Remove.
3369         (count_basic_blocks): Check all instructions for REG_EH_REGION.
3370         Use can_throw_internal.
3371         (find_basic_blocks_1): Likewise.
3372         (move_stray_eh_region_notes): Remove.
3373         (find_label_refs): No eh_return_stub_label.
3374         (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
3375         (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
3376         changes.
3377         (delete_unreachable_blocks): Don't track deleted handlers.
3378         (flow_delete_block): Use maybe_remove_eh_handler.
3379         (delete_eh_regions): Remove.
3380         (merge_blocks): Don't check for eh region match.
3381         (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
3382         EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
3383         (init_propagate_block_info): Disable dead frame store optimization
3384         when current_function_calls_eh_return.
3385         (dump_bb): Don't print eh_beg, eh_end.
3386         * function.c (fixup_var_refs): No catch_clauses.
3387         (expand_function_end): Likewise.  Call expand_eh_return before
3388         the return register use.  Call sjlj_emit_function_exit_after.
3389         (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
3390         * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
3391         * ifcvt.c (dead_or_predicable): Remove eh region check.
3392         * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
3393         Don't check for EH vs parameters.
3394         (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
3395         (expand_inline_function): Call duplicate_eh_regions.
3396         (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
3397         (copy_insn_notes): Remap REG_EH_REGION notes.
3398         (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
3399         * integrate.h (struct inline_remap): Add local_return_label.
3400         * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
3401         check_exception_handler_labels, nor exception_optimize.
3402         (find_cross_jump): No EH region check.
3403         * optabs.c (init_optabs): Update for changed eh libfuncs.
3404         * rtl.def (RESX): New.
3405         * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
3406         * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
3407         checks.  Update for except.h name changes.
3408         (expand_cleanups): Likewise.
3409         (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
3410         * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
3411         (compile_file): Call init_eh before init_optabs.  Don't
3412         output_exception_table here.
3413         (rest_of_compilation): Call convert_from_eh_region_ranges,
3414         convert_to_eh_region_ranges, output_function_exception_table.
3415         Don't emit_eh_context.
3416         * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
3417         (EXC_PTR_EXPR): New.
3418
3419         * md.texi (eh_epilogue): Remove.
3420         (eh_return): Document.
3421         * tm.texi (EH_RETURN_DATA_REGNO): Document.
3422         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
3423
3424         * eh-common.h: Remove file.
3425         * frame-dwarf2.c, frame.c, frame.h: Remove files.
3426         * libgcc2.c (L_eh): Remove.
3427
3428         * unwind-dw2-fde.c: New file, largely copied from frame.c.
3429         * unwind-dw2-fde.h: New file.
3430         * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
3431         * unwind-sjlj.c, unwind.h, unwind.inc: New files.
3432         * libgcc-std.ver: Update for eh symbols.
3433
3434 2001-03-27  Richard Henderson  <rth@redhat.com>
3435
3436         * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
3437         reduce false positives.
3438         (regmove_optimize): Disable if flag_non_call_exceptions.
3439
3440         * stmt.c (expand_return): Remove always true predicate.
3441         (expand_decl_cleanup_no_eh): Remove dead code.
3442
3443         * sched-deps.c (sched_analyze_insn): Consolidate scheduling
3444         barrier code.  Add a scheduling barrier if a non-call insn
3445         can throw internally.
3446
3447         * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
3448         Auto-inc addresses trap only if their base register does.
3449
3450         * except.c (can_throw_internal): Rename from can_throw.
3451         * except.h, resource.c: Update references.
3452
3453         * integrate.c (copy_insn_list): Use returnjump_p.
3454         (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
3455
3456         * function.h (struct function): Move all boolean valued fields
3457         to single bit fields at the end of the struct.
3458
3459         * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
3460         jump.c, toplev.c:
3461         Rename asynchronous_exceptions to flag_non_call_exceptions.
3462
3463         * gthr-single.h (UNUSED): New.  Distinguish between how C
3464         and C++ mark unused function arguments.  Use throughout.
3465
3466         * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
3467         value to target configuration header.
3468         * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
3469         * config.in, configure: Rebuild.
3470         * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
3471         configuration and target defines.
3472         (exceptions_via_longjmp): Remove.
3473         * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
3474         Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
3475
3476         * except.h (flag_non_call_exceptions): Move ...
3477         * flags.h: ... here.
3478
3479         * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
3480         exceptions, put the note on the trapping instruction.
3481
3482         * flags.h (flag_new_exceptions): Remove.
3483         * toplev.c: Don't set it.
3484         * final.c: Don't check it.
3485         * except.c: Provide stub definition.
3486
3487         * flow.c (tidy_fallthru_edges): Don't combine complex edges.
3488         (calculate_global_regs_live): Kill call-clobbered registers
3489         across exception edges.
3490         * reg-stack.c (convert_regs_1): Kill the entire target stack
3491         across non-call exception edges.
3492
3493         * flow.c (cleanup_cfg): Take no argument.
3494         * output.h, sibcall.c, toplev.c: Update all calls.
3495
3496 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3497
3498         * configure.in: Don't check for bcopy.
3499         * configure, config.in: Regenerate.
3500
3501         * system.h: Don't define or prototype bcopy, instead poison it.
3502
3503 2001-03-27  Richard Henderson  <rth@redhat.com>
3504
3505         * function.c (expand_function_start): Set DECL_REGISTER on
3506         a pseudo used for DECL_RESULT.
3507
3508         * rtl.h (LCT_NORETURN): New.
3509         * calls.c (emit_library_call_value_1): Handle it.
3510
3511 2001-03-27  Stan Shebs  <shebs@apple.com>
3512
3513         * objc/objc-act.c (objc_init): Use dump_base_name.
3514         (gen_declaration): Clear the buffer arg.
3515         (gen_declaration_1): New function, body of gen_declaration.
3516         (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
3517         (gen_method_decl): Ditto, plus always clear buffer arg.
3518         (error_with_ivar): Simplify.
3519         (warn_with_method): Ditto.
3520         (build_message_expr): Don't clear buffers.
3521         (dump_interface): Ditto.
3522         (objc_debug): Ditto.
3523         (build_keyword_selector): Clear the buffer by only zeroing
3524         the first element.
3525         (objc_implementation_context): Declare.
3526         (start_class): Warn about missing @end.
3527         (finish_objc): Ditto.
3528
3529 2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3530
3531         * reload1.c (eliminate_regs): Don't abort on MEM USEs.
3532
3533 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3534
3535         * Makefile.in (SYSTEM_H): Define.
3536         Depend on $(SYSTEM_H), not system.h.
3537
3538         * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
3539
3540 2001-03-27  Jim Wilson  <wilson@redhat.com>
3541
3542         * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
3543         IA64_UNWIND_EMIT.
3544         * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
3545         (process_epilogue): New static function.
3546         (process_set): Call process_epilogue instead of emitting .restore
3547         directly.
3548         (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
3549
3550         * flow.c (struct reg_cond_life_info): New fields orig_condition
3551         and stores.
3552         (init_propagate_block_info): Set new fields.
3553         (mark_regno_cond_dead): Set and use new fields.
3554         (flush_reg_cond_reg_1): Likewise.
3555         (and_reg_cond, case AND): Check for redundant AND conditions.
3556         (mark_used_reg): Delete unnecessary clears before freeing splay trees.
3557         Set new fields.
3558
3559 2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3560
3561         * cppmacro.c (stringify_arg): Null terminate strings.
3562
3563 2001-03-27  Zack Weinberg  <zackw@stanford.edu>
3564
3565         * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
3566         inclusion style.  xm-m68hc11.h no longer exists.
3567         * config/m68hc11/xm-m68hc11.h: Delete file.
3568         * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
3569
3570         * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
3571         Don't define GCC_VERSION, N_, or PARAMS; don't include
3572         gansidecl.h or stdio.h.  Define inhibit_libc here.
3573         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
3574         Delete code conditioned on #if GCC_VERSION == 2095.
3575
3576         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
3577         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
3578         Delete code conditioned on #if GCC_VERSION == 2095.
3579
3580 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3581
3582         * system.h: Include symcat.h.
3583         (STRINGIFY): Don't define.
3584
3585         * configure.in: Adjust comment.
3586
3587         * builtins.c: Use STRINGX, not STRINGIFY.
3588         * gencheck.c: Likewise.
3589         * gengenrtl.c: Likewise.
3590         * protoize.c: Likewise.
3591
3592         * cpplex.c: Don't include symcat.h.
3593         * cpplib.c: Likewise.
3594
3595         * gansidecl.h (HAVE_STRINGIZE): Don't define.
3596
3597 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
3598
3599         * c-typeck.c (digest_init): Fold init expression.
3600
3601 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3602
3603         * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
3604
3605 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
3606
3607         * except.c (eh_regs): Save results of build_pointer_type to a temp
3608         as FUNCTION_VALUE macro may evaluate its args multiple times.
3609
3610 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
3611
3612         * c-common.h (DECL_NUM_STMTS): New macro.
3613         * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
3614         DECL_FRAME_SIZE.
3615         (pushdecl): Likewise.
3616         * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
3617         * integrate.c (expand_inline_function): Don't check
3618         DECL_FRAME_SIZE.
3619         * print-tree.c (print_node): Don't print it.
3620         * toplev.c (rest_of_compilation): Don't try to inline when
3621         flag_no_inline is on.
3622         * tree.h (DECL_FRAME_SIZE): Remove.
3623         (tree_decl): Adjust accordingly.
3624
3625 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3626
3627         * combine.c (try_combine): Use memcpy, not bcopy.
3628
3629         * genattrtab.c (expand_units): Likewise.
3630
3631 Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
3632
3633         * i386.md (push mem DI peep2): New.
3634         (mov 0, mov -1 peep2): Handle 64bit.
3635         (lea to arithmetics peep2): Handle 64bit leas.
3636         (rsp arithmetics to push/pop peep2s): New.
3637
3638         * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
3639
3640 Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
3641
3642         * i386.c (struct machine_function): Add save_varrargs_registers.
3643         (ix86_save_varrargs_registers): New macro.
3644         (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
3645         (ix86_expand_prologue): Likewise.
3646         (ix86_emit_epilogue_esp_adjustement): Likewise.
3647         (ix86_expand_epilogue): Likewise.
3648         * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
3649         (pro_epilogue_adjust_stack_1): New insn.
3650         (pro_epilogue_adjust_stack_rex64): Likewise.
3651         * i386.h (MASK_NO_RED_ZONE): New constant.
3652         (TARGET_RED_ZONE): New macro.
3653         (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
3654         (RED_ZONE_SIZE): New constant.
3655         (RED_ZONE_RESERVE): New constant.
3656
3657 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3658
3659         * toplev.c (set_float_handler): Use memcpy, not bcopy.
3660
3661 2001-03-25  Kazu Hirata  <kazu@hxi.com>
3662
3663         * config/h8300/h8300.md (umodqi3): Output a tab instead of a
3664         space.
3665         (modqi3): Likewise.
3666         (umodhi3): Likewise.
3667         (modhi3): Likewise.
3668
3669 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3670
3671         * mkconfig.sh (DEFINES): Handle entries with '='.
3672
3673         * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
3674         Set xm_defines to MACRO=value instead.
3675
3676         * i370/xm-mvs.h: Delete.
3677
3678         * ns32k/xm-pc532-min.h: Likewise.
3679
3680 Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3681
3682         * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
3683         shiftdi_operand;
3684         use ix86_expand_binary_operator
3685         (?sh??i_?): Disable for 64bit.
3686         * i386.h (PREDICATE_CODES): Add shiftdi_operand.
3687         * i386.c (shiftdi_operand): New predicate.
3688
3689         * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
3690         ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
3691         ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
3692         ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
3693         ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
3694         lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
3695         lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
3696         rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
3697         rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
3698         rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
3699         (rotldi3, rotrdi3): New expanders.
3700
3701 Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
3702
3703         * i386.md (movstrsi): Move offline.
3704         (movstrdi): New.
3705         (strmovdi_rex64): New.
3706         (strmov?i): Accept 64bit.
3707         (strmov?i_rex64): New.
3708         (strmov?i_rex_1): New.
3709         (strmov?i_1): Disable for 64bit.
3710         (rep_mov?i_rex64): New.
3711         (rep_mov?i): Disable for 64bit.
3712         (clrstrsi): Move offline.
3713         (strset?i_rex64): New.
3714         (strset?i: Accept 64bit.
3715         (rep_stos?i): Disable for 64bit.
3716         (rep_stos?i_rex64): New.
3717         (strset?i_rex_1): New.
3718         (strset?i_1): Disable for 64bit.
3719         (cmpstrsi): Accept 64bit.
3720         (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
3721         (cmpstrqi_nz_rex_1): New.
3722         (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
3723         (strlensi): Move offline.
3724         (strlendi): New.
3725         (strlenqi_1): Disable for 64bit; fix constraints.
3726         (strlenqi_rex_1): New.
3727         * i386.c (ix86_adjust_counter): New static function.
3728         (ix86_zero_extend_to_Pmode): Likewise.
3729         (ix86_expand_aligntest): Likweise.
3730         (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
3731         (ix86_expand_movstr): New global function.
3732         (ix86_expand_clrstr): New global function.
3733         (ix86_expand_strlen): New global function.
3734         * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
3735         ix86_expand_strlen): Declare.
3736         (ix86_expand_strlensi_unroll_1): Delete.
3737
3738 Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
3739
3740         * i386.md (cmpdi): Fix operand predicates.
3741         (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
3742          cmpdi_1_insn_rex64): New patterns.
3743         (adddi3): Turn to expander.
3744         (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
3745         (addsi3_carry_zext): New pattern.
3746         (adddi_?_rex64): New patterns and splitters.
3747         (addsi_?_zext): New patterns.
3748         (subsi3_carry_zext): New pattern.
3749         (subdi_?_rex64): New patterns and splitters.
3750         (iorsi_?_zext): New patterns.
3751         (iordi_?_rex64): New patterns and splitters.
3752         (iorsi_?_zext): New patterns.
3753         (iorsi_?_zext_imm): New patterns.
3754         (xorsi_?_zext): New patterns.
3755         (xordi_?_rex64): New patterns and splitters.
3756         (xorsi_?_zext): New patterns.
3757         (negdi*): New patterns.
3758         (one_cmpldi*): Likewise.
3759         (one_cmplsi*_zext, negsi*_zext): Likewise.
3760         (testqi_ext_3_rex64): New pattern.
3761
3762 Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
3763
3764         * i386-protos.h (ix86_split_long_move): Return void.
3765         * i386.c (ix86_split_to_parts): Handle 64bit target.
3766         (ix86_split_long_move): Likewise.
3767         * i386.md (all calls to ix86_split_long_move): Update.
3768
3769 2001-03-23  Richard Henderson  <rth@redhat.com>
3770
3771         * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
3772         to avoid shadowing arguments.
3773
3774 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
3775
3776         * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
3777         to variable names where DECL_NAME is different from
3778         DECL_ASSEMBLER_NAME.
3779
3780 2001-03-23  Jim Wilson  <wilson@redhat.com>
3781
3782         * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
3783         (assemble_alias): Call make_decl_rtl.
3784
3785 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
3786
3787         * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
3788
3789 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
3790
3791         * extend.texi: Document the "java_interface" attribute.
3792
3793 2001-03-22  Zack Weinberg  <zackw@stanford.edu>
3794
3795         * mkconfig.sh: Use a subshell with redirected stdout,
3796         instead of closing stdout and confusing commands that run
3797         afterward.  Throw away output of cmp.
3798
3799 2001-03-22  Gordon Sadler  <gbsadler1@lcisp.com>
3800
3801         * Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
3802
3803 Thu Mar 22 22:15:59 CET 2001  Jan Hubicka  <jh@suse.cz>
3804
3805         * i386.md (zero_extendsidi2_32): Break out from ...
3806         (zero_extendsidi2): ... here ; turn to expander.
3807         (zero_extendsidi2_rex64): New.
3808         (extendsidi2_32): Break out from ...
3809         (extendsidi2): ... here ; turn to expander.
3810         (extendsidi2_rex64): New.
3811         (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
3812         (trunc?f?f splitters): Add 64bit versions.
3813
3814 Thu Mar 22 21:41:16 CET 2001  Jan Hubicka  <jh@suse.cz>
3815
3816         * i386.md (pushsi, pushsi2_prologue): Disable.
3817         (pushsi2_rex64): New.
3818         (movabs?i_1_rex64, movabs?i_2_rex64): New.
3819         (movqi_ext_1): Disable for 64bit.
3820         (movqi_ext_1_rex64): New.
3821         (pushdi2_rex64): New pattern, peep2s and splitter.
3822         (pushdi2_prologue_rex64): New pattern.
3823         (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64):
3824         Likewise.
3825         (movdi splitters): Disable for 64bit.
3826         (movdi_1_rex64): New pattern, peep2s and splitters.
3827         (swapdi): New pattern.
3828         (pushsf): Disable for 64bit.
3829         (pushsf_rex64): New pattern and splitter.
3830         (pushdf_nointeger): Disable for 64bit.
3831         (pushdf_integer): Handle the 64bit case.
3832         (pushtf): Likewise; update splitters.
3833
3834 2001-03-22  Richard Henderson  <rth@redhat.com>
3835
3836         * mkconfig.sh: Include insn-flags.h.
3837         * Makefile.in (CONFIG_H): Include insn-flags.h.
3838         (lots of objects): Remove insn-codes.h and insn-flags.h.
3839
3840         * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
3841         integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
3842         regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
3843         avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
3844         dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
3845         i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
3846         m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
3847         mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
3848         pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
3849         v850/v850.c, vax/vax.c:
3850         Don't include insn-flags.h.
3851
3852         * diagnostic.c, expr.h, reload.c, toplev.c:
3853         Don't include insn-codes.h.
3854
3855         * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
3856         final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
3857         c4x/c4x.c, i960/i960.c, mips/mips.c:
3858         Don't include insn-codes.h or insn-flags.h.
3859
3860         * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
3861         or insn-flags.h in the generated code.
3862         * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
3863         (main): Forward declare struct rtx_def.
3864
3865 2001-03-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3866
3867         * invoke.texi (-ffast-math): Remove duplicate line about
3868         __FAST_MATH__.
3869
3870         * gcc.texi: Remove more obsolete documentation of bugs and
3871         installation problems.
3872
3873 2001-03-21  Kazu Hirata  <kazu@hxi.com>
3874
3875         * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative
3876         into two parts.
3877
3878 2001-03-20  Jason Merrill  <jason@redhat.com>
3879
3880         * collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
3881         not '.' or '$'.
3882         * tree.c (FILE_FUNCTION_FORMAT): Likewise.
3883         * varasm.c (CHKR_PREFIX): Likewise.
3884
3885 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3886
3887         * gcse.c (hash_scan_set): An expression is not anticipatible if it
3888         is part of a multi-SET insn.
3889
3890         * cse.c (find_comparison_args): Remove previous change.
3891         * ifcvt.c (noce_process_if_block): When moving an insn, remove any
3892         REG_EQUAL notes.
3893
3894         * config/i386/i386.md (conditional_trap): Remove warning.
3895
3896         * recog.c (push_operand): Fix error in last change that caused
3897         undefined symbol on many targets.
3898
3899         * sdbout.c: #include ggc.h.
3900         (sdbout_init): Move to end of file.
3901         Call ggc_add_tree_root for anonymous_types.
3902         (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
3903         (sdbout_one_type): Use DECL_NAME for field name.
3904         * Makefile.in (sdbout.o): Show includes ggc.h.
3905
3906 Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
3907
3908         * i386.c (override_options): Default ix86_regparm to REGPARM_MAX.
3909         (override_options): Use properlimits for preferred_stack_boundary.
3910         (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes
3911         on x86_64.
3912         (ext_register_operand): Accept DImode.
3913         (load_pic_register): Abort on 64bit.
3914         (gen_push): Use Pmode instead of SImode.
3915         (ix86_save_reg): Pic reg is never used on 64bit.
3916         (ix86_expand_prologue): Likewise.
3917         (ix86_emit_save_regs): Use Pmode instead of SImode.
3918         (legitimate_address_p): Check displacement for 64bit.
3919         (print_operand): Avoid outputting of (%rip) on 64bit.
3920         (print_operand_address): Output (%rip) where possible.
3921         (split_di): Abort on 64bit registers.
3922         (ix86_expand_branch): DImode comparison is simple for x86_64.
3923         (memory_address_length): Recognize memory addresses formed using
3924         PRE/POST modify.
3925         (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
3926         for x86_64.
3927         * i386.h (TARGET_USE_SAHF): Disable for 64bit.
3928
3929 Wed Mar 21 18:51:19 CET 2001  Jan Hubicka  <jh@suse.cz>
3930
3931         * recog.c (push_operand): Recognize new format of push instructions.
3932
3933 Wed Mar 21 10:53:57 CET 2001  Jan Hubicka  <jh@suse.cz>
3934
3935         * i386.md (pushqi1): New.
3936         * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand,
3937         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
3938         x86_64_immediate_operand, x86_64_immediate_operand,
3939         x86_64_zext_immediate_operand): Declare.
3940         * i386.c (x86_64_general_operand, x86_64_szext_general_operand,
3941         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
3942         x86_64_immediate_operand, x86_64_immediate_operand,
3943         x86_64_zext_immediate_operand): define.
3944         * i386.h (PREDICATE_CODES): Add new predicates.
3945
3946 Wed Mar 21 10:25:13 CET 2001  Jan Hubicka  <jh@suse.cz>
3947
3948         * i386.md (pophi1, popqi1, pushqi1): Remove.
3949
3950         * expr.c (emit_single_push_insn): New function.
3951         (move_by_pieces): Accept NULL as destination for push instructions.
3952         (gen_push_operand): Kill.
3953         (emit_push_insn): Pass NULL when pushing; avoid updating of
3954         stack_pointer_delta.
3955         * expr.h (gen_push_operand): Kill.
3956
3957 Tue Mar 20 20:15:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3958
3959         * rtl.texi (COMPARE): Clarify documentation and reference section
3960         on comparisons.
3961
3962 2001-03-20  Stan Shebs  <shebs@apple.com>
3963
3964         * objc/objc-act.c (get_static_reference): Use NULL_TREE.
3965         (get_object_reference): Ditto.
3966         (error_with_ivar): Use error_with_file_and_line.
3967         (warn_with_method): Use warning_with_file_and_line.
3968
3969 2001-03-20  Tom Tromey  <tromey@redhat.com>
3970
3971         * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi.
3972
3973 2001-03-20  Mark Mitchell  <mark@codesourcery.com>
3974
3975         * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for
3976         variables that are TREE_PUBLIC, even if not TREE_STATIC.
3977
3978 2001-03-20  DJ Delorie  <dj@redhat.com>
3979
3980         * Makefile.in (install-libgcc): Pass complete list of variables.
3981         (install-multilib): Ditto.
3982
3983 2001-03-20  David Billinghurst  <David.Billinghurst@riotinto.com>
3984
3985         * config/i386/cygwin.h: Declare ctor_section, dtor_section
3986         drectve_section, switch_to_section.
3987
3988         * winnt.c: Declare functions associated_type, gen_stdcall_suffix,
3989         i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport,
3990         i386_pe_mark_dllimport.
3991
3992 2001-03-20  David Billinghurst <David.Billinghurst@riotinto.com>
3993
3994         * config/i386/cygwin.h: Include <stdio.h> Declare and constify
3995         functions i386_pe_*.
3996
3997         * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify
3998         i386_pe_* functions with char * arguments.
3999
4000 2001-03-20  Alexandre Oliva  <aoliva@redhat.com>
4001
4002         * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load
4003         and store.
4004         (movsi_ie): Introduce fpul store.
4005
4006 2001-03-20  Alan Modra  <alan@linuxcare.com.au>
4007
4008         * Makefile.in (OBJS): Remove hashtab.o.
4009
4010 2001-03-19  Stan Shebs  <shebs@apple.com>
4011
4012         * objc/objc-act.c (maybe_objc_method_name): Remove, never called.
4013         * c-lang.c (maybe_objc_method_name): Ditto.
4014         * c-tree.h (maybe_objc_method_name): Remove decl.
4015
4016 2001-03-19  Tom Tromey  <tromey@redhat.com>
4017
4018         * gcc.c (init_gcc_specs): Fix comment.
4019
4020 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
4021
4022         Compute DECL_ASSEMBLER_NAME lazily.
4023         * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily.
4024         (DECL_ASSEMBLER_NAME_SET_P): New macro.
4025         (SET_DECL_ASSEMBLER_NAME): Likewise.
4026         (COPY_DECL_ASSEMBLER_NAME): Likewise.
4027         (set_decl_assembler_name): Declare.
4028         (lang_set_decl_assembler_name): Likewise.
4029         * tree.c (lang_set_decl_assembler_name): New variab.e
4030         (set_decl_assembler_name): New function.
4031         (init_obstacks): Set lang_set_decl_assembler_name.
4032         (build_decl): Don't set DECL_ASSEMBLER_NAME.
4033         * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME,
4034         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
4035         where it's not necessary.
4036         (builtin_function): Likewise.
4037         (finish_decl): Likewise.
4038         * dbxout.c (dbxout_type_methods): Likewise.
4039         * ggc-common.c (ggc_mark_trees): Likewise.
4040         * profile.c (output_func_start_profiler): Likewise.
4041         * varasm.c (make_decl_rtl): Likewise.
4042
4043         * cse.c (find_comparison_args): Update documentation.  Fix
4044         mishandling of COMPARE operations.
4045
4046         * tree.def (ABS_EXPR): Add documentation.
4047         * fold-const.c (fold): Improve folding of ABS_EXPRs.
4048
4049 2001-03-19  Zack Weinberg  <zackw@stanford.edu>
4050
4051         * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H).
4052
4053 2001-03-19  Jakub Jelinek  <jakub@redhat.com>
4054
4055         * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
4056         Remove ia32 linux PIC kludge and move it...
4057         * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
4058
4059 Mon Mar 19 18:53:54 CET 2001  Jan Hubicka  <jh@suse.cz>
4060
4061         * i386.md (absdf2 expander): Fix 64bit case.
4062
4063 2001-03-19  Brad Lucier  <lucier@math.purdue.edu>
4064
4065         * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H).
4066
4067 2001-03-16  Andrew Haley  <aph@cambridge.redhat.com>
4068
4069         * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
4070
4071 2001-03-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4072
4073         * README.X11: Remove obsolete file.
4074
4075 2001-03-18  Anthony Green  <green@redhat.com>
4076
4077         * config/pj/pj.h: Remove some trailing commas.
4078         (ASM_SPEC): Use -EB and -EL, not -mb and -ml.
4079
4080 2001-03-18  Richard Henderson  <rth@redhat.com>
4081
4082         * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ...
4083         * calls.c: ... here.
4084         * combine.c, expr.c, final.c, function.c toplev.c: Don't provide
4085         defaults for them here.
4086
4087 2001-03-17  Anthony Green  <green@redhat.com>
4088
4089         * config/pj/lib1funcs.S: Fix broken comment.
4090         * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal
4091         labels with '.'.
4092
4093 2001-03-18  Joseph S. Myers  <jsm28@cam.ac.uk>
4094
4095         * gcc.texi: Remove obsolete information relating to build and
4096         installation problems with enquire or the Pyramid C compiler.
4097
4098 2001-03-17  Richard Henderson  <rth@redhat.com>
4099
4100         * dwarf2out.c (queue_reg_save): New.
4101         (flush_queued_reg_saves, clobbers_queued_reg_save): New.
4102         (dwarf2out_frame_debug_expr): Call queue_reg_save instead of
4103         dwarf2out_reg_save.
4104         (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed.
4105         (cfa, cfa_store, cfa_temp): Make static.
4106         * final.c (final_scan_insn): Always call dwarf2out_frame_debug.
4107
4108 2001-03-17  Richard Henderson  <rth@redhat.com>
4109
4110         * integrate.h (struct inline_remap): Add local_return_label.
4111         * integrate.c (expand_inline_function): Initialize it and emit
4112         it after copy_insn_notes.
4113         (copy_insn_list): Don't store local_return_label here.
4114         (copy_insn_notes): New function split out from copy_insn_list.
4115
4116 2001-03-17  Richard Henderson  <rth@redhat.com>
4117
4118         * dwarf2out.c (lookup_filename): Emit .file if the assembler
4119         is generating .debug_line.
4120         (dwarf2out_init): Add main_input_filename to the file table first.
4121         * configure.in (as_dwarf2_debug_line): Test with file number 1
4122         instead of file number 0.
4123
4124 Sat Mar 17 11:52:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4125
4126         * combine.c (undobuf): Remove field previous_undos; all refs deleted.
4127         (gen_rtx_combine): Deleted; all references changed as appropriate.
4128         (gen_unary): Deleted; all refs changed to call simplify_gen_unary.
4129
4130         * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P.
4131
4132 2001-03-17  David Billinghurst  <David.Billinghurst@riotinto.com>
4133
4134         * config/i386/xm-cygwin.h: Include <sys/cygwin.h.  Remove unused
4135         variable.
4136
4137 2001-03-16  Jim Wilson  <wilson@redhat.com>
4138
4139         * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero,
4140         then set it to LOC_REG (79) instead of aborting.
4141
4142 2001-03-16  Phil Edwards  <pme@sources.redhat.com>
4143
4144         * gccbug.in:  Remove high priority.
4145
4146 2001-03-16  Richard Henerson  <rth@redhat.com>
4147
4148         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od
4149         output with a space instead of deleting it.
4150         * configure: Regenerate.
4151
4152 2001-03-16  Zack Weinberg  <zackw@stanford.edu>
4153
4154         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which
4155         handles the gory details of converting an object file into
4156         something that's safe to grep.
4157         (gcc_AC_C_COMPILE_BIGENDIAN): Rename to
4158         gcc_AC_C_COMPILE_ENDIAN.  Use gcc_AC_EXAMINE_OBJECT.  Put
4159         newlines at either end of the string we're looking for.
4160         Make 'checking ...' message less stilted.
4161         (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT.  Handle
4162         ARM in-memory layout and its hypothetical converse.  Don't
4163         define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from
4164         HOST_WORDS_BIG_ENDIAN.
4165
4166         * configure.in: Adjust for renamed macro.  Move
4167         gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN.
4168         * configure, config.in: Regenerate.
4169
4170 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
4171
4172         * fixinc/Makefile.in: Set SHELL.
4173
4174 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
4175
4176         * fixinc/fixincl.c (fix_with_system): Quote file names before
4177         passing them to shell.
4178
4179 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
4180
4181         * Makefile.in: Use fix-header$(build_exeext) instead
4182         of fix-header.
4183
4184 2001-03-16  Richard Henderson  <rth@redhat.com>
4185
4186         * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes.
4187         (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New.
4188         (size_of_line_prolog): Remove.
4189         (output_line_info): Compute prologue size via label difference.
4190         (lookup_filename): Return "unspecified" for <internal> and <built-in>.
4191
4192         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the
4193         assembler error when redefining file numbers.
4194         * config.in, configure: Rebuild.
4195
4196         * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size.
4197         (dw2_asm_output_data_uleb128): Use space not tab after .uleb128.
4198         (dw2_asm_output_delta_uleb128): Likewise.
4199         (dw2_asm_output_delta_sleb128): Similarly.
4200         (dw2_asm_output_data_sleb128): Similarly.  Print number in decimal.
4201
4202 2001-03-16  Michael Meissner  <meissner@redhat.com>
4203
4204         * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids
4205         warnings.
4206         (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids
4207         warnings.
4208         (BITMASK_LOWER16): Replacement for 0x0000ffff.
4209
4210         * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16
4211         instead of 0xffff0000/0x0000ffff to avoid warnings about constants
4212         being unsigned in ISO C and signed in traditional.
4213         (expand_prologue): Ditto.
4214         (RA_MASK): Use BITMASK_HIGH to avoid warnings.
4215
4216         * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid
4217         warnings.
4218         (divsi3,divdi3): Ditto.
4219         (modsi3,moddi3): Ditto.
4220         (fix_truncdfsi2,fix_truncdfdi2): Ditto.
4221         (fix_truncsfsi2,fix_truncsfdi2): Ditto.
4222         (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid
4223         warnings.
4224
4225 Fri Mar 16 14:47:57 CET 2001  Jan Hubicka  <jh@suse.cz>
4226
4227         * i386.c (ix86_expand_fp_movcc): Do not attempt to construct
4228         SSE based conditional moves on LTGT/UNEQ conditions;
4229         Canonicalize EQ to NE.
4230         * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode.
4231         (sse_mov?fcc_ne): New.
4232
4233         * i386-protos.h (sign_extended_value, zero_extended_value): Declare.
4234
4235 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
4236
4237         * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC
4238         register may be dead.
4239
4240 2001-03-16  Brad Lucier  <lucier@math.purdue.edu>
4241
4242         * Makefile.in (hash.o): Depend on CONFIG_H.
4243
4244 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
4245
4246         * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET.
4247
4248 2001-03-15  Richard Henderson  <rth@redhat.com>
4249
4250         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New.
4251         (ASM_OUTPUT_DWARF_PCREL): New.
4252         * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove.
4253
4254 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
4255
4256         * cppfiles.c (stack_include_file): Use MAX of sysp.
4257
4258 2001-03-15  Steve Ellcey  <sje@cup.hp.com>
4259
4260         * config.gcc (ia64*-*-hpux*): New case.
4261         * config/ia64/hpux.h: New file for HP-UX support.
4262         * config/ia64/t-hpux: New file for HP-UX support.
4263
4264 2001-03-16  Bruce Korb  <bkorb@gnu.org>, Alexandre Oliva  <aoliva@redhat.com>
4265
4266         * fixinc/inclhack.def (irix_stdio_va_list): New.
4267         * fixinc/fixincl.x: Rebuilt.
4268
4269 2001-03-15  Richard Henderson  <rth@redhat.com>
4270
4271         * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET
4272         if provided by the target.
4273         (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL.
4274         (dw2_asm_output_addr): New.
4275         * dwarf2asm.h (dw2_asm_output_addr): Declare.
4276         * dwarf2out.c (output_cfi): Use it for program addresses.
4277         (output_call_frame_info, output_die): Likewise.
4278         (output_aranges, output_line_info): Likewise.
4279
4280 2001-03-15  Bruce Korb  <bkorb@gnu.org>
4281
4282         * gcc.c(main): make more rigorous
4283         * collect2.c(main): guard against ignoring SIGCHLD
4284         * protoize.c(main): ditto
4285         * gcc/fixinc/fixincl.c(initialize): ditto
4286
4287 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
4288
4289         * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL.
4290         (sdbout_parms): Likewise.
4291
4292 Thu Mar 15 12:57:14 2001  Jeffrey A Law  (law@cygnus.com)
4293
4294         * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not
4295         "widen" a destination that is already wider than a word.  Also do
4296         not widen if LOAD_EXTEND_OP is NIL for the given mode.
4297
4298 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
4299
4300         * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids.
4301
4302 Thu Mar 15 11:30:31 EST 2001  John Wehle  (john@feith.com)
4303
4304         * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo.
4305
4306 Thu Mar 15 11:24:29 EST 2001  John Wehle  (john@feith.com)
4307
4308         * i960.h (i960_maxbitalignment,
4309         i960_last_maxbitalignment): Declare.
4310         * i960.c (i960_maxbitalignment,
4311         i960_last_maxbitalignment): Make global.
4312         (process_pragma): Delete.
4313         (i960_pr_align, i960_pr_noalign): Move from here ...
4314         * i960-c.c: ... to this new file.
4315         * t-960bare (i960-c.o): New rule.
4316         * t-vxworks960 (i960-c.o): Likewise.
4317         * config.gcc (i960-*-*): Define c_target_objs and
4318         cxx_target_objs.
4319
4320 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
4321
4322         * cselib.c (hash_rtx): For REG and MEM, just use value of expression
4323         without adding in rtx code and mode.
4324
4325         * alias.c (init_alias_analysis): Don't use any rtx whose value
4326         varies as a known value.
4327         Delete a superfluous test.
4328
4329         * config/ia64/ia64.c (maybe_rotate): New function, broken out of
4330         ia64_sched_reorder.
4331         (ia64_sched_reorder): Call maybe_rotate; also rotate after
4332         scheduling a stop bit.
4333         (ia64_emit_nops): Correctly handle ASMs.
4334
4335 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
4336
4337         * varasm.c (assemble_variable): Use DECL_RTL_SET_P.
4338
4339 2001-03-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4340
4341         * cpp.texi: Update documentation for -include and -imacros.
4342         * cppfiles.c (struct include_file): Remove "defined" memeber.
4343         (find_or_create_entry): Make a copy of the file name, and
4344         simplify it.
4345         (open_file): Update to ensure we use the simplified filename.
4346         (stack_include_file): Don't set search_from.
4347         (cpp_included): Don't simplify the path name here.
4348         (find_include_file): New prototype.  Call search_from to
4349         get the start of the "" include chain.  Don't simplify the
4350         filenames here.
4351         (_cpp_execute_include): New prototype.  Move diagnostics to
4352         do_include_common.  Update.
4353         (_cpp_pop_file_buffer): Don't set defined.
4354         (search_from): New prototype.  Use the preprocessor's cwd
4355         for files included from the command line.
4356         (read_name_map): Don't simplify the pathname here.
4357         * cpphash.h (enum include_type): New.
4358         (struct buffer): Delete search from.  New search_cached.
4359         (_cpp_execute_include): Update prototype.
4360         * cppinit.c (do_includes): Use _cpp_execute_include.
4361         * cpplib.c (do_include_common): New function.
4362         (do_include, do_include_next, do_import): Use it.
4363
4364 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
4365
4366         * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the
4367         contents of the RTL, to determine the name of the object.
4368
4369 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
4370
4371         * tree.h (DECL_RTL): Allocate RTL lazily.
4372         (SET_DECL_RTL): New macro.
4373         (DECL_RTL_SET_P): Likewise.
4374         (COPY_DECL_RTL): Likewise.
4375         (DECL_RTL_IF_SET): Likewise.
4376         * varasm.c (make_decl_rtl): Add assertions about the kind of
4377         declaration we are processing.
4378         * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
4379         (start_decl): Likewise.
4380         (finish_decl): Likewise.
4381         * c-semantics.c (emit_local_var): Likewise.
4382         * calls.c (expand_call): Likewise.
4383         * dbxout.c (dbxout_symbol): Likewise.
4384         * emit-rtl.c (unshare_all_rtl): Likewise.
4385         (unshare_all_decls): Likewise.
4386         (reset_used_decls): Likewise.
4387         * expr.c (store_constructor): Likewise.
4388         (safe_from_p): Likewise.
4389         (expand_expr): Likewise.
4390         * function.c (put_var_into_stack): Likewise.
4391         (instantiate_decls_1): Likewise.
4392         (assign_parms): Likewise.
4393         (expand_function_start): Likewise.
4394         (expand_function_end): Likewise.
4395         * ggc-common.c (gcc_mark_trees): Likewise.
4396         * integrate.c (function_cannot_inline_p): Likewise.
4397         (copy_decl_for_inlining): Likewise.
4398         (expand_inline_function): Likewise.
4399         (integrate_parm_decls): Likewise.
4400         (integrate_decl_tree): Likewise.
4401         * print-tree.c (print_node): Likewise.
4402         * reg-stack.c (stack_result): Likewise.
4403         * stmt.c (label_rtx): Likewise.
4404         (expand_return): Likewise.
4405         (expand_decl): Likewise.
4406         (expand_decl_cleanup): Likewise.
4407         (expand_anon_union_decl): Likewise.
4408         * toplev.c (check_global_declarations): Likewise.
4409         (rest_of_decl_compilation): Likewise.
4410         * tree.c (simple_cst_equal): Likewise.
4411         * objc/objc-act.c (generate_static_references): Likewise.
4412
4413 2001-03-14  Zack Weinberg  <zackw@stanford.edu>
4414
4415         * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN,
4416         gcc_AC_C_FLOAT_FORMAT): New macros.
4417         * configure.in: Add AC_PROG_CPP after CC tests;
4418         gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof
4419         tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT.
4420         * configure, config.in: Regenerate.
4421
4422         * config/a29k/xm-a29k.h, config/arc/xm-arc.h,
4423         config/arm/xm-arm.h, config/c4x/xm-c4x.h,
4424         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
4425         config/i370/xm-linux.h, config/i370/xm-oe.h,
4426         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
4427         config/m68k/xm-m68k.h, config/mips/xm-mips.h,
4428         config/pa/xm-linux.h, config/pa/xm-pa.h,
4429         config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h,
4430         config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h,
4431         config/sparc/xm-sparc.h, config/vax/xm-vax.h,
4432         config/we32k/xm-we32k.h: Delete.
4433
4434         * config/i370/xm-mvs.h, config/m88k/m88k.h,
4435         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
4436         config/vax/xm-vms.h: Don't define any of:
4437         HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN
4438
4439         * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here.
4440
4441         * config.gcc: Remove references to deleted files.
4442         (i370-*-opened*): Use i370/xm-mvs.h (which now defines only
4443         FATAL_EXIT_CODE, which is the same between oe and mvs).
4444
4445 2001-03-14  DJ Delorie  <dj@redhat.com>
4446             Vladimir Makarov  <vmakarov@redhat.com>
4447
4448         * config/i960/i960.c (i960_function_prologue): Compute size of
4449         frame according to number of registers actually saved there.
4450
4451 2001-03-14  Richard Henderson  <rth@redhat.com>
4452
4453         * expr.c (emit_move_insn_1): Fix else if around #endif.
4454
4455 Wed Mar 14 22:39:12 CET 2001  Jan Hubicka  <jh@suse.cz>
4456                               Vojtech Pavlik
4457
4458         * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z'
4459         constraints.
4460
4461 Wed Mar 14 22:26:10 CET 2001  Jan Hubicka  <jh@suse.cz>
4462
4463         * i386.c (ix86_cmodel_string, ix86_cmodel): Define.
4464         (override_options): Parse cmodel string.
4465         (x86_64_sign_extended_value, x86_64_zero_extended_value): New.
4466         * i386.h (TARGET_OPTIONS): Add "cmodel".
4467         (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'.
4468         (enum cmodel): New.
4469         (ix86_cmodel_string, ix86_cmodel): Declare.
4470
4471 Wed Mar 14 22:26:54 CET 2001  Jan Hubicka  <jh@suse.cz>
4472
4473         Spot by Matt Kraai:
4474         * i386.h (GENERAL_REG_P): Add missing REG_P.
4475
4476 2001-03-14  Laurynas Biveinis  <lauras@softhome.net>
4477
4478         * configure.in: Use $gcc_cv_as instead of $as.
4479         * configure: Regenerated.
4480
4481 2001-03-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4482
4483         * cppfiles.c (stack_include_file): Only increase the include
4484         count if we actually process the file properly, as opposed
4485         to treating it as length zero.  Only call read_include_file
4486         if not DO_NOT_REREAD.  Handle the -H include file output
4487         here.
4488         (read_include_file): Remove now redundant DO_NOT_REREAD check.
4489         (cpp_included, find_include_file): Simplify pathnames after
4490         remapping them.  If remapping, don't use the remapped file
4491         name's buffer as our scratch buffer.
4492         (cpp_pop_file_buffer): Replace the multiple include macro
4493         only if it isn't yet set.
4494         (read_name_map): Simplify remapped names when reading in.
4495         (remap_filename): Move code to code path that uses it.
4496         (_cpp_simplify_pathname): Return the input pointer.
4497         * cpphash.h (_cpp_simplify_pathname): Update prototype.
4498
4499 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
4500
4501         * expr.c (expand_expr): Revove bogus conditional.
4502
4503 Wed Mar 14 19:29:50 CET 2001  Jan Hubicka  <jh@suse.cz>
4504
4505         * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef.
4506
4507 2001-03-14  Jakub Jelinek  <jakub@redhat.com>
4508
4509         * reg-stack.c (stack_result): Unconditionally use
4510         FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.
4511
4512 Wed Mar 14 16:36:25 CET 2001  Jan Hubicka  <jh@suse.cz>
4513
4514         * expr.c (emit_move_insn_1):  Split push of complex value when
4515         no suitable push instruction exist.
4516
4517         * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P
4518         instead of QI_REG_P.
4519
4520 Tue Mar 13 22:22:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4521
4522         * alias.c (handled_component_p, can_address_p): New functions.
4523         (get_alias_set): Use them.
4524
4525 2001-03-13  Jim Wilson  <wilson@redhat.com>
4526
4527         * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed
4528         from 80 in try_locals code.
4529         (ia64_expand_prologue): Add comment pointing to find_gr_spill change.
4530
4531 2001-03-13  Zack Weinberg  <zackw@stanford.edu>
4532
4533         * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT,
4534         gcc_AC_C_LONG_LONG): New.
4535         * configure.in: Use them.  Probe the size of short, int, long,
4536         and long long/__int64 if we have them.  Move all the AC_C_*
4537         checks together, except gcc_AC_C_CHAR_BIT which has to go
4538         after AC_CHECK_HEADERS(limits.h).
4539         Take hwint.h out of host_xm_file and build_xm_file.
4540
4541         * hwint.h: Unconditionally define HOST_BITS_PER_CHAR,
4542         HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG,
4543         and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT.
4544         Move the HOST_WIDEST_INT setup logic here from system.h.
4545         Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not
4546         defined.
4547         * system.h: Include hwint.h after limits.h.  HOST_WIDEST_INT
4548         is now handled by hwint.h.
4549
4550         * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h,
4551         config/c4x/xm-c4x.h, config/i370/xm-oe.h,
4552         config/ia64/xm-ia64.h: Don't define any of:
4553         HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT,
4554         HOST_BITS_PER_LONGLONG.
4555
4556         * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h,
4557         config/h8300/xm-h8300.h, config/mips/iris6.h,
4558         config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h,
4559         config/sparc/xm-sp64.h: Delete.
4560         * config.gcc: Remove references to deleted files.
4561
4562         * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define
4563         HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT.
4564         * config/i370/xm-linux.h: Clarify floating-point situation in
4565         a comment.
4566
4567 2001-03-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4568
4569         * cppfiles.c (NO_INCLUDE_PATH): New macro.
4570         (find_include_file): Decide here which part of the include
4571         chain to start the search.  Complain about an empty include
4572         chain in all cases apart from an abolsute file name.
4573         (_cpp_execute_include): Don't choose the search chain here.
4574         Don't call handle_missing_include in the case of an empty
4575         include chain.
4576         (_cpp_compare_file_date): Don't choose the search chain here.
4577         * cpplib.c (do_include_next): Move the in-main-file diagnostic
4578         here from _cpp_execute_include.  Behave like #include if
4579         we're in the main file.
4580
4581 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4582
4583         * system.h (malloc, realloc, calloc, strdup): Only poison these
4584         tokens when IN_GCC is defined.
4585
4586 Tue Mar 13 14:38:44 CET 2001  Jan Hubicka  <jh@suse.cz>
4587
4588         * i386.md (abs?f expander): Support SSE case.
4589         (abd?f_if): Add new "USE"; add splitters.
4590
4591 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4592
4593         * cpp.texi (poison): Explain the macro expansion exception.
4594
4595 2001-03-13  Jakub Jelinek  <jakub@redhat.com>
4596
4597         * expr.c (store_expr): Add dont_store_target.  If temp is already in
4598         target before copying to reg, don't store it into target again.
4599
4600 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
4601
4602         * cppinternals.texi: Update for file handling.
4603
4604 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
4605
4606         * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
4607         2001-02-24 which broke building the Java library.
4608         * function.c (identify_blocks): Likewise.
4609         (all_blocks): Likewise.
4610         * integrate.c (integrate_decl_tree): Likewise.
4611         * print-tree.c (print_node): Likewise.
4612         * tree.h (BLOCK_NUMBER): Likewise.
4613         (struct tree_block): Likewise.
4614
4615 2001-03-12  David Edelsohn  <edelsohn@gnu.org>
4616
4617         * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
4618         __WCHAR_TYPE__ definition.
4619         (WCHAR_TYPE_SIZE): #undef before #define.
4620
4621 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
4622
4623         * cppfiles.c: Update comments.
4624         (destroy_include_file_node): Rename destroy_node.
4625         (find_or_create_entry): New function.
4626         (open_file, _cpp_fake_include): Use it.
4627         (handle_missing_header): New function, broken out of
4628         _cpp_execute include.  Don't segfault if there is no
4629         system or quoted path.
4630         (_cpp_execute_include): Use handle_missing_header.
4631
4632 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
4633
4634         * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's
4635         2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5.
4636
4637 Mon Mar 12 14:05:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4638
4639         * flow.c (insn_dead_p): Don't consider two memrefs equivalent
4640         unless anti_dependence says they are.
4641         * alias.c (objects_must_conflict): If neither has a type specified,
4642         they must conflict.
4643
4644 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
4645             David Billinghurst <David.Billinghurst@riotinto.com>
4646
4647         * config/mips/iris5.h:  Change WCHAR_TYPE to int.
4648
4649 Mon Mar 12 16:32:21 CET 2001  Jan Hubicka  <jh@suse.cz>
4650
4651         * i386.md (trunctfdf2_2): Rename missnamed pattern.
4652         (*_one_bit): Remove type on the match_operand in attributes.
4653
4654 Mon Mar 12 16:27:56 CET 2001  Jan Hubicka  <jh@suse.cz>
4655
4656         * i386.c: Commit forgotten hunk in previous patch.
4657         (regclass_map): Add extended registers.
4658         (dbx_register_map): Add missing frame register.
4659
4660 Mon Mar 12 15:41:08 CET 2001  Jan Hubicka  <jh@suse.cz>
4661
4662         * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
4663
4664         * i386.md (x86_sahf_1): Disable for 64bit.
4665         (popsi*, pophi*): Likewise.
4666         (pushqi, pushhi): Likewise.
4667         (movdi, pushdi): Likewise.
4668         (zero extend DImode splitter): Likewise.
4669         (adddi, minusdi splitter): Likewise.
4670         (umulsidi): Likewise.
4671         (umulsi): New.
4672         (mulsidi): Disable for 64bit
4673         (lshift:DI/ashift:DI): Disable for 64bit.
4674         (loop patterns): Likewise.
4675         (call_pop, call_value_pop expanders and patterns): Likewise.
4676         (prologue_get_pc): Likewise.
4677         (leave): Likewise.
4678         (fcmovDI pattern and splitter): Likewise.
4679         (movdfcc_1_rex64): New.
4680
4681 Mon Mar 12 15:16:36 CET 2001  Jan Hubicka  <jh@suse.cz>
4682
4683         * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64.
4684         (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64.
4685         (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64.
4686         (STATIC_CHAIN_REGNUM): Set to r10 for x86_64.
4687         (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64.
4688         (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64.
4689         (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes.
4690         (PUSH_ROUNDING): x86_64 rounds to 64bits.
4691         (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE.
4692         (REGPARM_MAX): Set to 6 for x86_64.
4693         (SSE_REGPARM_MAX): Set to 16 for x86_64.
4694         * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose
4695         registers.
4696
4697         * (patterns that does use upper halves): Update constraints
4698         'q' to 'Q' and 'r' to 'R'.
4699         (cmpqi_ext_1): Disable for 64bit.
4700         (cmpqi_ext_3_insn): Likewise.
4701         (movqi_extzv_1): Likewsie.
4702         (addqi_ext_1): Liekwsie
4703         (testqi_ext_1): Liekwsie
4704         (andqi_ext_1): Liekwsie
4705         (xorqi_ext_1): Liekwsie
4706         (cmpqi_ext_1_rex64): New.
4707         (cmpqi_ext_3_insn_rex64): Likewise.
4708         (movqi_extzv_1_rex64): Likewsie.
4709         (addqi_ext_1_rex64): Liekwsie
4710         (testqi_ext_1_rex64): Liekwsie
4711         (andqi_ext_1_rex64): Liekwsie
4712         (xorqi_ext_1_rex64): Liekwsie
4713
4714 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
4715
4716         * configure.in: Move check for unsigned enumerated bitfields
4717         to macro in aclocal.m4.  Disable it for now.
4718         * configure, config.in: Regenerate.
4719         * system.h: Don't do anything with ONLY_INT_FIELDS.  Use the
4720         unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC.
4721         * varasm.c (struct rtx_const): Use ENUM_BITFIELD().  Move enum
4722         kind above its first use.
4723
4724         * config/xm-interix.h, config/alpha/xm-alpha.h,
4725         config/i370/xm-linux.h, config/i386/xm-beos.h,
4726         config/i386/xm-mingw32.h, config/mips/xm-mips.h,
4727         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
4728         config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h,
4729         Don't define ONLY_INT_FIELDS under any circumstances.
4730
4731         * config/pa/xm-pa.h: Don't define __BSD_NET2__.
4732
4733         * config/pa/xm-pahpux.h, config/pa/xm-papro.h,
4734         config/sparc/xm-sysv4.h: Delete - now identical with some
4735         other xm header.
4736         * config.gcc (hppa targets): Replace xm-pahpux.h and
4737         xm-papro.h with implicit xm-pa.h.
4738         (sparc targets): Replace xm-sysv4.h with implicit or explicit
4739         xm-sparc.h.
4740
4741 2001-03-12  Aldy Hernandez  <aldyh@redhat.com>
4742
4743         * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set
4744         before reload_cse_noop_set_p.
4745
4746 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
4747
4748         * config.gcc: Where xm-host.h used to include another
4749         xm-host.h, list the nested header directly in xm_file.  Remove
4750         references to deleted files.  Can now use sparc/xm-sp64.h for
4751         sparcv9-*-solaris*.
4752
4753         * config/xm-linux.h, config/arm/xm-linux.h,
4754         config/i386/xm-dos.h, config/i386/xm-gnu.h,
4755         config/i386/xm-linux.h, config/i386/xm-openbsd.h,
4756         config/i860/xm-fx2800.h, config/m68k/xm-atari.h,
4757         config/m68k/xm-linux.h, config/m68k/xm-sun3.h,
4758         config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h:
4759         Delete.
4760
4761         * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h.
4762         * config/mips/xm-iris5.h: Don't include mips/xm-mips.h.  Don't
4763         bother to wrap #undef in #ifdef.
4764         * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h:
4765         Don't include xm-linux.h.
4766         * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h.
4767
4768         * configure.in: Wrap regexps using [] in changequote block.
4769         Use expr : not echo | grep.  Simplify regexps.
4770         * configure: Regenerate.
4771
4772         56 xm-files remain, 22 xm-arch.
4773
4774 2001-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4775
4776         * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF.
4777         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
4778         (local_index, local_rindex): Delete, use strchr/strrchr instead.
4779         (copy_object): Fix format specifier vs argument mismatch.
4780
4781         * mips-tdump.c: Make local functions static.
4782         (rindex): Don't #undef.
4783         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
4784         (fatal, fancy_abort): Delete.
4785         (read_seek): Avoid signed/unsigned compare.
4786
4787 Sun Mar 11 17:01:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4788
4789         * combine.c (try_combine): Fix error in change to try original
4790         register.
4791         (gen_rtx_combine): Do same as gen_rtx for now.
4792
4793 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
4794
4795         * configure.in: AC_SUBST xm_defines.
4796         * configure: Regenerate.
4797         * Makefile.in: Set DEFINES=$(xm_defines) when building
4798         tconfig.h.
4799
4800 2001-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4801
4802         * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete.
4803         (cpp_included, find_include_file): Update.
4804         (_cpp_compare_file_date): Make else unconditional.
4805
4806 2001-03-10  kaz Kojima <kkojima@rr.iij4u.or.jp>
4807
4808         * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined.
4809
4810 2001-03-10  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4811
4812         * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics.
4813         * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w.
4814
4815 Sat Mar 10 22:42:05 2001  Alexandre Oliva  <aoliva@redhat.com>
4816
4817         * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node
4818         if it's a record type.
4819
4820 Sat Mar 10 17:52:54 2001  Christopher Faylor <cgf@cygnus.com>
4821
4822         * config/i386/cygwin.h: Make ../w32api a system directory.  Reorganize
4823         mingw includes slightly.
4824
4825 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4826
4827         * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex):
4828         #undef token before poisoning it.
4829
4830 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4831
4832         * alpha.c (check_float_value): Use memcpy, not bcopy.
4833
4834         * m32r.c (m32r_sched_reorder): Likewise.
4835
4836         * vax.c (check_float_value): Likewise.
4837
4838 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4839
4840         * toplev.c (file_name_nondirectory): Remove.
4841         * toplev.h: Similarly.
4842         * dwarf2out.c (compute_section_prefix): Use lbasename instead
4843         of file_name_nondirectory.
4844
4845 Sat Mar 10 10:36:45 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4846
4847         * mips-tdump.c (read_seek): Call xmalloc, not malloc.
4848         * mips-tfile.c: Don't #undef rindex; not used.
4849
4850 Sat Mar 10 14:34:59 CET 2001  Jan Hubicka  <jh@suse.cz>
4851
4852         * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits.
4853         (dbx64_register_map): Declare.
4854         (RETURN_ADDR_RTX): Fix for 64bit.
4855         (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit.
4856         (INCOMING_FRAME_SP_OFFSET): Set to 8.
4857         * i386.c (dbx64_register_map): New global array.
4858         * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h,
4859         linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map
4860         for 64bits.
4861
4862 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4863
4864         * cppfiles.c (search_from): Use lbasename.
4865         * mkdeps.c (deps_add_default_target): Use lbasename.
4866
4867 2001-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4868
4869         * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc &
4870         xcalloc in lieu of malloc, realloc & calloc.
4871
4872         * gencheck.c (xmalloc): Use really_call_malloc, not malloc.
4873
4874         * gengenrtl.c (xmalloc): Likewise.
4875
4876         * gensupport.c (xcalloc, xrealloc, xmalloc): Use the
4877         really_call_* memory allocation routines.
4878
4879         * stmt.c (check_for_full_enumeration_handling): Use
4880         really_call_calloc, not calloc.
4881
4882         * system.h (really_call_malloc, really_call_calloc,
4883         really_call_realloc): Define.
4884         (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison.
4885
4886 Fri Mar  9 18:39:19 2001  Jeffrey A Law  (law@cygnus.com)
4887
4888         * pa.md (builtin_longjmp): Rework slightly to work for PA64 too.
4889
4890 2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>
4891
4892         * configure: Rebuilt.
4893         * configure.in: Only use `lang_requires' for languages athat are
4894         actually enabled.
4895
4896 2001-03-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4897
4898         * invoke.texi: Fix typo.
4899         * gcc.1: Regenerate.
4900
4901 2001-03-09  Zack Weinberg  <zackw@stanford.edu>
4902
4903         * configure.in: Prune nonexistent files from build_xm_file,
4904         xm_file, and host_xm_file lists.  Warn unless they're
4905         $cpu/xm-$cpu.h.
4906         Don't generate *config.h here.
4907         AC_SUBST all variables needed to generate *config.h.
4908         * configure: Regenerate.
4909         * mkconfig.sh: New helper script, from code removed from
4910         configure.in.
4911         * Makefile.in: Zap all MALLOC variables - no longer used
4912         anywhere, and malloc.c doesn't exist.
4913         Substitute in variables needed to generate *config.h.
4914         Stop lying about the dependencies contained in CONFIG_H and
4915         GCONFIG_H.
4916         (HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
4917         (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
4918         cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
4919         (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
4920         $(TM_P_H), etc. as appropriate.
4921
4922         * config.gcc: Zap references to deleted files.
4923         * ggc-none.c: Don't include rtl.h or tm_p.h.
4924
4925         * config/i386/xm-beos.h, config/i386/xm-dgux.h,
4926         config/i386/xm-djgpp.h, config/i386/xm-dos.h,
4927         config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
4928         config/i386/xm-linux.h, config/i386/xm-linux.h,
4929         config/i386/xm-next.h, config/i386/xm-openbsd.h,
4930         config/i386/xm-sun.h, config/i386/xm-sysv3.h:
4931         Don't include i386/xm-i386.h.
4932
4933         * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
4934         config/i386/xm-i386.h, config/i860/xm-i860.h,
4935         config/i960/xm-i960.h, config/mcore/xm-mcore.h,
4936         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
4937         config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
4938         Delete (empty except comments, #includes of other deleted
4939         files, and macros used nowhere).
4940
4941 Fri Mar  9 20:05:27 CET 2001  Jan Hubicka  <jh@suse.cz>
4942
4943         * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp
4944         independent on TARGET_FLAGS.
4945
4946 Fri Mar  9 19:52:52 CET 2001  Jan Hubicka  <jh@suse.cz>
4947
4948         * i386.h (FIRST_PSEUDO_REGISTER): Set to 53.
4949
4950         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add
4951         extended ones.
4952         (CONDITIONAL_REGISTER_USAGE): Set proper values according to
4953         TARGET_64BIT.
4954         (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG,
4955         LAST_REX_SSE_REG): define.
4956         (enum reg_class): Add 'LEGACY_REGS'
4957         (REG_CLASS_CONTENTS): Likewise; add extended registers.
4958         (SSE_REGNO_P): Recognize extended registers.
4959         (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New.
4960         (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'.
4961         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P,
4962         REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers.
4963         (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P,
4964          REG_OK_FOR_STRREG_P): Remove.
4965         (HI_REGISTER_NAMES): Add extended registers.
4966         (ADDITIONAL_REGISTER_NAMES): Likewise.
4967         (QI_REGISTER_NAMES): Add 8bit extended registers.
4968         (DEBUG_REG): Support extended registers.
4969         * i386.c (regclass_map): Add extended registers.
4970         (dbx_register-map): Likewise.
4971         (svr4_dbx_register_map): Likewise.
4972         (print_reg): Support extended registers.
4973         (print_operand): Support 64bit operands.
4974
4975 Fri Mar  9 19:37:46 CET 2001  Jan Hubicka  <jh@suse.cz>
4976
4977         * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64
4978         (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
4979          FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
4980          DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants.
4981         (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY,
4982          STACK_BOUNDARY): Set properly for 64bits.
4983         (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants.
4984         (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD.
4985         (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits.
4986         (MOVE_MAX): Set to 16.
4987         (MOVE_MAX_PIECES): 8 for 64bit.
4988         (Pmode): Set to SImode.
4989
4990 Fri Mar  9 09:00:36 2001  Mike Stump  <mrs@wrs.com>
4991
4992         * cselib.c (hash_rtx): Ensure that hash isn't zero upon return.
4993
4994 Fri Mar  9 17:38:08 CET 2001  Jan Hubicka  <jh@suse.cz>
4995
4996         * i386.h (mask_64bit): New constant.
4997         (target_64bit): New macro.
4998         (target_options): Add '64'/'32'
4999         (target_default): Define.
5000         * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h
5001         isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h
5002         unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT.
5003
5004 Thu Mar  8 23:36:56 2001  Jeffrey A Law  (law@cygnus.com)
5005
5006         * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable.
5007
5008 Thu Mar  8 23:29:37 2001  John Wehle  (john@feith.com)
5009
5010         * rtlanal.c (rtx_varies_p): Check operand 0 of a
5011         LO_SUM unless for_alias is set.
5012
5013 2001-03-08  Stan Shebs  <shebs@apple.com>
5014
5015         * objc/objc-act.c: Fix old typos in comments, add comments for
5016         various functions.
5017         (hash_init): Fix file name in error message.
5018         (hash_enter): Ditto.
5019         (hash_add_attr): Ditto.
5020         (continue_class): Ditto.
5021
5022 2001-03-08  Bruce Korb  <bkorb@gnu.org>
5023
5024         gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that
5025         wait4() can receive the signal.
5026
5027 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5028
5029         * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML
5030         entities.
5031         * fixinc/fixincl.x: Regenerate.
5032
5033 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5034
5035         * fixinc/inclhack.def (AAA_standards): Undo <standards.h> breakage
5036         on Tru64 UNIX.
5037         * fixinc/fixincl.x: Regenerate.
5038
5039 2001-03-08  Richard Henderson  <rth@redhat.com>
5040
5041         * configure.in (HAVE_AS_LEB128): New assembler check.
5042         * configure, config.in: Rebuilt.
5043
5044 Thu Mar  8 19:54:04 CET 2001  Jan Hubicka  <jh@suse.cz>
5045
5046         * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for
5047         TFmode too.
5048
5049 2001-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5050
5051         * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete
5052         references to the MAXPATHLEN macro.
5053
5054         * config/alpha/xm-alpha.h, config/arm/xm-arm.h,
5055         config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to
5056         the POSIX macro.
5057
5058         * config/i386/xm-gnu.h, config/xm-gnu.h,
5059         config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h,
5060         config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h,
5061         config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty
5062         and/or unused files.
5063
5064         * config.gcc: Define POSIX in xm_defines as appropriate in lieu of
5065         doing so in various xm-*.h files.
5066
5067 Thu Mar  8 06:32:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5068
5069         * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.
5070
5071 2001-03-08  Alexandre Oliva  <aoliva@redhat.com>
5072
5073         * configure.in (enable_shared): Support per-package shared-library
5074         enabling.
5075         * configure: Rebuilt.
5076
5077 2001-03-07  David Edelsohn  <edelsohn@gnu.org>
5078
5079         * rs6000.md (cr logic): Add original POWER mnemonic alternative
5080         for crnot.  Set operands[5] in splitter.
5081
5082 2001-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5083
5084         * config/i370/xm-mvs.h, config/i370/xm-oe.h,
5085         config/i386/xm-beos.h, config/i386/xm-mingw32.h,
5086         config/m88k/xm-m88k.h, config/mips/xm-iris6.h,
5087         config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h,
5088         config/pa/xm-pahpux.h, config/rs6000/xm-beos.h,
5089         config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h,
5090         config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references
5091         to the USG macro.
5092
5093         * config/vax/xm-vaxv.h, config/a29k/xm-unix.h,
5094         config/i370/xm-i370.h, config/i386/xm-dgux.h,
5095         config/i386/xm-sun.h, config/i386/xm-sysv3.h,
5096         config/m68k/xm-tower.h, config/m68k/xm-aux.h,
5097         config/m68k/xm-hp320.h, config/m68k/xm-amix.h,
5098         config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h,
5099         config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h,
5100         config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h,
5101         config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h,
5102         config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h:
5103         Delete unused and/or empty files.
5104
5105         * config.gcc: Define USG in xm_defines as appropriate.  Define
5106         POSIX in lieu of xm-svr4.h.  Delete all references to the SVR3
5107         macro.  Remove deleted xm-* files from $xm_files variable.
5108
5109 2001-03-07  Tom Tromey  <tromey@redhat.com>
5110
5111         * configure: Rebuilt.
5112         * configure.in: Allow config-lang.in to set `lang_requires' to list
5113         of other required languages.
5114
5115 2001-03-07  Andrew MacLeod  <amacleod@redhat.com>
5116
5117         * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn
5118         after its emitted.
5119         (output_prologue): Use xmalloc not oballoc.
5120         (output_epilog): Free a29k_first_epilogue_insn when finished.
5121         * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand.
5122
5123 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
5124
5125         * builtins.c (expand_builtin_mathfn): Check
5126         flag_unsafe_math_optimizations, not flag_fast_math.
5127         (expand_builtin): Likewise
5128         * combine.c (combine_simplify_rtx): Likewise.
5129         (simplify_if_then_else): Likewise.
5130         * cse.c (fold_rtx): Likewise.
5131         * flags.h: Remove flag_fast_math.  Add
5132         flag_unsafe_math_optimizations and flag_trapping_math.
5133         * fold-const.c (negate_expr): Check
5134         flag_unsafe_math_optimizations, not flag_fast_math.
5135         (invert_truthvalue): Likewise.
5136         (fold): Likewise.  Before associating operands, check that
5137         code == MULT_EXPR, not code != MULT_EXPR.
5138         * ifcvt.c (noce_try_minmax): Check
5139         flag_unsafe_math_optimizations, not flag_fast_math.
5140         (noce_operand_ok): Check flag_trapping_math, not flag_fast_math.
5141         * invoke.texi: Document -funsafe-math-optimizations and
5142         -fno-trapping-math.  Change documentation for -ffast-math.
5143         * jump.c (reversed_comparison_code_parts): Likewise.
5144         (rtx_equal_for_thread_p): Likewise.
5145         * optabs.c (emit_conditional_move): Likewise.
5146         * simplify-rtx.c (simplify_binary_operation): Likewise.
5147         (simplify_relational_operation): Likewise.
5148         (simplify_ternary_operation): Likewise.
5149         * toplev.c: Remove flag_fast_math.  Add flag_trapping_math and
5150         flag_unsafe_math_optimizations.  Remove fast-math entry from f_options.
5151         Add trapping-math and unsafe-math-optimizations entries to f_options.
5152         (set_fast_math_flags): New, sets flags for -ffast-math.
5153         (set_no_fast_math_flags): New, sets flags for -fno-fast-math.
5154         (decode_f_option): Add code to handle -ffast-math and -fno-fast-math.
5155         * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags.
5156
5157         * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise.
5158         (alpha_emit_conditional_move): Initialize local_fast_math to
5159         flag_unsafe_math_optimizations, not flat_fast_math.
5160         * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags
5161         instead of setting flag_fast_math to 1.
5162         * config/convex/convex.md: Check flag_unsafe_math_optimizations,
5163         not flag_fast_math.
5164         * config/i386/i386.c (override_options): Likewise
5165         * config/i386/i386.md: Likewise.
5166         * config/m68k/m68k.md: Likewise.
5167         * config/mips/mips.md: Likewise.
5168         * config/rs6000/rs6000.c (validate_condition_mode): Likewise.
5169         (rs6000_generate_compare): Likewise.
5170
5171 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
5172
5173         * Makefile.in: Set RANLIB to @RANLIB@.
5174         Remove RANLIB_TEST.
5175
5176 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
5177
5178         * fixinc/inclhack.def (djgpp_wchar_h): New test.
5179         * fixinc/fixincl.x: Regenerated.
5180
5181 2001-03-07  Richard Henderson  <rth@redhat.com>
5182
5183         * config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
5184
5185 2001-03-07  Richard Henderson  <rth@redhat.com>
5186
5187         * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting
5188         of block notes and exception handling notes.
5189
5190         * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized.
5191         * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ...
5192         (compile_file): ... here.
5193
5194 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5195
5196         * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H.
5197
5198         * fixinc/gnu-regex.c: Don't include auto-host.h since we get
5199         config.h now.  Include libiberty.h to handle alloca.
5200
5201 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
5202
5203         * c-parse.in (yylexname): New function, split out of _yylex.
5204         (objc_rid_sans_at): New table.
5205         (init_reswords): Initialize it.
5206         (_yylex): Give labels clearer names.  Handle CPP_ATSIGN by
5207         retrieving the next token and checking it for significance as
5208         an ObjC keyword or string constant.
5209
5210         * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'.
5211         * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING.
5212
5213         * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references
5214         to CPP_OSTRING.
5215
5216 2001-03-06  Stephen L Moshier  <moshier@mediaone.net>
5217
5218         * config/m68k/m68k.c (const_uint32_operand): Accept any
5219         const_int on a 32-bit host.
5220
5221 2001-03-06  Nicola Pero  <n.pero@mi.flashnet.it>
5222
5223         * objc/objc-act.c (init_objc): Set save_lang_status,
5224         restore_lang_status, and mark_lang_status.
5225
5226 2001-03-06  Krister Walfridsson  <cato@df.lth.se>
5227
5228         * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call.
5229
5230 2001-03-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5231
5232         * cppinternals.texi: Update.
5233
5234 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5235
5236         * config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
5237         config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h,
5238         config/c4x/xm-c4x.h, config/clipper/xm-clix.h,
5239         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
5240         config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h,
5241         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
5242         config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h,
5243         config/i386/xm-i386.h, config/i860/xm-i860.h,
5244         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
5245         config/m32r/xm-m32r.h, config/m68k/xm-m68k.h,
5246         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
5247         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
5248         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
5249         config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
5250         config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h,
5251         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
5252         config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h,
5253         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
5254         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
5255         config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h,
5256         config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which
5257         match the defaults provided in hwint.h.
5258
5259         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
5260         config/sparc/xm-lynx.h, config/xm-std32.h: Delete files.
5261
5262         * config.gcc (xm_file): Don't set to files which are deleted.
5263
5264         * hwint.h: Provide default values for HOST_BITS_PER_*.  No longer
5265         guard this file against these macros being undefined.
5266
5267 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
5268
5269         * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL
5270         and DECL_DEFER_OUTPUT on the decl we create, before calling
5271         rest_of_decl_compilation.
5272
5273 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
5274
5275         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE
5276         AC_FUNC_ALLOCA.
5277         * configure, config.in: Regenerate.
5278         * config.gcc: Remove references to deleted files.
5279
5280         * genattr.c, genattrtab.c, genextract.c, genoutput.c,
5281         genrecog.c, rtl.c: Do not use alloca anywhere.
5282
5283         * Makefile.in, build-make, system.h, config/x-interix,
5284         config/x-svr4, config/xm-interix.h, config/xm-openbsd.h,
5285         config/alpha/xm-alpha.h, config/alpha/xm-vms.h,
5286         config/arc/xm-arc.h, config/arm/xm-arm.h,
5287         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
5288         config/h8300/xm-h8300.h, config/i370/x-oe,
5289         config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos,
5290         config/i386/x-ncr3000, config/i386/x-sco5,
5291         config/i386/xm-dgux.h, config/i860/x-sysv4,
5292         config/i960/xm-i960.h, config/m32r/xm-m32r.h,
5293         config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320,
5294         config/m68k/x-hp320g, config/m69k/x-mot3300,
5295         config/m68k/x-mot3300-gas, config/m68k/xm-amix.h,
5296         config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h,
5297         config/m68k/xm-mot3300.h, config/m88k/x-dolph,
5298         config/m88k/x-sysv4, config/m88k/x-tekXD88,
5299         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
5300         config/mips/x-iris, config/mips/x-iris3,
5301         config/mips/x-sni-svr4, config/mips/x-sysv,
5302         config/mips/xm-iris6.h, config/mips/xm-mips.h,
5303         config/mips/xm-nws3250v4.h, config/pa/x-hpux,
5304         config/pa/x-pa-mpeix, config/pa/xm-pa.h,
5305         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
5306         config/pa/xm-papro.h, config/romp/xm-romp.h,
5307         config/rs6000/x-aix31, config/rs6000/x-aix41,
5308         config/rs6000/x-beos, config/rs6000/x-lynx,
5309         config/rs6000/x-mach, config/rs6000/x-rs6000,
5310         config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h,
5311         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
5312         config/sparc/x-sysv4, config/sparc/xm-linux.h,
5313         config/sparc/xm-pbd.h, config/sparc/xm-sparc.h,
5314         config/vax/xm-vms.h: Eradicate all references to alloca and
5315         related stuff.
5316
5317         * config/xm-alloca.h, config/clipper/x-clix,
5318         config/i386/xm-sysv4.h, config/i860/x-fx2800,
5319         config/i860/x-sysv3, config/m88k/x-sysv3,
5320         config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete
5321         (contained only alloca related hacks).
5322
5323         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define
5324         USE_C_ALLOCA.
5325
5326 2001-03-05  Brad Lucier  <lucier@math.purdue.edu>
5327
5328         * invoke.texi: Document __FAST_MATH__.
5329
5330 2001-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5331
5332         * crtstuff.c: Restore include of auto-host.h.
5333
5334 2001-03-05  Fergus Henderson  <fjh@cs.mu.oz.au>
5335
5336         Put main() in a separate file, so that the language
5337         front-end can use a different main().
5338
5339         * main.c: New.
5340         * toplev.c: (main): Rename as toplev_main.
5341         * toplev.h: Declare toplev_main.
5342         * Makefile.in (OBJS): add toplev.o.
5343           (BACKEND): remove toplev.o, add main.o.
5344
5345 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5346
5347         * cppfiles.c (search_from): Special case the empty string.
5348
5349 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5350
5351         * cppfiles.c (_cpp_execute_include): Don't make a null-terminated
5352         copy of the filename.  Don't use CPP_PREV_BUFFER.  Don't call
5353         strlen or strcpy; we already know the length.
5354         (_cpp_compare_file_date): Similarly.
5355         * cpphash.h (struct cpp_reader): Delete done_initialising.
5356         (CPP_PREV_BUFFER): Delete.
5357         * cppinit.c (cpp_start_read): Don't set done_initialising.
5358         * cpplex.c (parse_string): Guarantee null-termination.
5359         (_cpp_equiv_toklists): Remove.
5360         * cpplib.c (glue_header_name): Null-terminate.
5361         (do_line): Don't leak memory.
5362         * cpplib.h (BT_WEAK): Delete.
5363         * cppmain.c (cb_ident): Strings are now null-terminated.
5364
5365 2001-03-04  Laurynas Biveinis  <lauras@softhome.net>
5366
5367         * gcc.c (convert_filename): Append executable suffix
5368         if NO_AUTO_EXE_SUFFIX is not defined.
5369         * gcc.texi: Document NO_AUTO_EXE_SUFFIX.
5370         * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX.
5371
5372 2001-03-03  David O'Brien  <obrien@FreeBSD.org>
5373
5374         from 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
5375         * c-parse.gperf, c-gperf.h: Delete.
5376         (c-gperf.h was accidently re-added to the CVS repo in the rev
5377         1.16 commit by tromey)
5378
5379 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5380
5381         * cpplex.c (_cpp_lex_token): Don't warn about directives in
5382         macro arguments when looking for the '('.
5383         * cppmacro.c (funlike_invocation_p): Set parsing_args to
5384         2 when really parsing arguments; 1 when looking for '('.
5385         Always restore the lexer position.
5386
5387 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5388
5389         * longlong.h (umul_ppmm): Don't use a multiline string.
5390
5391 2001-03-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5392
5393         * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef.
5394         * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of
5395         t_bool in declaration because pcc can't combine volatile with typedef
5396         types.
5397
5398 Sat Mar  3 19:47:13 CET 2001  Jan Hubicka  <jh@suse.cz>
5399
5400         * i386.c (ix86_expand_fp_compare): Delay creating of scratch register
5401         until when it is really needed.
5402         (ix86_expand_compare): Update call of ix86_expand_fp_compare.
5403         * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator
5404         * i386.md (float?i?f splitter): Don't force source operand to memory
5405         for SSE.
5406         (sse_movdfcc): Fix constraint.
5407         (sse_movdfcc splitter): Handle properly the second alternative.
5408
5409 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5410
5411         * cpplex.c (parse_string): Unconditionally pedwarn.
5412
5413 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5414
5415         * cpp.texi: Update.
5416         * cppexp.c (parse_number): Update.
5417         * cpplex.c (parse_string): Pedwarn if multiline string does not
5418         result from a system header's macro.
5419         * cpplib.h (sys_objmacro_p): Rename sys_macro_p.
5420         * cppmacro.c (sys_objmacro_p): Rename sys_macro_p.  Return true
5421         for function-like macros too.
5422         * c-lex.c (lex_number): Update.
5423
5424 2001-03-03  Richard Henderson  <rth@redhat.com>
5425
5426         * dwarf2out.c (output_call_frame_info): Fix augmentation length.
5427
5428 Sat Mar  3 04:17:17 2001  J"orn Rennecke <amylaar@redhat.com>
5429
5430         * combine.c (try_combine): If split with mode-changed scratch
5431         register didn't work, try the original mode.
5432
5433 Sat Mar  3 03:46:47 2001  J"orn Rennecke <amylaar@redhat.com>
5434
5435         * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
5436         * config/c4x/c4x.h: Likewise.
5437         * stor-layout.c (compute_record_mode): Likewise.
5438         (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK.
5439
5440 2001-03-02  Zack Weinberg  <zackw@stanford.edu>
5441
5442         * configure.in: Kill tm.h.  Include the files in the $tm_file
5443         list in all three of config.h, hconfig.h, tconfig.h, after the
5444         relevant set of xm_files.  Put TARGET_CPU_DEFAULT in all
5445         three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
5446         * configure: Regenerate.
5447         * Makefile.in (clean): Don't delete tm.h.
5448
5449         * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
5450         defined, set them from EXIT_SUCCESS and EXIT_FAILURE.  If
5451         those are not defined, set SEC and FEC to 0 and 1.
5452         * gcc.texi: Update to match.
5453
5454         * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
5455         * config/fp-bit.c, config/m68k/aux-crt2.asm,
5456         config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
5457         Include tconfig.h, not tm.h.
5458
5459         * config/xm-lynx.h, config/xm-std32.h,
5460         config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
5461         config/alpha/xm-alpha.h, config/arc/xm-arc.h,
5462         config/avr/xm-avr.h, config/c4x/xm-c4x.h,
5463         config/clipper/xm-clix.h, config/convex/xm-convex.h,
5464         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
5465         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
5466         config/h8300/xm-h8300.h, config/i370/xm-linux.h,
5467         config/i386/xm-i386.h, config/i860/xm-i860.h,
5468         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
5469         config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
5470         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
5471         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
5472         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
5473         config/pa/xm-linux.h, config/pa/xm-pa.h,
5474         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
5475         config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
5476         config/pj/xm-pj.h, config/romp/xm-romp.h,
5477         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
5478         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
5479         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
5480         config/v850/xm-v850.h, config/vax/xm-vax.h,
5481         config/we32k/xm-we32k.h:
5482         Don't include tm.h.
5483         Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
5484
5485         * config/i370/xm-i370.h, config/i370/xm-mvs.h,
5486         config/i370/xm-oe.h: Don't include tm.h.  Don't define
5487         SUCCESS_EXIT_CODE.
5488         * config/vax/xm-vms.h: Don't include tm.h.
5489
5490         * config/xm-lynx.h, config/avr/xm-avr.h,
5491         config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
5492         Delete; made empty by above changes.
5493         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
5494         config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
5495         Don't include config/xm-lynx.h or tm.h.
5496
5497         * config/xm-gnu.h: Don't include fcntl.h.
5498         * config/sparc/xm-lynx.h: Don't include sys/types.h and
5499         sys/wait.h.
5500         * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
5501
5502 2001-03-02  Richard Henderson  <rth@redhat.com>
5503
5504         * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP,
5505         UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP.
5506
5507 2001-03-02  Richard Henderson  <rth@redhat.com>
5508
5509         * Makefile.in (OBJS): Add dwarf2asm.o.
5510         * dwarf2asm.c, dwarf2asm.h: New files.
5511         * dwarf2out.c (*): Use them.
5512         (size_of_uleb128, size_of_sleb128): Remove.
5513         (output_uleb128, output_sleb128): Remove.
5514         (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove.
5515         (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove.
5516         (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove.
5517         (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New.
5518         (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove.
5519         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove.
5520         (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove.
5521         (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove.
5522         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove.
5523         (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
5524         (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove.
5525         (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove.
5526         (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove.
5527         (dwarf2out_frame_debug): Remove unused variables.
5528         (output_loc_operands): Don't abort on 8 byte constants if
5529         host integers are wide enough.
5530         (output_symbolic_ref): Remove.
5531         (size_of_die): Don't assume 4 byte host integers.
5532         (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin
5533         and end labels.
5534         (add_const_value_attribute) [CONST_INT]: Verify we're not doing
5535         something stupid with HOST_WIDE_INT to long truncation.
5536         [CONST_DOUBLE]: Likewise.
5537
5538         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove.
5539         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
5540         * config/arm/unknown-elf.h: Likewise.
5541         * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New.
5542         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New.
5543         (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove.
5544         (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove.
5545         (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove.
5546         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove.
5547         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove.
5548         (ASM_OUTPUT_DWARF_OFFSET): Remove.
5549         * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove.
5550         * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
5551         (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove.
5552         (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove.
5553
5554 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5555
5556         * cselib.c (hash_rtx): Cast enums to unsigned int.
5557
5558 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5559
5560         * print-rtl.c (print_rtx): Cast enums to int for comparison.
5561         * c-decl.c (grokdeclarator): Cast enums to int for comparison and
5562         shifts.
5563         * c-format.c (C_STD_VER): Cast to int for comparisons.
5564         (check_function_format): Cast various enums to int for &.
5565         (maybe_read_dollar_number): Likewise.
5566         (check_format_info): Likewise.
5567         (check_format_info_main): Likewise.
5568         * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
5569         (safe_from_p): Likewise.
5570         * varasm.c (const_hash): Cast enum to int for %.
5571         * emit-rtl.c (init_emit_once): Use int loop variable to work around
5572         pcc enum problems with < and ++ operators.
5573         * regclass.c (init_reg_sets_1): Cast enums for comparison.
5574         (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
5575         (regclass_init): Change enum class to int to iterate over reg_classes.
5576         * genrecog.c (merge_trees): Cast enums for comparison.
5577         * rtl.h (GET_CODE): Cast to enum rtx_code.
5578         (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
5579         (GET_MODE): Cast to enum machine_mode.
5580         (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
5581         (GET_NOTE_INSN_NAME): Cast enum to int.
5582         * tree.h (TREE_CODE): Cast to enum tree_code.
5583         (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
5584         * timevar.c (timevar_print): Change loop variable id from enum to
5585         unsigned int.
5586         * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
5587         * config/i386/i386.md: Use PUT_MODE for mode assignment.
5588         * toplev.c (compile_file): Cast enum DFI to int.
5589         (decode_d_option): Likewise.
5590
5591 Fri Mar  2 12:18:13 2001  Christopher Faylor <cgf@cygnus.com>
5592
5593         * cppinit.c (append_include_chain): Mark "after" include file name list
5594         as a system directory.
5595         * cpp.texi: Document new behavior.
5596
5597 Fri Mar  2 11:59:43 CET 2001  Jan Hubicka  <jh@suse.cz>
5598
5599         * ifcvt.c (noce_operand_ok): Handle properly unarry operations.
5600
5601 2001-03-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5602
5603         * cppfiles.c (struct include_file): Update.
5604         (stack_include_file): Use search_from.
5605         (cpp_included, find_include_file): Update.
5606         (cpp_execute_include): Update.  ptr->name may not be
5607         null terminated.  Use the new search_from member variable
5608         of cpp_buffer.
5609         (_cpp_compare_file_date): Similarly.
5610         (search_from): New function, similiar to actual_directory.
5611         (actual_directory): Delete.
5612         (remap_filename): Update.  loc->name may not be null terminated.
5613         (struct file_name_list): Rename search_path.  Update.
5614         * cpphash.h (struct cpp_buffer): Delete actual_dir.  New members
5615         search_from and dir.
5616         (struct cpp_reader): Remove actual_dirs.
5617         * cppinit.c (struct cpp_pending): Update for renamed objects.
5618         (append_include_chain, remove_dup_dir, remove_dup_dirs,
5619         merge_include_chains, cpp_destroy, cpp_start_read): Similarly.
5620         * cpplib.h (struct cpp_options): Similarly.
5621
5622 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
5623
5624         * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h,
5625         config/a29k/xm-unix.h, config/alpha/xm-alpha.h,
5626         config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h,
5627         config/clipper/xm-clix.h, config/convex/xm-convex.h,
5628         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
5629         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
5630         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
5631         config/i370/xm-linux.h, config/i370/xm-mvs.h,
5632         config/i370/xm-oe.h, config/i386/xm-aix.h,
5633         config/i386/xm-i386.h, config/i386/xm-osf.h,
5634         config/i860/xm-i860.h, config/i960/xm-i960.h,
5635         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
5636         config/m68k/xm-m68k.h, config/m88k/xm-m88k.h,
5637         config/mcore/xm-mcore.h, config/mips/xm-mips.h,
5638         config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h,
5639         config/ns32k/xm-ns32k.h, config/pa/xm-linux.h,
5640         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
5641         config/pa/xm-pahpux.h, config/pa/xm-papro.h,
5642         config/pj/xm-pj.h, config/romp/xm-romp.h,
5643         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
5644         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
5645         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
5646         config/v850/xm-v850.h, config/vax/xm-vax.h,
5647         config/vax/xm-vms.h, config/we32k/xm-we32k.h:
5648         Do not define TRUE or FALSE.
5649
5650         * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made
5651         empty by above change.
5652         * config.gcc: Remove references to these files.
5653
5654         * configure.in: Detect stdbool.h.
5655         * configure, config.in: Regenerate.
5656         * system.h: Include stddef.h here if available.
5657         Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__.
5658         Then set up a sensible boolean type at the very end.
5659
5660         * combine.c, cse.c, expr.c, fold-const.c, gensupport.c,
5661         config/mcore/mcore.c: Rename variables named 'true' and/or 'false'.
5662
5663         * hash.h: Delete 'boolean' typedef and related #undefs.
5664
5665         * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace
5666         all uses of 'boolean' with 'bool'.
5667
5668 2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5669
5670         * cpplib.c (_cpp_init_stacks): Cast enum for comparison.
5671         * cppexp.c (lex): Cast enums for comparison.
5672         * cppinit.c (parse_option): Cast enum for comparison.
5673         * cpplex.c (cpp_spell_token): Cast enums to int for minus.
5674         (cpp_output_token): Likewise.
5675         (cpp_can_paste): Cast enums for comparsion and plus/minus.
5676         (cpp_avoid_paste): Cast enums for minus and comparison.
5677
5678 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
5679
5680         * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec
5681         field to all array elements.
5682
5683 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
5684
5685         * cpphash.h (struct cpp_reader): Add print_version field.
5686         * cppinit.c (cpp_handle_option): For -v, -version, and --version,
5687         just set print_version and other flags as appropriate.
5688         (cpp_post_options): Print version here if print_version is set.
5689
5690         * toplev.c (exit_after_options): New flag.
5691         (independent_decode_option): Don't exit here; just set
5692         exit_after_options.
5693         (main): Exit after calling lang_hooks.post_options if
5694         exit_after_options is true.
5695
5696         * cppinit.c (append_include_chain): Drop never-used case QUOTE.
5697         (merge_include_chains): Adjust comment to match code.
5698
5699 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
5700
5701         * stringpool.c (set_identifier): New function.
5702         * tree.h: Prototype it.
5703
5704         * c-parse.in: Kill D_YES. If compiled for objc, call
5705         save_and_forget_protocol_qualifiers from init_reswords.
5706         * objc/objc-act.c (remember_protocol_qualifiers,
5707         forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
5708         Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
5709         vice versa.
5710         (save_and_forget_protocol_qualifiers): New function.
5711         * c-lex.h: Prototype save_and_forget_protocol_qualifiers.
5712
5713 2001-03-01  Diego Novillo  <dnovillo@redhat.com>
5714
5715         * c-semantics.c (prune_unused_decls): Return error_mark_node
5716         instead of (tree) 1 to stop traversing the tree chain.
5717
5718 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
5719
5720         Fix a problem introduced by Kenner's Feb 18 change.
5721         * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and
5722         flag_cse_skip_blocks only temporarily, not for ever.
5723
5724 Thu Mar  1 09:49:58 2001  Jeffrey A Law  (law@cygnus.com)
5725
5726         * config/pa/som.h  (ASM_IDENTIFY_GCC): Define.
5727         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise.
5728
5729         * pa.c (emit_move_sequence): Verify operand0 is a hard register
5730         before determining its register class.
5731
5732 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
5733
5734         * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming
5735         from reg 4 if current_function_calls_setjmp.
5736         (gen_nop_type): New function.
5737         (ia64_emit_nops): New function.
5738         (ia64_reorg): Call it.
5739         (ia64_sched_reorder): Move code that rotates bundles up a bit.
5740
5741         * reload1.c (eliminate_regs_in_insn): Restrict the special case
5742         code not to try to optimize adds with anything but a REG destination.
5743
5744         * sched-int.h (struct haifa_insn_data): Add new member priority_known.
5745         (INSN_PRIORITY_KNOWN): New accessor macro.
5746         * haifa-sched.c (priority): Use it instead of testing priority against
5747         zero.
5748
5749 2001-02-28  DJ Delorie  <dj@redhat.com>
5750
5751         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes,
5752         since that doesn't work the way gcc wants on a generic m68k.
5753
5754 2001-02-28  Richard Henderson  <rth@redhat.com>
5755
5756         * caller-save.c (save_call_clobbered_regs): Fix typo in
5757         comparison last change.
5758
5759 Wed Feb 28 19:31:42 CET 2001  Jan Hubicka  <jh@suse.cz>
5760
5761         * i386.c (pentium4_cost): New.
5762         (m_PENT4): New macro.
5763         (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf
5764         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8
5765         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5766         x86_memory_mismatch_stall): Add Pentium4
5767         (x86_use_q_reg, x86_use_any_reg): Kill.
5768         (override_options): Add pentium4.
5769         (incdec_operand): Return 0 for pentium4.
5770         (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON.
5771         * i386.h (x86_use_q_reg, x86_use_any_reg): Kill.
5772         (TARGET_PENTIUM4): Define.
5773         (enum processor_type): Add PROCESSOR_PENTIUM4.
5774         (CPP_CPU_DEFAULT_SPEC): Add pentium4 support.
5775         * i386.md (attribute "cpu"): Add pentium4.
5776         * invoke.texi (march): Add pentium4.
5777
5778 Wed Feb 28 19:28:06 CET 2001  Jan Hubicka  <jh@suse.cz>
5779
5780         * i386.md (sse_mov?fcc*): New patterns and splitters.
5781         * i386.c (ix86_expand_movcc): Work post-reload; recognize
5782         the SSE based conditional moves.
5783
5784 Wed Feb 28 19:18:23 CET 2001  Jan Hubicka  <jh@suse.cz>
5785
5786         * i386.md (attribute mode): Add "TI".
5787         (movsf_1): Add pxor support; remove constant propagation splitter.
5788         (movdf_integer): Likewise.
5789         (movdf_nointeger): Likewise.
5790         (movxf constant prop splitter): Handle all modes; update for SSE.
5791         * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants.
5792         * i386.c (standard_80387_constant_p): Rewrite.
5793         (standard_sse_constant_p): New.
5794         * i386-protos.h (standard_sse_constant_p): New.
5795
5796 Wed Feb 28 19:05:37 CET 2001  Jan Hubicka  <jh@suse.cz>
5797
5798         * i386.md (sse_setccsf, sse_setccdf): New.
5799         (sse_cmp* patterns): Use '%D' instead of outputtting condition
5800         flag directly.
5801         * i386.c (sse_comparison_operator): Accept the supported unordered
5802         comparses; be ready for fast_math.
5803         (print_operand): Support 'D'.
5804
5805 Wed Feb 28 18:54:51 CET 2001  Jan Hubicka  <jh@suse.cz>
5806
5807         * jump.c (reversed_comparison_code): Kill.
5808
5809 Wed Feb 28 18:50:15 CET 2001  Jan Hubicka  <jh@suse.cz>
5810
5811         * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally
5812         for STACK_REGS
5813
5814 Wed Feb 28 18:47:37 CET 2001  Jan Hubicka  <jh@suse.cz>
5815
5816         * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions;
5817         add missing '%' in constraints.
5818
5819 Wed Feb 28 17:24:24 CET 2001  Jan Hubicka  <jh@suse.cz>
5820
5821         * c-common.c (build_common_tree_nodes): Build intTI_type_nodes
5822         for HOST_BITS_PER_WIDE_INT == 32 too.
5823
5824 Wed Feb 28 17:22:35 CET 2001  Jan Hubicka  <jh@suse.cz>
5825
5826         * caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
5827         NREGS.
5828         (insert_save, insert_restore): New parameter save_mode.
5829         (init_caller_save): Update initialization of reg_save_code
5830         and reg_restore_code.
5831         (save_call_clobbered_regs):  Compute save_modes and update calls to
5832         reg_save_code and reg_restore_code.
5833         (insert_restore):  Unsignetize numbers; use save_modes to choose mode
5834         of spill; update use of reg_restore_code.
5835         (insert_save):  Likewise.
5836         * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
5837         * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
5838         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
5839
5840 Wed Feb 28 17:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
5841
5842         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants,
5843         noce_try_store_flag_inc, noce_try_store_flag_mask,
5844         noce_try_cmove_arith):
5845         Use reversed_comparison_code instead of reverse_comparison and
5846         can_reverse_comparison_p.
5847
5848 Wed Feb 28 17:17:29 CET 2001  Jan Hubicka  <jh@suse.cz>
5849
5850         * jump.c (reversed_comparison_code_parts): Allow reversal of
5851         unordered compares in -ffast-math mode; reverse ordered compares
5852         for FP even w/o -ffast-math.
5853
5854 2001-02-27  Richard Henderson  <rth@redhat.com>
5855
5856         * print-rtl.c (print_rtx) [i]: Don't print field five on
5857         NOTEs other than NOTE_INSN_DELETED_LABEL.
5858
5859 2001-02-27  Zack Weinberg  <zackw@stanford.edu>
5860
5861         * mips/xm-iris4.h: Delete #if 0 block (there since before 1997).
5862         * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno.
5863
5864 2001-02-27  Diego Novillo  <dnovillo@redhat.com>
5865
5866         * c-common.c (walk_stmt_tree): Visit the chain of the current tree
5867         even if walk_subtrees is 0.
5868         * c-semantics.c (prune_unused_decls): Return a non-null value to
5869         stop traversing the tree chain.
5870
5871 2001-02-27  DJ Delorie  <dj@redhat.com>
5872
5873         * config/m68k/m68k.c (output_function_prologue): Save the new CFA
5874         register, *then* define it as the new CFA.
5875
5876 Tue Feb 27 16:49:13 2001  Jeffrey A Law  (law@cygnus.com)
5877
5878         * pa.c (override_options): Promote -fpic to -fPIC.
5879         (legitimize_pic_address): Simplify due to removal of
5880         small PIC as a code generation option.
5881         (secondary_reload_class): Similarly.
5882         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly.
5883         (PRINT_OPERAND_ADDRESS): Similarly.
5884         * pa.md (various patterns): Similarly.
5885         (small pic lo_sum pattern): Remove.
5886
5887 Tue Feb 27 16:01:13 CET 2001  Jan Hubicka  <jh@suse.cz>
5888                               Fergus Henderson
5889
5890         * md.texi (min, max): Document
5891
5892 Tue Feb 27 15:51:35 CET 2001  Jan Hubicka  <jh@suse.cz>
5893
5894         * i386.md (movsf, movdf): Use movaps for reg-reg moves if
5895         TARGET_PARTIAL_REG_DEPENDENCY.
5896         (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
5897
5898 Tue Feb 27 15:36:48 CET 2001  Jan Hubicka  <jh@suse.cz>
5899
5900         * i386.md (mins*, maxs*): New patterns, expanders and splitters.
5901
5902 2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
5903
5904         * mips.c (mips_make_temp_file): Fix thinko in last change.
5905
5906 2001-02-26  Jason Eckhardt  <jle@redhat.com>
5907
5908         * combine.c (known_cond): Do not reverse the condition when
5909         SMAX/UMAX is being considered and the condition is for equality
5910         or inequality.
5911
5912         * testsuite/gcc.c-torture/execute/20010221-1.c: New test.
5913
5914 2001-02-26  Philip Blundell  <philb@gnu.org>
5915
5916         * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and
5917         "armv2-*-linux".
5918         * config/arm/linux-elf.h: Remove historical relics related to
5919         above configurations.
5920         * config/arm/linux-oldld.h: Delete.
5921         * config/arm/linux-elf26.h: Delete.
5922
5923 2001-02-26  Jason Merrill  <jason@redhat.com>
5924
5925         * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope
5926         definitions.
5927         * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to
5928         recognize a tentative definition.  Lose obsolete code.
5929
5930         * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT
5931         variables unless necessary, either.
5932
5933 2001-02-25  Richard Henderson  <rth@redhat.com>
5934
5935         * ifcvt.c (struct noce_if_info): Add test_bb.
5936         (noce_get_alt_condition): New.
5937         (noce_try_minmax, noce_try_abs): New.
5938         (noce_operand_ok): New.
5939         (noce_process_if_block): Use them.
5940         * rtlanal.c (may_trap_p): NEG and ABS can never trap.
5941
5942 Sun Feb 25 14:26:17 2001  Christopher Faylor <cgf@cygnus.com>
5943
5944         * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api
5945         include.
5946
5947 2001-02-25  Zack Weinberg  <zackw@stanford.edu>
5948
5949         * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
5950         * config/mips/mips.c (mips_make_temp_file): Set temp_filename
5951         properly.
5952         (mips_asm_file_end): Free temp_filename here.
5953
5954 Sun Feb 25 08:34:23 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5955
5956         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl.
5957         * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo.
5958
5959         * config/i386/i386.md (movstrsi): Handle FAIL case.
5960
5961 2001-02-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5962
5963         * cppinit.c (builtin_array): Update.
5964         (init_builtins): Flag builtins to warn if redefined or
5965         undefined.  Define __GXX_WEAK as a normal macro.
5966         * cpplib.c (do_undef): Warn if flagged NODE_WARN.
5967         * cpplib.h (NODE_WARN): New flag.
5968         * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__.
5969         Handle __STDC__ as a builtin only on Solaris.
5970         (warn_of_redefinition): Renamed from check_macro_definition.
5971         Reverse sense of test.  Always warn if NODE_WARN.
5972         (_cpp_create_definition): Use warn_of_redefinition.  Flag
5973         any macro beginning with "__STDC_" to require a mandatory
5974         warning if redefined or undefined.
5975
5976 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
5977
5978         * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h,
5979         i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h,
5980         i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h,
5981         i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h,
5982         m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h,
5983         mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h:
5984         Don't define any of:
5985         USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H,
5986         P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS,
5987         NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex,
5988         index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK,
5989         STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN.
5990
5991         * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h,
5992         fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro
5993         definitions.
5994
5995         * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h:
5996         Delete now-empty file.
5997
5998         * alpha/vms.h: Define NEED_ATEXIT here...
5999         * alpha/xm-vms.h: ...not here.
6000
6001         * i386/cygwin.h: Don't define PARAMS.
6002         * mips/mips.c: Don't prototype mktemp.  Don't define
6003         P_tmpdir.  Use make_temp_file to create temporary files.
6004         Don't be clever and delete temporary files early.
6005         * config.gcc: Drop references to deleted files.  Don't define
6006         FULL_PROTOTYPES.
6007         * gcc.texi: Don't mention USE_PROTOTYPES.
6008
6009 Sat Feb 24 20:25:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6010
6011         * config/i386/i386.c (ix86_set_move_mem_attrs): New function.
6012         (ix86_set_move_mem_attrs_1): Likewise.
6013         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration.
6014         * config/i386/i386.md (movstrsi): Call it.
6015
6016 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
6017
6018         * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd,
6019         x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv,
6020         ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas,
6021         rs6000/x-aix41-gld.  These are nonexistent, empty, or obsolete.
6022
6023         (i750a-*-*): Error here if hosting on i750a.
6024         (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely.
6025
6026         * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h:
6027         Remove (empty modulo comments).
6028
6029         * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h,
6030         alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h,
6031         i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h,
6032         i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs,
6033         mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas,
6034         rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete)
6035
6036         * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h:
6037         Remove reference to winnt.h in comment.
6038         * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null.
6039
6040 2001-02-24  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6041
6042         * loop.c (check_dbra_loop): A biv has uses besides counting if it is
6043         used to set another biv.
6044
6045 Sat Feb 24 06:45:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6046
6047         * tree.h (BLOCK_DEAD): New macro.
6048         (struct tree_block): New flag, dead_flag.
6049         * print-tree.c (print_node, case 'b'): Print missing fields.
6050         * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD.
6051         * function.c (identify_blocks): Enable test for misplaced notes.
6052         (all_blocks): Skip BLOCK_DEAD blocks.
6053         * integrate.c (integrate_decl_tree): Likewise.
6054
6055         * errors.c (internal_error, trim_filename): New functions.
6056         (fancy_abort): Call internal_error.
6057         * errors.h (internal_error, trim_filename): New declarations.
6058
6059 2001-02-24  Alexandre Oliva  <aoliva@redhat.com>
6060
6061         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted
6062         2000-08-26's patch.
6063         (EXTRA_CONSTRAINT): Formatting changes.
6064
6065 2001-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6066
6067         * rtl.c (rtl_check_failed_code2): Fix typo in last change.
6068
6069 2001-02-23  Per Bothner  <per@bothner.com>
6070
6071         * gcc.c (record_temp_file, pfatal_with_name, error):  Make non-static,
6072         so they can be called from java/jvspec.c.
6073         * gcc.h (record_temp_file, pfatal_with_name, error):  Declare.
6074
6075 Sat Feb 24 03:32:50 CET 2001  Jan Hubicka  <jh@suse.cz>
6076
6077         * i386.c (ix86_frame): New structure.
6078         (ix86_compute_frame_size): Kill.
6079         (ix86_compute_frame_layout): New.
6080         (ix86_save_reg): New.
6081         (ix86_can_use_return_insn_p): Use frame layout stuff.
6082         (ix86_expand_prologue): Likewise.
6083         (ix86_expand_epilogue): Likewise.
6084         (ix86_initial_elimination_offset): Likewise.
6085         (ix86_nsaved_regs): Use ix86_save_reg.
6086         (ix86_emit_save_regs): Likewise.
6087
6088 Sat Feb 24 03:30:38 CET 2001  Jan Hubicka  <jh@suse.cz>
6089
6090         * flow.c (find_sub_basic_blocks): New function.
6091         (split_block): Be ready for basic block introduced by CODE_LABEL.
6092         (commit_one_edge_insertion): Call find_sub_basic_block.
6093
6094         * flow.c (make_edges): Add edge from entry for blocks starting with
6095         label having ALTERNATE_NAME
6096
6097 Sat Feb 24 03:19:42 CET 2001  Jan Hubicka  <jh@suse.cz>
6098
6099         * function.c (epilogue_done): Be ready for first basic block not
6100         containing PROLOGUE_END note.
6101         (reposition_prologue_and_epilogue_notes): Avoid placing
6102         PROLOGUE_END note between BASIC_BLOCK.
6103
6104 Sat Feb 24 03:17:09 CET 2001  Jan Hubicka  <jh@suse.cz>
6105
6106         * loop.c (canonicalize_condition): Move to reversed_comparison_code.
6107
6108 2001-02-21  DJ Delorie  <dj@redhat.com>
6109
6110         * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
6111         check for current_function_has_nonlocal_goto from 1999-11-12.
6112
6113 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6114
6115         * diagnostic.c (trim_filename): No longer static.
6116         * toplev.h (trim_filename): Declare.
6117         * rtl.c (rtl_check_failed_bounds): Call internal_error.
6118         (rtl_check_failed_type1, rtl_check_failed_type2): Likewise.
6119         (rtl_check_failed_code1, rtl_check_failed_code2): Likewise.
6120         (rtvec_check_failed_bounds): Likewise.
6121         * tree.c (tree_check_failed, tree_class_check_failed): Likewise.
6122
6123         * convert.c (convert_to_integer): Don't do unsigned unless result or
6124         both inputs are unsigned.
6125
6126         * fold-const.c (fold_convert): Don't call size_int_type_wide if
6127         input overflows.
6128
6129         * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
6130
6131         * varasm.c (output_constant): Recompute CODE after lang-specific fn.
6132
6133 2001-02-23  Jeffrey Oldham  <oldham@codesourcery.com>
6134
6135         * Makefile.in (resource.o): Add params.h dependence.
6136         * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter.
6137         * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise.
6138         * resource.c: Add dependence on params.h.
6139         (current_live_regs): Fix explanatory comment.
6140         (find_basic_block): Add new parameter to permit limiting search
6141         for a BARRIER.
6142         (mark_target_live_regs): Add new argument to find_basic_block call.
6143         (incr_ticks_for_insn): Likewise.
6144
6145 2001-02-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6146
6147         * diagnostic.c (output_to_stream): Rename to
6148         output_buffer_to_stream. Loses the stream parameter.
6149         (init_output_buffer): Set diagnosic_buffer's stream.
6150         (flush_diagnostic_buffer): Adjust.
6151         (default_print_error_function): Likewise.
6152         (finish_diagnostic): Likewise.
6153         (verbatim): Likewise.
6154
6155         * diagnostic.h (struct output_buffer): Add `stream' field.
6156         (output_buffer_attached_stream): New macro.
6157
6158 2001-02-23  Jakub Jelinek  <jakub@redhat.com>
6159
6160         * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR,
6161         check if either operand is divisible by C.
6162         (multiple_of_p): Handle LSHIFT_EXPR with small constant shift.
6163         If type is signed, consider negative numbers as well.
6164
6165 2001-02-22  Richard Henderson  <rth@redhat.com>
6166
6167         * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to
6168         reach .text instead of gp-relative relocs.
6169         * config/ia64/crtend.asm (.init): Likewise.
6170
6171 2001-02-22  Andreas Jaeger  <aj@suse.de>
6172
6173         * extend.texi (C++ Attributes): Fix typo.
6174
6175 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
6176
6177         * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage
6178         functions, drop current_function_args_info.words test.
6179         (ia64_compute_frame_size): Mark syscall_linkage functions as
6180         using eight input registers.
6181
6182 2001-02-21  Loren J. Rittle  <ljrittle@acm.org>
6183         Bruce Korb  <bkorb@gnu.org>
6184
6185         * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix
6186         * fixinc/README: Document how to convert sed substitutions
6187         to format style c_fix-es.
6188         * fixinc/fixincl.x: regen
6189
6190 2001-02-21  Jeffrey D. Oldham  <oldham@codesourcery.com>
6191
6192         * gcc.c: Add comment explaining how to add a command-line option.
6193         Add title to specs language comment.
6194
6195 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
6196
6197         * gcc.c (cc1_options): Add "-param".
6198         (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise.
6199         (option_map): Likewise.
6200         * toplev.c (display_help): Add entry for "--param".
6201         (independent_decode_option): Fix typographical error.
6202
6203 Wed Feb 21 18:57:28 CET 2001  Catherine Moore  <clm@redhat.com>
6204                               Bernd Schmidt  <bernds@redhat.com>
6205                               Jan Hubicka  <jh@suse.cz>
6206
6207         * i386.c (function_arg_advance):  Pass SSE arguments in registers.
6208         (function_arg): Likewise.
6209
6210 Wed Feb 21 18:12:41 CET 2001  Jan Hubicka  <jh@suse.cz>
6211
6212         * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec.
6213
6214 2001-02-21  Kazu Hirata  <kazu@hxi.com>
6215
6216         * config/h8300/h8300.md (iorsi3): Do not output an extra newline
6217         character.
6218         (xorsi3): Likewise.
6219
6220 Wed Feb 21 17:35:24 CET 2001  Jan Hubicka  <jh@suse.cz>
6221
6222         * flow.c (init_propagate_block_info): Canon address and use single_set
6223         for killing dead memory stores.
6224
6225 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
6226
6227         * Makefile.in (reorg.o): Add params.h dependence.
6228         * params.def: Fix typographical error in comment.
6229         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
6230         * params.h: Modify introductory comment.
6231         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
6232         * reorg.c: Add dependence on params.h.
6233         (redundant_insn): Add parameterized throttle for search.
6234         (fill_simple_delay_slots): Add a comment explaining a variable.
6235         Move conditional out of loop, simplifying code.
6236         (fill_eager_delay_slots): Fix typographical error in comment.
6237
6238 2001-02-20  Aldy Hernandez  <aldyh@redhat.com>
6239
6240         * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation.
6241
6242         * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro.
6243         (REVERSE_CONDEXEC_PREDICATES_P): Define macro.
6244
6245 2001-02-21  Jason Merrill  <jason@redhat.com>
6246
6247         * tree.h (DECL_UNINLINABLE): Move from C++ frontend.
6248         (struct tree_decl): Add uninlinable bitfield.
6249         * c-decl.c (duplicate_decls): Set it.
6250         * integrate.c (function_cannot_inline_p): Check it.
6251
6252         * dwarf2out.c (add_name_and_src_coords_attributes): Don't add
6253         DW_AT_MIPS_linkage_name to abstract methods.
6254         (dwarf2out_abstract_function): Emit class context before calling
6255         set_decl_abstract_flags.  Don't clear DECL_ABSTRACT.
6256         (gen_subprogram_die): Remove obsolete code.
6257         (gen_member_die): Don't include clones in the member list.
6258         (gen_decl_die): Emit abstract info for clone origin.
6259         * dwarfout.c (output_type): Don't include clones in the member list.
6260         * dbxout.c (dbxout_type_methods): Ignore abstract methods.
6261         * toplev.c (note_deferral_of_defined_inline_function): Don't clear
6262         DECL_ABSTRACT on a function that already has it set.
6263
6264         * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL.
6265         (get_subprogram_die): Pass it in.
6266
6267 2001-02-21  Richard Earnshaw  <rearnsha@arm.com>
6268
6269         * flow.c (mark_set_1): Make not_dead unsigned long.  For
6270         non-pseudos, use it as a bitmask of the hard regs that
6271         don't die.
6272
6273 2001-02-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6274
6275         * cppfiles.c: Update comments.
6276         (_cpp_read_file): Don't check for NULL filenames any more.
6277         * cppinit.c (cpp_start_read): Don't do canonicalization of
6278         in_fname and out_fname.  Use the passed file name exclusively.
6279         (_cpp_handle_options): Don't treat "-" as a command line option,
6280         but as a normal filename.
6281         (_cpp_post_options): Canonicalize in_fname and out_fname.
6282         * cppmain.c (printer_init): Don't check out_fname for NULL.
6283         * c-lex.c (orig_filename): Rename cpp_filename for clarity.
6284         (init_c_lex): Update, and use "" to represent stdin to CPP.
6285         (yyparse): Update.
6286
6287 2001-02-20  Will Cohen  <wcohen@redhat.com>
6288
6289         * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
6290         * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
6291         (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
6292         fixunstfsi_libfunc.
6293
6294 2001-02-20  Stan Shebs  <shebs@apple.com>
6295
6296         * config/rs6000/rs6000.c (output_cbranch): Output branches
6297         on separate lines instead of using ';' to separate.
6298
6299 2001-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6300
6301         * cppinit.c (set_lang):  Move builtin handling to...
6302         (init_builtins): ...here.
6303         (_cpp_create_reader): Move call to set_lang.
6304
6305 2001-02-20  Mark Mitchell  <mark@codesourcery.com>
6306
6307         * stmt.c (expand_return): If an attempt is made to return the
6308         error_mar_node, treat the return like a return without a value.
6309
6310 2001-02-19  Zack Weinberg  <zackw@stanford.edu>
6311
6312         * sibcall.c (skip_copy_to_return_value): Call
6313         identify_call_return_value here, and return orig_insn if it
6314         returns zero.  Hardret and softret arguments now unnecessary.
6315         (call_ends_block_p): Don't call identify_call_return_value here.
6316
6317         * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or
6318         's' slots in RTXen.
6319         * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function.
6320         * ggc.h (ggc_mark_if_gcable): Delete prototype.
6321
6322 Mon Feb 19 20:30:16 2001  Jeffrey A Law  (law@cygnus.com)
6323
6324         * pa.c (move_operand): Accept code to load the address of a
6325         symbol out of the DLT as a valid move operand.
6326         (print_operand, case 'A'): New to handle generating a DLT
6327         reference for a LO_SUM expression.
6328         * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references.
6329         * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references.
6330
6331 2001-02-19  Joseph S. Myers  <jsm28@cam.ac.uk>
6332
6333         * README, cpp.texi, gcc.texi, version.c: Update version number to
6334         3.1.
6335         * cpp.1, gcov.1, gcc.1: Regenerate.
6336
6337 2001-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
6338
6339         * cppfiles.c (stack_include_file): Generate dependencies
6340         here, and manage include_count here too.
6341         (PRINT_THIS_DEP): Delete.
6342         (_cpp_execute_include): Do not generate dependencies here,
6343         apart from the case of a missing header.  Do not manage
6344         include_count.
6345         (_cpp_read_file): Leave dependency generation to
6346         stack_include_file.
6347
6348 Mon Feb 19 10:17:47 2001  Jeffrey A Law  (law@cygnus.com)
6349
6350         * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to
6351         target_cpu_default.  Remove dead assignment to
6352         target_cpu_default.
6353
6354 Mon Feb 19 16:47:39 CET 2001  Jan Hubicka  <jh@suse.cz>
6355
6356         * regclass.c (contains_reg_of_mode): Make global.
6357         (init_reg_sets): Remove contains_reg_of_mode; take into account
6358         CLASS_MAX_NREGS when looking for the proper mode.
6359         (dump_regclass): Dump only classes considered for the pseudo.
6360         (regclass): Use contains_reg_of_mode.
6361
6362 Mon Feb 19 16:45:42 CET 2001  Jan Hubicka  <jh@suse.cz>
6363
6364         * gcc.c (do_spec_1): 'n' for printing notices.
6365         * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated.
6366
6367 Mon Feb 19 15:51:30 CET 2001  Jan Hubicka  <jh@suse.cz>
6368
6369         * reg-stack.c (next_flags_user): Use current_block->end
6370         (swap_rtx_condition): Look for next user if flags don't die;
6371         give up on CALL_INSNs; use current_block->end.
6372
6373 Mon Feb 19 08:27:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6374
6375         * sibcall.c (call_ends_block_p): New function.
6376         (optimize_sibling_and_tail_recursive_call): Use it.
6377
6378 2001-02-18  Kazu Hirata  <kazu@hxi.com>
6379
6380         * config/h8300/h8300.md: Update copyright.
6381         (andsi3): Do not output an extra newline character.
6382
6383 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6384
6385         * toplev.c (note_deferral_of_defined_inlined_function): Argument
6386         FNDECL may be unused.
6387
6388         * toplev.c (rest_of_compilation): Don't have CSE skip blocks or
6389         follow jumps after first run.
6390         If -fexpensive-optimizations rerun CSE after GCSE and iterate until
6391         it doesn't change any jumps.
6392
6393 Sun Feb 18 17:05:50 2001  Jeffrey A Law  (law@cygnus.com)
6394
6395         * Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
6396         ($HOST_PREFIX_1)rtlanal.o: Remove rules for building
6397         (mostlyclean): Corresponding changes.
6398         * rtlanal.c (hard-reg-set.h): Include.
6399         (rtx_unstable_p): Do not treat the argument pointer specially
6400         if it is not a fixed register.
6401         (rtx_varies_p, rtx_addr_can_trap_p): Similarly.
6402
6403 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6404
6405         * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare
6406         against last real insn in basic block.
6407         Rework to avoid gotos.
6408
6409         * Makefile.in (gcse.o): Now includes ggc.h.
6410         * gcse.c: Include ggc.h.
6411         (want_to_gcse_p): Verify expression can be in SET as valid insn.
6412         (try_replace_reg): Remove warning of uninitialize variable.
6413         (process_insert_insn): Call invalid_insn_p to validate insn.
6414         * recog.c (insn_invalid_p): Now global.
6415         See if can make valid by adding CLOBBERs of SCRATCH only and do if so.
6416         * recog.h (insn_invalid_p): New declaration.
6417
6418         * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap.
6419
6420         * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
6421         assignments from FP constants since 'Y' output code can't handle it.
6422         (eligible_for_sibcall_delay): Likewise.
6423
6424         * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
6425         Call fancy_abort directly, passing args.
6426         (print_rtl_and_abort): Now a macro, like fancy_abort.
6427
6428         * final.c (output_operand_lossage): Use internal_error, not error.
6429
6430 2001-02-18  Shane Nay  <shane@agendacomputing.com>
6431
6432         * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to
6433         structure shift insns.
6434
6435 2001-02-18  Mark Mitchell  <mark@codesourcery.com>
6436
6437         * invoke.texi (-fsquangle): Remove documentation.
6438         (-fname-mangling-version): Likewise.
6439
6440 2001-02-18  Lars Brinkhoff  <lars@nocrew.org>
6441
6442         * optabs.c (expand_abs): Remove reference to
6443         HAVE_contitional_arithmetic.
6444         * combine.c (simplify_set): Likewise.
6445
6446 2001-02-18  Richard Henderson  <rth@redhat.com>
6447
6448         * ifcvt.c (dead_or_predicable): Don't move code if eh regions
6449         would be disrupted.
6450
6451 2001-02-18  Richard Henderson  <rth@redhat.com>
6452
6453         * config/ns32k/ns32k.h (ADJSP): Upcase arguments.
6454
6455         * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name.
6456
6457         * reload1.c (reload_cse_simplify_set): Fix typo.
6458
6459 Sun Feb 18 09:30:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6460
6461         * diagnostic.c (_fatal_insn): Decrement errorcount.
6462
6463         * invoke.texi (-I): Add note avoiding use for system header files.
6464
6465         * rtl.h (add_clobbers): Remove duplicate declaration.
6466         * recog.h (added_clobbers_hard_reg_p): New declaration.
6467         * genemit.c (struct clobber_pat): New field has_hard_reg.
6468         (gen_insn): Record if added clobbers clobber hard reg.
6469         (gen_split): Avoid unused warning if number of operands is 0.
6470         (output_added_clobbers_hard_reg_p): New function.
6471         (main): Call it.
6472
6473 2001-02-18  Alan Modra <alan@linuxcare.com.au>
6474
6475         * pa.c (hppa_expand_prologue): Simplify code storing return
6476         pointer.  For large (>=8k) frames with a post_store, adjust stack
6477         pointer by 8k-64 first rather than by 64.  When testing with
6478         VAL_14_BITS_P, always use the actual value rather than the value
6479         negated.  Add blockage to prevent scheduling of spills before
6480         stack frame has been created.
6481         (hppa_expand_epilogue): Simplify code loading return pointer.
6482         Allow a slightly larger range for merge_sp_adjust_with_load case.
6483         When testing with VAL_14_BITS_P, always use the actual value.
6484
6485         * pa.c (pa_adjust_insn_length): Check that block move
6486         pattern is a set before looking at operands.
6487
6488 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
6489
6490         * fold-const.c (fold_binary_op_with_conditional_arg): New
6491         function, split out from ...
6492         (fold): ... here.
6493         * tree.def (COND_EXPR): Document the use of VOID_TYPE for
6494         conditional arms that throw exceptions.
6495
6496         * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not
6497         looking at a BLOCK.
6498
6499 2001-02-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6500
6501         * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test,
6502         define HAVE_DECL_* to 1 to mask potential backup declarations.
6503         * configure: Regenerated.
6504
6505 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
6506
6507         * invoke.texi (-Woverloaded-virtual): Clarify documentation.
6508
6509 2001-02-17  Richard Henderson  <rth@redhat.com>
6510
6511         * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP
6512         when replacing a memory load with a register.
6513
6514 Sat Feb 17 14:48:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6515                           Jan Hubicka  <jh@suse.cz>
6516
6517         * recog.c (validate_replace_src_1): New.
6518         (validate_replace_src_data): Likewise.
6519         (validate_replace_src): Use note_uses.
6520         * rtl.h (note_uses): Declare.
6521         * rtlanal.c (note_uses): New.
6522
6523 Sat Feb 17 10:52:34 CET 2001  Jan Hubicka  <jh@suse.cz>
6524
6525         * reg-stack.c (stack_def): Make field reg unsigned.
6526         (remove_regno_note): Unsignetize parameter.
6527
6528 2001-02-16  Jes Sorensen  <jes@linuxcare.com>
6529
6530         * ia64.c (errata_emit_nops): Add VOIDmode as second argument to
6531         shladd_operand() call.
6532
6533 2001-02-16  Bruce Korb  <bkorb@gnu.org>
6534             Rodney Brown  <RodneyBrown@mynd.com>
6535
6536         * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7.
6537         * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching
6538         machine restrictions
6539         * fixinc/fixincl.x: regen
6540
6541 Fri Feb 16 12:41:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6542
6543         * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
6544         Don't CSE a nop.
6545         (hash_scan_insn): Clean up calls to hash_scan_set.
6546         (compute_kill_rd): REGNO now unsigned.
6547         (try_replace_reg): Rework to use simplify_replace_rtx.
6548         (cprop_jump, cprop_cc0_jump): Likewise.
6549         (cprop_insn): Call find_reg_equal_equiv_note.
6550         Reflect changes to cprop_jump and cprop_cc0_jump.
6551
6552         * recog.c (validate_replace_src): Replace in operands of
6553         ZERO_EXTRACT in SET_DEST.
6554
6555         * cse.c (new_label_ref): New variable.
6556         (insert): Set it instead of recorded_label_ref.
6557         (cse_basic_block): Set recorded_label_ref if new_label_ref use, has
6558         CODE_LABEL for this function, and not already in REG_LABEL note.
6559
6560 2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
6561
6562         * resource.c (mark_referenced_resources): Fix typo in introductory
6563         comment.
6564         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in
6565         string constant.
6566
6567 2001-02-16  Jason Merrill  <jason@redhat.com>
6568
6569         * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is
6570         NULL.
6571         (gen_subprogram_die): Don't abort on seeing a second definition if
6572         the previous one was abstract.  Don't replace an abstract instance
6573         in the lookup table.
6574
6575         * dwarf2out.c (dwarf2out_abstract_function): Rename from
6576         gen_abstract_function.
6577         * dwarf2out.h: Declare it.
6578         * toplev.c (note_outlining_of_inline_function): New fn.
6579         * toplev.h: Declare it.
6580         * integrate.c (output_inline_function): Call it.
6581         * c-decl.c (duplicate_decls): Call it when redefining an extern
6582         inline.  Don't inline the new defn.
6583
6584         * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
6585
6586 2001-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6587
6588         * .gdbinit: Rename to gdbinit.in.
6589         * gdbinit.in: New file,
6590         * configure.in: Generate .gdbinit from gdbinit.in.
6591         * configure: Regenerated.
6592         * Makefile.in (distclean): Always remove .gdbinit.
6593
6594 2001-02-16  Jakub Jelinek  <jakub@redhat.com>
6595
6596         * objc/objc-act.c (start_class): Register implemented_classes with
6597         GC.
6598
6599 2001-02-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6600
6601         * cppfiles.c (_cpp_make_system_header): Generate a file
6602         change callback.
6603
6604 2001-02-15  Jim Meyering  <meyering@lucent.com>
6605
6606         * Makefile.in (install-common): Don't depend on installdirs here.
6607         Instead, make each of the lang.install-common targets (e.g.,
6608         c++.install-common in cp/Make-lang.in) depend on it.
6609         (install-driver): Depend on installdirs.
6610
6611 Thu Feb 15 21:30:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6612
6613         * flow.c (tidy_fallthru_edge): Never end block on line number NOTE.
6614
6615         * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we
6616         do in memory.
6617
6618 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
6619
6620         * invoke.texi (--param): Document.
6621
6622 Thu Feb 15 15:16:38 2001  Alexandre Oliva  <aoliva@redhat.com>
6623
6624         * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define.
6625
6626 Thu Feb 15 10:52:31 CET 2001  Jan Hubicka  <jh@suse.cz>
6627
6628         * i386.md (extendsfdf2_2): Fix constraints.
6629
6630 Thu Feb 15 09:46:21 CET 2001  Jan Hubicka  <jh@suse.cz>
6631
6632         * i386.md (fop_df_3 splitter): Fix operand number.
6633
6634 Wed Feb 14 12:37:37 CET 2001  Jan Hubicka  <jh@suse.cz>
6635
6636         * invoke.texi (-mreg-alloc): Nuke.
6637         * i386.c (ix86_reg_alloc_order, regs_allocated,
6638         order_regs_for_local_alloc): Nuke.
6639         (override_options): Kill reg_alloc code.
6640         * i386.h (TARGET_OPTIONS): Kill reg-alloc.
6641         (REG_ALLOC_ORDER): SSE goes before I387.
6642         (ORDER_REGS_FOR_LOCAL_ALLOC): Kill.
6643         (ix86_reg_alloc_order): Likewise.
6644         * i386-protos.h (ix86_reg_alloc_order): Kill.
6645
6646 2001-02-14  Richard Henderson  <rth@redhat.com>
6647
6648         * toplev.c (f_options): Clarify -fschedule-insns2 documentation.
6649
6650 Wed Feb 14 11:59:58 CET 2001  Jan Hubicka  <jh@suse.cz>
6651
6652         * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes
6653
6654 Wed Feb 14 11:12:38 CET 2001  Jan Hubicka  <jh@suse.cz>
6655
6656         * i386-protos.h (ix86_memory_move_cost): Move offline.
6657         * i386.c (ix86_register_move_cost): Compute properly cost of
6658         SSE, MMX and i387 instructions.
6659         (*_cost): Add costs of SSE/MMX moves.
6660         (ix86_memory_move_cost): Move offline from ....; Likewise.
6661         * i386.h (MEMORY_MOVE_COST): .... here;
6662         (struct processor costs): Add new fields to represent costs
6663         of SSE/MMX moves.
6664
6665 Wed Feb 14 10:08:26 CET 2001  Jan Hubicka  <jh@suse.cz>
6666
6667         * regclass.c (init_reg_sets_1): Reinstall the optimization of
6668         move_cost together with Matt Kraai's fix.
6669
6670 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
6671
6672         * Makefile.in (OBJS): Add params.o.
6673
6674 2001-02-14  Richard Henderson  <rth@redhat.com>
6675             DJ Delorie  <dj@redhat.com>
6676
6677         * jump.c (jump_optimize_1): When we delete a conditional jump
6678         preceeding a non-conditional jump to effectively the same place,
6679         make sure that the combined jump skips any clobber insns between
6680         the two labels.
6681
6682 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
6683
6684         * gcc.c (do_spec_1): Fix off-by-one error for '%M' case.
6685
6686 2001-02-14  Mark Mitchell  <mark@codesourcery.com>
6687
6688         * Makefile.in (toplev.o): Depend on params.h.
6689         (intergate.o): Likewise.
6690         (params.o): New target.
6691         * flags.h (inline_max_insns): Remove.
6692         * integrate.c: Include params.h.
6693         Use MAX_INLINE_INSNS instead of inline_max_insns.
6694         * params.c: New file.
6695         * params.h: Likewise.
6696         * params.def: Likewise.
6697         * toplev.c: Include params.h.
6698         (lang_independent_params): New variable.
6699         (decode_f_option): Use the param machinery instead of setting
6700         max_inline_insns.
6701         (independent_decode_option): Handle "--param name=value".
6702         (main): Register language-independent parameters.
6703
6704 Wed Feb 14 11:13:45 CET 2001  Jan Hubicka  <jh@suse.cz>
6705
6706         * i386.md (pushsf, pushdf_nointeger): Fix constraint.
6707
6708 2001-02-14  Richard Henderson  <rth@redhat.com>
6709
6710         * regclass.c (init_reg_sets_1): Revert last two changes.
6711
6712 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
6713
6714         * stor-layout.c (is_pending_size, put_pending_size): New functions.
6715         (variable_size): Call put_pending_size.
6716         * tree.h (is_pending_size, put_pending_size): Add prototypes.
6717         * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending
6718         sizes list, put newly created SAVE_EXPR there as well.
6719
6720 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
6721
6722         * config/ia64/ia64.c (last_group): Only 2 entries are needed.
6723         (errata_find_address_regs): load_group has only 2 entries.
6724         (errata_emit_nops): Likewise.  shladd is not problematic.
6725         Clear last_group if nop was emitted.
6726         (fixup_errata): load_group has only 2 entries.
6727         Optimize.
6728
6729 2001-02-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6730
6731         * c-lex.c (lex_number): Only warn traditionally for U suffix
6732         outside system macros.
6733         * cppexp.c (parse_number): Similarly.
6734         * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New.
6735         * cppmacro.c (struct cpp_macro): New member node.
6736         (parse_args): Only warn about missing rest args if not
6737         a system macro.
6738         (funlike_invocation_p): Similarly for uninvoked funlike macros.
6739         (cpp_sys_objmacro_p): New.
6740         (_cpp_create_definition): Store the node with the macro defn.
6741         Remember if the macro is defined in a system header.
6742
6743 2001-02-13  DJ Delorie  <dj@redhat.com>
6744
6745         * configure.in (check_languages): determine languages to check
6746         * Makefile.in (check-c++): alias for check-g++
6747         (check-f77): alias for check-g77
6748         (CHECK_TARGETS): depend on configured languages
6749
6750 Wed Feb 14 01:13:59 CET 2001  Jan Hubicka  <jh@suse.cz>
6751
6752         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
6753         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
6754         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
6755         (sqrtextendsfdf2): Disable for SSE2.
6756
6757 Wed Feb 14 00:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
6758
6759         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
6760         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
6761         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
6762         (sqrtextendsfdf2): Disable for SSE2.
6763
6764 Wed Feb 14 00:11:20 CET 2001  Jan Hubicka  <jh@suse.cz>
6765
6766         * i386.md (movsfcc_1): Support integer cmove instruction.
6767         (movdfcc_1): Likewise; new splitter.
6768
6769 Tue Feb 13 23:19:27 CET 2001  Jan Hubicka  <jh@suse.cz>
6770
6771         * i386.c (output_fp_compare): Support SSE.
6772         (prepare_fp_compare_args): SSE comparisons always support memory.
6773         * i386.h (TARGET_CMOVE): SSE imply cmove.
6774         * i386.md (cmp?f2): Enable for SSE too.
6775         (cmpfp_i*): Support SSE.
6776         (cmpfp_i_sse): New.
6777         (cmpfp_i_sse_only): New.
6778         (s*, b* fp expanters): Enable for SSE too.
6779         (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only):
6780         New patterns.
6781
6782 Tue Feb 13 23:05:42 CET 2001  Jan Hubicka  <jh@suse.cz>
6783
6784         * regclass.c (init_reg_sets_1): Silence warning.
6785
6786 Tue Feb 13 22:03:07 CET 2001  Jan Hubicka  <jh@suse.cz>
6787
6788         * i386.md (sqrt?f2): Change to expander.
6789         (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New.
6790
6791 Tue Feb 13 15:42:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6792
6793         * rtlanal.c (find_reg_equal_equiv_note): New function.
6794         * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns.
6795         (simplify_gen_relational, simplify_replace_rtx): Likewise.
6796         * rtl.h: Add declarations for above functions.
6797
6798 Tue Feb 13 21:09:11 CET 2001  Jan Hubicka  <jh@suse.cz>
6799
6800         * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
6801         conditionals.
6802         * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
6803         * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
6804         * flow.c (mark_regs_live_at_end): Likewise.
6805         (calculate_global_regs_live): Likewise.
6806         * gcse.c (compute_hash_table): Likewise.
6807         (compute_kill_rd): Likewise.
6808         * resource.c (mark_target_live_regs): Likewise.
6809         * rtl.h (INVALID_REGNUM): New macro.
6810
6811 Tue Feb 13 20:59:22 CET 2001  Jan Hubicka  <jh@suse.cz>
6812
6813         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch.
6814
6815 Tue Feb 13 16:32:20 CET 2001  Jan Hubicka  <jh@suse.cz>
6816
6817         * i386.md (fixsfsi2, fixdfdi2): Force operand to register
6818         for SSE.
6819
6820 Tue Feb 13 14:53:16 CET 2001  Jan Hubicka  <jh@suse.cz>
6821
6822         * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2)
6823         too.
6824         (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE.
6825         (fop_sf_comm_sse, fop_df_comm_sse): New patterns.
6826         (fop_sf_1_sse, fop_df_1_sse): New patterns
6827         (fop_*): Disable float_extend and float patterns for SSE compilation.
6828         * i386.c (output_387_binary_op): Support SSE.
6829
6830 Tue Feb 13 14:16:34 CET 2001  Jan Hubicka  <jh@suse.cz>
6831
6832         * i386.md (dummy_extendsfdf2): Support SSE2
6833         (extendsfdf2): Enable if 80387 or SSE2.
6834         (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble
6835         and no MIX_I387_SSE2
6836         (extendsfdf2_1_sse_only): New pattern.
6837         (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version
6838         of SSE.
6839         (truncdfsf2_1): Support SSE.
6840         (truncdfsf2_2): Support SSE.
6841         (truncdfsf2_2_1_sse): New pattern.
6842         (fixtruncsfsi2): Always use SSE if available.
6843         (fix_truncsfsi_sse): New pattern.
6844         (fix_truncdfsi_sse): New pattern.
6845         (floatsis?f2): Support SSE.
6846         (floatsidf2_i387): New pattern.
6847         (floatsidf2_sse): Likewise.
6848
6849 Tue Feb 13 07:52:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6850
6851         * configure.in: Use "have_gnat" variable, not "gnat".
6852         * configure: Regenerated.
6853
6854         * config/sparc/sparc.c (function_value): Treat all non-record
6855         aggregate types like used to treat UNION_TYPE.
6856
6857 Tue Feb 13 13:31:33 CET 2001  Jan Hubicka  <jh@suse.cz>
6858
6859         * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG
6860         * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber
6861         (MASK_SSE2): New.
6862         (MASK_MIX_SSE_I387): New.
6863         (TARGET_SSE): SSE2 imply SSE.
6864         (TARGET_SSE2, TARGET_MIX_SSE_I387): New.
6865         (TARGET_SWITCHES): Add "sse2", "mix-sse-i387".
6866         (enum reg_class): Add new classes.
6867         (REG_CLASS_NAMES): Likewise.
6868         (REG_CLASS_CONTENTS): Likewise.
6869         (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros.
6870         (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is
6871         supported. Add 'Y' to be SSE_REGS when SSE2 is supported.
6872         (CLASS_MAX_NREGS): Use new macros.
6873         (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED.
6874         * i386.md (pushsf, movsf): Support SSE.
6875         (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update
6876         splitters to use ANY_FP_REGNO_P.
6877         (movdf_nointeger, movdf_integer): Likewise.
6878
6879 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
6880
6881         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro.
6882         (try_combine): Use it.
6883
6884 Tue Feb 13 11:37:06 CET 2001  Jan Hubicka  <jh@suse.cz>
6885
6886         * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P,
6887         MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros.
6888         (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline.
6889         (REGISTER_MOVE_COST): Likewise.
6890         * i386-protos.h (ix86_secondary_memory_needed,
6891         ix86_preferred_reload_class, ix86_register_move_cost): Declare.
6892         * i386.c (ix86_secondary_memory_needed,
6893         ix86_preferred_reload_class, ix86_register_move_cost): New function.
6894
6895 Die Feb 13 11:04:25 CET 2001  Jan Hubicka  <jh@suse.cz>
6896
6897         * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New.
6898         (HARD_REGNO_MODE_OK): Move offline to ....
6899         * i386.c (ix86_hard_regno_mode_ok) ... here;
6900         refuse all incorrect modes.
6901         * i386-protos.h (ix86_hard_regno_mode_ok): Declare.
6902
6903 2001-02-13  Richard Henderson  <rth@redhat.com>
6904
6905         * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
6906         entire operator; replicate that and match_dup the operands.
6907         (cmp_ccx_arith_op_set): Likewise.
6908         (cmp_cc_arith_op_not_set): Likewise.
6909         (cmp_ccx_arith_op_not_set): Likewise.
6910
6911 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
6912
6913         * explow.c (trunc_int_for_mode): Sign-extend value to mode.
6914
6915 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
6916
6917         * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
6918         (TARGET_NO_BITFIELD_WORD): New macro.
6919         (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options.
6920         (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD.
6921
6922 Mon Feb 12 18:13:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6923
6924         * cselib.c: New file, from simplify-rtx.c.
6925         * simplify-rtx.c: Remove cselib parts.
6926         * Makefile.in: Add cselib.o.
6927
6928 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
6929
6930         * config/rs6000/rs6000.c (rs6000_float_const): Remove warning.
6931         (setup_incoming_varargs): Remove warning.
6932
6933         * config/rs6000/rs6000.c (validate_condition_mode): When
6934         flag_fast_math, allow floating-point conditionals to be reversed.
6935         (rs6000_generate_compare): When flag_fast_math, don't generate
6936         cror operations for FP conditionals.
6937
6938         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
6939         -mcall-i960.
6940         (ASM_SPEC): Likewise.
6941         (CC1_ENDIAN_LITTLE_SPEC): Likewise.
6942         (CC1_SPEC): Likewise.
6943         (LINK_TARGET_SPEC): Likewise.
6944         (CPP_ENDIAN_SPEC): Likewise.
6945         * Makefile.in (check-consistency): New target.
6946
6947 2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6948
6949         * c-decl.c (grokdeclarator): In C99 mode, give the more specific
6950         "return type defaults" warning for functions with return type
6951         defaulting to int.
6952         * c-lang.c (c_init): In C99 mode, enable warnings for implicit
6953         function declarations by default rather than only when pedantic.
6954
6955 Mon Feb 12 17:28:48 CET 2001  Jan Hubicka  <jh@suse.cz>
6956
6957         * regclass.c (init_reg_sets_1): Optimize calculation of move_cost
6958         arrays.
6959
6960 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6961
6962         * extend.texi (Deprecated): Deprecate new initializer lists.
6963
6964 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6965
6966         * mkdeps.c (deps_add_default_target): Robustify. Add
6967         basename component only.
6968         * cpp.texi (-M): Describe how default target is generated.
6969         * invoke.texi (-M): Likewise.
6970
6971 2001-02-12  Kazu Hirata  <kazu@hxi.com>
6972
6973         * toplev.c (push_float_handler): Remove.
6974         (pop_float_handler): Remove.
6975         * toplev.h: Remove prototypes for the above functions.
6976
6977 2001-02-12  Jakub Jelinek  <jakub@redhat.com>
6978
6979         * c-common.c (constant_fits_type_p): New function.
6980         (convert_and_check): Use it.
6981
6982 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
6983
6984         * Makefile.in (GXX_ABI_FLAG): Don't define.
6985         * configure.in (--enable-new-gxx-abi): Remove option.
6986         * config.in: Regenerated.
6987         * configure: Likewise.
6988
6989 2001-02-12  Alexandre Oliva  <aoliva@redhat.com>
6990
6991         * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular
6992         basic block.
6993         (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a
6994         regular basic block, and arrange for all edges into it to switch
6995         to normal mode.
6996
6997 2001-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6998
6999         * Makefile.in (distclean): Do not remove .gdbinit.
7000
7001 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
7002
7003         * Makefile.in (gcc.o): Fix typos.
7004         (protize.o): Likewise.
7005         (unprotoize.o): Likewise.
7006
7007 2001-02-11  Richard Henderson  <rth@redhat.com>
7008
7009         * tree.c (build1): Check for null operand in last change.
7010
7011 2001-02-11  Richard Henderson  <rth@redhat.com>
7012
7013         * fold-const.c (split_tree): Don't assume a constant isn't splittable.
7014         (fold): Don't assume a constant isn't foldable.
7015         * tree.c (build): Set TREE_CONSTANT for an expression with no
7016         side-effects and constant operands.
7017         (build1): Likewise.
7018
7019 2001-02-10  Richard Henderson  <rth@redhat.com>
7020
7021         * jump.c (squeeze_notes): Revert 2000-05-12 change.
7022
7023 2001-02-10  Anthony Green  <green@redhat.com>
7024
7025         * cpp.texi (Standard Predefined): Add documentation for
7026         __OPTIMIZE_SIZE__.
7027
7028         * c-common.c (combine_strings): Improve warning message.
7029
7030 2001-02-10  Geoffrey Keating  <geoffk@redhat.com>
7031
7032         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for
7033         --oformat.
7034         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise.
7035
7036 Fri Feb  9 15:05:27 2001  Christopher Faylor <cgf@cygnus.com>
7037
7038         * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for
7039         CYGWIN_CROSS_DIR.
7040
7041 2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
7042
7043         * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set
7044         fp_mode attribute.
7045
7046 2001-02-09  Nick Clifton  <nickc@redhat.com>
7047
7048         * config/arm/arm.md: Change output contraint on post inc
7049         load/store multiple patterns to be a read/write contraint.
7050
7051 2001-02-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7052
7053         * gcc.c (cpp_options): Delete .d files on error.  Don't delete
7054         .o files when using the -M options.
7055
7056 2001-02-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7057             David Edelsohn  <edelsohn@gnu.org>
7058
7059         * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to
7060         handle DImode constants.  Use one TOC entry for SImode and smaller
7061         constants, aligned properly.
7062
7063 2001-02-08  Jason Merrill  <jason@redhat.com>
7064
7065         * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend
7066         about the SP adjustment for saving the static chain pointer.
7067         * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified
7068         offset when setting a temporary CFA register.
7069
7070 2001-02-08  Chandrakala Chavva  <cchavva@redhat.com>
7071
7072         * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*,
7073         powerpc-*-chorusos* .
7074         * config/rs6000/chorus.h : New file.
7075         * config/i386/chorus.h : New file.
7076         * config/sparc/chorus.h : New file.
7077         * config/sparc/t-chorus-elf : New file.
7078
7079 2001-02-08  David Edelsohn  <edelsohn@gnu.org>
7080
7081         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ...
7082         * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here.
7083         * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it.
7084         (__WCHAR_TYPE__): Correct macro name.
7085
7086 2001-02-08  Richard Henderson  <rth@redhat.com>
7087
7088         * config/i386/i386.c (ix86_frame_pointer_required): New.
7089         (ix86_setup_frame_addresses): New.
7090         (struct machine_funciton): Add accesses_prev_frame.
7091         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call
7092         ix86_frame_pointer_required.
7093         (SUBTARGET_FRAME_POINTER_REQUIRED): New.
7094         (SETUP_FRAME_ADDRESSES): New.
7095         * config/i386/i386-protos.h: Update.
7096         * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename
7097         from FRAME_POINTER_REQUIRED.
7098         * config/i386/svr3gas.h: Likewise.
7099         * config/i386/sysv3.h: Likewise.
7100         * config/i386/v3gas.h: Likewise.
7101
7102 2001-02-08  Richard Henderson  <rth@redhat.com>
7103
7104         * config/sparc/sparc.c (function_arg_record_value_3): Fix
7105         calculation of the number of integer registers required.
7106         (function_arg_record_value): Likewise.
7107
7108 2001-02-08  Jason Merrill  <jason@redhat.com>
7109
7110         * diagnostic.c (internal_error): Say "confused" after 1 error, not
7111         two.  Print file and line with "confused" message.
7112
7113         * dwarf2out.c (dwarf2out_line): Include filename in -dA output.
7114
7115 Thu Feb  8 11:21:28 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7116
7117         * rtlanal.c (remove_node_from_expr_list): Correctly update PREV.
7118
7119 2001-02-08  Bernd Schmidt  <bernds@redhat.com>
7120
7121         * final.c (cleanup_subreg_operands): The address of a MEM can
7122         contain SUBREGs.
7123
7124         * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p
7125         for asms, too.
7126
7127 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7128
7129         * gcc.texi (Incompatibilities): Update documentation of
7130         preprocessing numbers.
7131
7132 2001-02-07  Jakub Jelinek  <jakub@redhat.com>
7133
7134         * c-decl.c (finish_enum): Revert part of 2000-01-05 change.
7135
7136 2001-02-07  Mark Mitchell  <mark@codesourcery.com>
7137
7138         * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it.
7139
7140         * defaults.h (CPLUSPLUS_CPP_SPEC): New macro.
7141         * gcc.c (struct compiler): Add cpp_spec field.
7142         (input_file_compiler): New variable.
7143         (do_spec_1): Allow a particular compiler to handle `%C'
7144         specially.
7145         (main): Store the current compiler in input_file_compiler.
7146         * tm.texi (CPLUSPLUS_CPP_SPEC): Document.
7147
7148 2001-02-07  Zack Weinberg  <zack@wolery.stanford.edu>
7149
7150         * cpphash.h (struct spec_nodes): Add n_true and n_false.
7151         * cppinit.c (cpp_create_reader): Initialize them.
7152         (append_include_chain): cxx_aware arg might be unused.
7153         * cppexp.c (lex): In C++ mode, recognize 'true' and 'false'
7154         keywords and give them their phase 7 meaning.  Pedwarn about
7155         this unless '__bool_true_false_are_defined' is defined.
7156
7157 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
7158
7159         * lcm.c (optimize_mode_switching): Emit mode_set before the
7160         JUMP_INSN of an abnormal edge.
7161
7162 2001-02-07  Bernd Schmidt  <bernds@redhat.com>
7163
7164         * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as
7165         a scheduling barrier at the end.
7166
7167         * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document.
7168
7169 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
7170
7171         * config/sh/sh.md (reload_outsf): Removed.
7172         (movsf_ie): Introduce constraints for FPUL loads and stores.
7173         (reload_insf): Broaden the output constraint.
7174
7175         * config/elfos.h (INT_ASM_OP): Don't define it if it's already
7176         defined.
7177         * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
7178         ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.
7179
7180 2001-02-06  Chandrakala Chavva  <cchavva@redhat.com>
7181
7182         * final.c: Revert my previous changes.
7183         * output.h: Make profile_label_no extern.
7184         * config/rs6000/rs6000.c (output_profile_hook): Use standard functions
7185         for generating label.
7186
7187 2001-02-06  Laurynas Biveinis  <lauras@softhome.net>
7188
7189         * config/i386/djgpp.h: Add comments about standard paths.
7190         (MD_EXEC_PREFIX): Undefine before defining.
7191         (MD_STARTFILE_PREFIX): New.
7192
7193 2001-01-30  Bruce Korb  <bkorb@gnu.org>
7194
7195         fixinc/fixincl.c(process):  Emit error message only if appropriate :)
7196         (load_file): do not rely on load_file_data() to close file pointer
7197         fixinc/fixlib.c(load_file_data): do not close passed in file pointer
7198         fixinc/inclhack.def(irix_limits_const): add test_text
7199
7200 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7201
7202         * cppexp.c (parse_defined): Improve diagnostics for invalid
7203         syntax.
7204
7205 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7206
7207         * cppmacro.c (cpp_get_token): Avoid pasting after a builtin.
7208
7209 2001-02-06  Mark Mitchell  <mark@codesourcery.com>
7210
7211         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define.
7212         * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare.
7213         * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro.
7214         (rs6000_output_symbol_ref): New function.
7215         (output_toc): Use VTABLE_NAME_P.
7216
7217 Tue Feb  6 07:54:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7218
7219         * print-tree.c (print_node, case PARM_DECL):
7220         Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN.
7221
7222         * stor-layout.c (reference_types_internal): New variable.
7223         (internal_reference_types): New function.
7224         (layout_type, case REFERENCE_TYPE): Make Pmode if internal.
7225         * tree.h (internal_reference_types): New declaration.
7226
7227         * cse.c (find_best_addr): Fix typo in computing cost.
7228
7229 Mon Feb  5 21:56:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7230
7231         * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned
7232         and this is the sum of a pointer and a constant, we know the result
7233         did not overflow.
7234         (num_sign_bit_copies, case PLUS): Likewise.
7235         * explow.c (convert_memory_address): Remove opposite SUBREG.
7236         * function.c (instantiate_new_reg): New function (from common code).
7237         (instantiate_virtual_regs_1): Call it.
7238         For PLUS, handle if (plus (subreg (virt-reg) (const_int))
7239         if pointers sign- or zero-extend.
7240         * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND):
7241         If pointers extend unsigned, use inside of SUBREG.
7242         (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend.
7243
7244 2001-02-05  Benjamin Kosnik  <bkoz@redhat.com>
7245
7246         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target
7247         subdir of gcc_gxx_include_dir.
7248         (gcc_gxx_target_include_dir): Remove.
7249
7250 2001-02-05  Jeffrey Oldham  <oldham@codesourcery.com>
7251
7252         * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments.
7253         (dwarf2out_frame_debug_expr): Revise introductory comments to add
7254         a high-level description.
7255
7256 2001-02-05  Chandrakala Chavva  <cchavva@redhat.com>
7257
7258         * final.c: Move the declaration of profile_label_no to ...
7259         * output.h: ... here.
7260         * function.c (expand_function_start): Call PROFILE_HOOK.
7261         * config/rs6000/aix.h: Define PROFILE_HOOK.
7262         * config/rs6000/rs6000-protos.h: output_profile_hook new.
7263         * config/rs6000/rs6000.c (output_profile_hook): Define.
7264         (output_prolog): Do nothing for ABI_AIX as it is taken care by
7265         output_profile_hook.
7266         tm.texi : Explain new macro PROFILE_HOOK.
7267
7268 2001-02-06  Hans-Peter Nilsson  <hp@axis.com>
7269
7270         * extend.texi (Extended Asm): Do not say that semicolon is always
7271         a valid line-breaking character for GNU assemblers.  Use
7272         newline-tab as the most commonly supported syntax.  Use
7273         newline-tab rather than semicolon in multi-insn examples.
7274
7275 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7276
7277         * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias).
7278
7279 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7280             David Edelsohn  <edelsohn@gnu.org>
7281
7282         * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC
7283         code for AIX, even without flag_pic.
7284
7285 2001-02-05  Jakub Jelinek  <jakub@redhat.com>
7286
7287         * c-typeck.c (common_type): push and pop binding level around
7288         calling common_type on function parameters.
7289
7290 Mon Feb  5 14:30:37 2001  Christopher Faylor <cgf@cygnus.com>
7291
7292         * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter.
7293
7294 Mon Feb  5 11:23:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7295
7296         * config/mips/mips.c (override_options): Fix typo in last change.
7297         (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name.
7298         (mips_asm_file_end): Likewise; also pass more args to fatal_io_error.
7299
7300 2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
7301
7302         * invoke.texi (-fdump-class-layout): Document.
7303         (-fdump-translation-unit): Use `=' as filename separator.
7304
7305 2001-02-05  Mark Mitchell  <mark@codesourcery.com>
7306
7307         * Makefile.in (s-mlib): Don't build multilibs if
7308         --disable-multilib.
7309         (DRIVER_DEFINES): Adjust accordingly.
7310         (gcc.o): Likewise.
7311         (protoize.o): Likewise.
7312         (unprotoize.o): Likewise.
7313         * configure.in: Recognize --enable-multilib.
7314
7315 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
7316
7317         * Makefile.in (DRIVER_DEFINES): Fix quoting.
7318
7319         * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3.
7320         * configure.in: Remove --enable-libstdcxx_v3 support.
7321         * configure: Regenerated.
7322
7323 Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7324
7325         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
7326         Call abort instead of fatal.
7327         (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal.
7328         * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise.
7329         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise.
7330         (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise.
7331         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
7332         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise.
7333
7334         * diagnostic.h (set_internal_error_function): Renamed.
7335         * toplev.h (internal_error): Renamed from fatal.
7336         (pfatal_with_name): Deleted.
7337         (fatal_io_error): Now has printf-style arguments.
7338         * diagnostic.c (pfatal_with_name): Deleted.
7339         (fatal_io_error): Rework to have args in printf-style.
7340         (set_internal_error_function): Renamed from set_fatal_function.
7341         (internal_error): Renamed from fatal.
7342         (error_recursion, fancy_abort): Call internal_error instead of fatal.
7343         * dwarf2out.c (get_cfa_from_loc_descr): Likewise.
7344         * emit-rtl.c (gen_realpart, gen_imagpart): Likewise.
7345         * expr.c (check_max_integer_computation_mode, expand_expr): Likewise.
7346         * flow.c (verify_flow_info): Likewise.
7347         * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise.
7348         * config/mips/mips.c (save_restore_insns): Likewise.
7349
7350         * except.c (duplicate_eh_handlers): Call abort instead of fatal.
7351         * flow.c (verify_flow_info): Likewise.
7352         * config/arm/arm.c (thumb_load_double_from_address): Likewise.
7353         * config/avr/avr.c (pttreg_to_str, unique_section): Likewise.
7354         (avr_normalize_condition): Likewise.
7355         * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise.
7356         * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
7357         (limit_reload_class, double_reg_to_memory): Likewise.
7358         (print_operand_address, emit_1600_code_shift): Likewise.
7359         (gen_tst_reg, gen_compare_reg): Likewise.
7360         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise.
7361         * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare):
7362         Deleted.
7363         * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it.
7364
7365         * c-parse.in (methoddef): Call fatal_error instead of fatal.
7366         * objc/objc-act.c (build_ivar_chain): Likewise.
7367         * dwarfout.c (dwarfout_init): Call fatal_io_error instead of
7368         pfatal_with_name.
7369         * graph.c (clean_graph_dump_file): Likewise.
7370         * profile.c (init_branch_prob): Likewise.
7371         * objc/objc-act.c (objc_init): Likewise.
7372
7373         * config/arm/arm.c (arm_override_options): Make errors non-fatal.
7374         * config/avr/avr.c (avr_override_options): Likewise.
7375         * config/c4x/c4x.c (c4x_expand_prologue): Likewise.
7376         * config/dsp16xx/dsp16xx.c (function_prologue): Likewise.
7377         * config/h8300/h8300.c (h8300_init_once): Likewise.
7378         * config/mips/mips.c (override_options): Likewise.
7379         * config/i386/i386.c (override_options): Likewise, rework.
7380         * config/m68k/m68k.c (override_options): Likewise.
7381
7382         * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage
7383         instead of fatal.
7384         * config/mips/mips.c (print_operand): Likewise.
7385         * hash.c (hash_allocate): Don't check for failure returns from
7386         obstack functions that can't fail.
7387         (hash_table_init_n, hash_table_init): Likewise; also now return void.
7388         * hash.h (hash_table_init_n, hash_table_init): Now return void.
7389         * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call.
7390         (get_object_reference): Likewise.
7391
7392 2001-02-04  Nick Clifton  <nickc@redhat.com>
7393
7394         * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e,
7395         StrongARM1110, 10TDMI, and 1020T.
7396
7397 2001-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7398
7399         * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif.
7400
7401 2001-02-04  Alexandre Oliva  <aoliva@redhat.com>
7402
7403         * config/sh/sh.md (movdf load split): Pass register number to
7404         FP_OR_XD_REGISTER_P.
7405
7406 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
7407
7408         * cppinit.c (BC): New macro.
7409         (builtin_array): Add __GXX_WEAK__.
7410         * cpplib.h (builtin_type): Add BT_WEAK.
7411         * cppmacro.c (builtin_macro): Handle BT_WEAK.
7412         * defaults.h (SUPPORTS_ONE_ONLY): Define.
7413         * varasm.c (SUPPORTS_ONE_ONLY): Do not define.
7414
7415 2001-02-03  Jakub Jelinek  <jakub@redhat.com>
7416
7417         * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C.
7418
7419 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7420
7421         * cpphash.h: Rename _ALIGN POOL_ALIGN.
7422         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
7423
7424 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7425
7426         * cpphash.h: Rename ALIGN _ALIGN.
7427         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
7428
7429 Fri Feb  2 23:15:29 2001  Christopher Faylor <cgf@cygnus.com>
7430
7431         * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross
7432         compilation environment.
7433         * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow
7434         control over location of cygwin includes and libs.
7435
7436 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
7437
7438         * c4x.h (HARD_REGNO_CALL_PART_CLOBBERED): Fix typo.
7439
7440 2001-02-02  lars brinkhoff  <lars@nocrew.org>
7441
7442         * md.texi (Standard Names): remove reference to spur.md.
7443
7444 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
7445
7446         * c4x.h (IS_INT_CALL_SAVED_REG, IS_FLOAT_CALL_SAVED_REG): Define.
7447         (HARD_REGNO_CALL_PART_CLOBBERED): Use IS_FLOAT_CALL_SAVED_REG.
7448         (INITIAL_FRAME_POINTER_OFFSET, INITIAL_ELIMINATION_OFFSET): Likewise.
7449         * c4x.c (c4x_hard_regno_rename_ok): Use IS_XXX_CALL_SAVED_REG.
7450         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
7451
7452 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7453
7454         * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand,
7455         c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register
7456         number before reload.
7457         (c4x_adjust_cost): Return zero before reload.
7458         * c4x.md (load_immed_address+1, load_immed_address+2): Do not
7459         split before reload.
7460
7461 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7462
7463         * c4x.c (c4x_hard_regno_rename_ok): New.
7464         * c4x-protos.h (c4x_hard_regno_rename_ok): New.
7465         * c4x.h (HARD_REGNO_RENAME_OK): Define.
7466
7467 Fri Feb  2 20:03:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7468
7469         * diagnostic.h: Add missing "extern" in all declarations.
7470
7471 2001-02-02  Alex Samuel  <samuel@codesourcery.com>
7472
7473         * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically
7474         as for gcc_gxx_include_dir.
7475
7476 2001-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7477
7478         * cpp.texi, invoke.texi: Update -Wtraditional documentation.
7479
7480 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
7481
7482         * config/sh/sh.c (output_far_jump): Don't use braf on SH1.  Emit
7483         label before alignment to be used as the braf base address.
7484         * config/sh/sh.md (length): Use longer lengths for SH1 PIC far
7485         branches.
7486         (casesi_jump_2): Require at least TARGET_SH2.
7487
7488         * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent
7489         truncation to 32-bit doubles on -m3e and -m4-single-only.
7490
7491 2001-02-02  Mark Mitchell  <mark@codesourcery.com>
7492
7493         * gcc.c (init_gcc_specs): New function.  Make -shared-libgcc
7494         the default when building a shared object.
7495         (init_spec): Use it.
7496         * testsuite/lib/g++.exp: Include the directory where libgcc
7497         is located to the LD_LIBRARY_PATH list.
7498         * invoke.texi (-shared-libgcc): Document the cases in which
7499         GCC defaults to using the shared libgcc.
7500
7501 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
7502
7503         * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume
7504         unsigned is wide enough.
7505         (BITS_PER_SI): New.
7506         * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI.
7507         (si_to_float): Likewise.
7508         (float_to_si, float_to_usi): Use BITS_PER_SI.
7509
7510 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
7511
7512         * dwarf2out.c: Added explanation of abbreviations.
7513         (def_cfa_1): Added comments listing DWARF2 instructions.
7514         (cfa_temp_reg): Removed in favor of cfa_temp.
7515         (cfa_temp_value): Removed in favor of cfa_temp.
7516         (cfa_temp): New global variable.
7517         (dwarf2out_frame_debug_expr): Added extensive introductory
7518         comments explaining the function's transformations.  Revised to
7519         use cfa_temp.  Added some rtx checking.  Generalize IOR case.
7520         (dwarf2out_frame_debug): Revised to use cfa_temp.
7521         (output_aranges): Cast as "unsigned" to avoid warning.
7522         * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better
7523         explain which instructions must be marked.
7524
7525 2001-02-01  Richard Henderson  <rth@redhat.com>
7526
7527         * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
7528         new instruction.
7529
7530 2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
7531
7532         * config/sh/crt1.asm (main_k): Modified so that start calls
7533         ___setup_argv_and_call_main.
7534
7535 2001-02-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7536
7537         * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader.
7538         * cpplex.c (_cpp_lex_token): New token picks up the saved flags,
7539         and AVOID_LPASTE is cleared on meeting an unescaped newline.
7540         * cppmacro.c (builtin_macro): Set builtin flags here.
7541         (paste_all_tokens): Preserve AVOID_LPASTE on pasted token.
7542         (replace_args): Clarify intent.
7543         (cpp_get_token): Macro expansion tokens get the saved flags.
7544         Update.
7545         * cppmain.c (scan_buffer): Remove now-redundant print.printed
7546         check.
7547
7548 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
7549
7550         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of
7551         2001-Jan-29.
7552
7553 Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7554
7555         * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space
7556         returns Pmode pseudo, but we need ptr_mode.
7557         * explow.c (allocate_dynamic_stack_space): Use plus_constant.
7558         Remove bogus conversions; use HOST_WIDE_INT for size.
7559         Don't use TARGET if wrong mode.
7560
7561         * config/i386/i386.c (ix86_compute_frame_size): Allow
7562         stack_alignment_needed to be non-default even if size is zero.
7563
7564 2001-01-31  Alan Modra <alan@linuxcare.com.au>
7565
7566         * pa.c (hppa_init_pic_save): New function.
7567         * pa.h (hppa_init_pic_save): Declare.
7568         * pa.md (call, call_value, sibcall, sibcall_value): Use
7569         the above instead of duplicated code.
7570
7571         * pa.c (hppa_encode_label): Correct size of alloca buffer
7572         so we don't overrun it.  Correct leading `*' case.
7573         * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't
7574         need to handle `*@'.
7575         (FUNCTION_NAME_P): Likewise.
7576
7577 2001-01-31  Richard Henderson  <rth@redhat.com>
7578
7579         * config.gcc (alpha-osf5): Use float-i128.h.
7580
7581         * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define.
7582         * config/float-i32.h: Likewise.
7583         * config/float-i64.h: Likewise.
7584         * config/float-sh.h: Likewise.
7585         * config/float-sparc.h: Likewise.
7586
7587 2001-01-31  DJ Delorie  <dj@redhat.com>
7588
7589         * expmed.c (extract_bit_field): allow non-integral modes if we
7590         want to extract a whole register from itself.
7591
7592 2001-01-31  Jakub Jelinek  <jakub@redhat.com>
7593
7594         * c-typeck.c (set_init_index): If first is equal to last, assume as
7595         if it was not a range at all.
7596
7597 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
7598
7599         * config/fp-bit.c: Include tm.h.
7600         (float_to_si): Don't assume SImode is 32-bits wide.
7601         (float_to_usi): Likewise.
7602
7603 2001-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7604
7605         * c-parse.in (structsp): Pedwarn when "enum foo" refers to an
7606         incomplete type.
7607         (typename): Call pending_xref_error after parsing typed_typespecs.
7608         * c-decl.c (lookup_tag): Give error immediately rather than
7609         leaving it pending if the tag of the wrong type is in the same
7610         binding level.
7611         (xref_tag): Don't pedwarn for forward declarations of enum types
7612         here.
7613         * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union
7614         and enum tags.
7615
7616 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
7617
7618         * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo.
7619
7620 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7621
7622         * cpplib.c (T_ELIF): Move to STDC89, not that it matters.
7623         (_cpp_handle_directive): Suggest not using #elif with -Wtraditional.
7624
7625 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7626
7627         * cpphash.h (struct cpp_reader): New saved_flags.
7628         * cppmacro.c (cpp_get_token): Use saved_flags to remember
7629         to avoid a paste after a pasted token.
7630
7631 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
7632
7633         * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.
7634         * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use
7635         Wtype_MIN instead of LONG_MIN.
7636
7637 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
7638
7639         * fixinc/fixincl.tpl: Add 2001 to copyright.  Change name of
7640         README file.
7641         * fixinc/fixincl.x: Regenerated.
7642         * fixinc/inclhack.def (irix_limits_const): New definition to
7643         convert "const" to "__const" in limits.h.
7644
7645 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
7646
7647         * fixinc/genfixes (AG): Fix "autogen4" thinko.
7648
7649 2001-01-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
7650
7651         * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED
7652         when register dies in the insn.
7653
7654 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
7655
7656         * diagnostic.c (fatal): Fix word wrap.
7657
7658 2001-01-30  Alexandre Oliva  <aoliva@redhat.com>
7659
7660         * combine.c (try_combine): Fix SUBREG setting for
7661         HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD.
7662
7663 2001-01-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7664
7665         * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN
7666         comparison codes.
7667
7668 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
7669
7670         * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
7671         is not NULL.
7672         * toplev.c (decode_W_option): Update warn_larger_than
7673         unconditionally for each processed switch.
7674
7675 2001-01-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7676
7677         * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx
7678         to NULL_RTX.
7679         (hppa_expand_prologue): Delete code to save pic offset table register
7680         in the function prologue.
7681         * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment.
7682         * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset
7683         table register at the beginning of the function after the prologue.
7684
7685 2001-01-29  lars brinkhoff  <lars@nocrew.org>
7686
7687         * tm.texi (PUSH_ROUNDING): Remove duplicate lines.
7688
7689 2001-01-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7690             Jeff Law <law@redhat.com>
7691
7692         * pa.md (return): Revise comment for trivial return.
7693         (return_internal): Non-trivial return pattern for non-PIC code.
7694         (return_internal_pic): Non-trivial return pattern for PIC code.
7695         It uses the PIC register to ensure it is restored after
7696         function calls.
7697         (epilogue): Generate appropriate return for PIC and non-PIC code.
7698
7699 Mon Jan 29 23:53:14 2001  Christopher Faylor <cgf@cygnus.com>
7700
7701         * config/i386/cygwin.h: Fix -mno-cygwin search path for link.
7702
7703 2001-01-29  DJ Delorie  <dj@redhat.com>
7704
7705         * combine.c (if_then_else_cond): Pass the correct mode to
7706         operand_subword() for constants.
7707
7708 Mon Jan 29 20:38:19 2001  Christopher Faylor <cgf@cygnus.com>
7709
7710         * config/i386/cygwin.h: Add w32api to include search.  Search different
7711         directories in a cross-build environment.
7712
7713 2001-11-29  Tim Josling  <tej@melbpc.org.au>
7714
7715         * tree.h (TYPE_STUB_DECL): Add documentation.
7716
7717 2001-11-29  Laurynas Biveinis  <lauras@softhome.net>
7718
7719         * sdbout.c (sdbout_one_type): Skip types with indeterminate size.
7720         (sdbout_field_types): Likwise.  Fix use of host_integerp.
7721
7722 2001-01-29  Thomas Pfaff  <tpfaff@gmx.net>
7723
7724         * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in
7725         cygwin.h.
7726
7727 2001-01-29  Jeffrey Oldham  <oldham@codesourcery.com>
7728
7729         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition
7730         to use flag_gnu_linker.
7731
7732 2001-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7733
7734         * cpplib.c (T_BAD_DIRECTIVE): Remove.
7735         (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1.
7736
7737 2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
7738
7739         * tree.c, tree.h (build_parse_node): Remove; was identical to
7740         build_nt.
7741         * c-lang.c (start_cdtor), objc/objc-act.c
7742         (build_module_descriptor): Use build_nt instead of
7743         build_parse_node.
7744
7745 2001-01-29  Jakub Jelinek  <jakub@redhat.com>
7746
7747         * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI).
7748         (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does
7749         not have any upper bits set.
7750
7751 2001-01-29  Phil Edwards  <pme@sources.redhat.com>
7752
7753         * COPYING.LIB:  Update to LGPL 2.1 from the FSF.
7754
7755 2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7756
7757         * stmt.c (estimate_case_costs): Use integer_minus_one_node.
7758
7759         * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node.
7760
7761         * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE.
7762         (integer_minus_one_node): Define.
7763
7764 2001-01-28  Alexandre Oliva  <aoliva@redhat.com>
7765
7766         * Makefile.in (bootstrap2-lean): Fix typo.
7767
7768 2001-01-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7769
7770         * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash)
7771         : Don't set fe_value.
7772         * cpplib.h (AVOID_LPASTE): New flag.
7773         (struct cpp_hashnode): Remove fe_value.
7774         * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number.
7775         * cppmacro.c (builtin_macro): Don't set flags here.
7776         (replace_args): Set AVOID_LPASTE flag on first token of an
7777         argument, and the token following it.
7778         (cpp_get_token): Set AVOID_LPASTE flag on first token of a
7779         macro expansion, and on the token following it.  Do it for
7780         builtins too.
7781         * cppmain.c (scan_buffer): Avoid pasting only flagged tokens.
7782
7783 2001-01-27  Richard Henderson  <rth@redhat.com>
7784
7785         * config/alpha/t-ieee: Remove multilibbing.
7786         (TARGET_LIBGCC2_CFLAGS): Add -mieee.
7787
7788 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7789
7790         * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.
7791
7792         * Makefile.in: Remove all dependencies on defaults.h.
7793         * builtins.c: Don't include defaults.h.
7794         * c-common.c: Likewise.
7795         * c-decl.c: Likewise.
7796         * c-pragma.c: Likewise.
7797         * c-typeck.c: Likewise.
7798         * combine.c: Likewise.
7799         * i386.c: Likewise.
7800         * frame-ia64.c: Likewise.
7801         * cppexp.c: Likewise.
7802         * crtstuff.c: Likewise.
7803         * dbxout.c: Likewise.
7804         * dwarf2out.c: Likewise.
7805         * dwarfout.c: Likewise.
7806         * emit-rtl.c: Likewise.
7807         * except.c: Likewise.
7808         * expr.c: Likewise.
7809         * final.c: Likewise.
7810         * frame-dwarf2.c: Likewise.
7811         * libgcc2.c: Likewise.
7812         * optabs.c: Likewise.
7813         * profile.c: Likewise.
7814         * sdbout.c: Likewise.
7815         * toplev.c: Likewise.
7816         * tradcif.y: Likewise.
7817         * tree.c: Likewise.
7818         * varasm.c: Likewise.
7819
7820 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7821
7822         * builtins.c (expand_builtin_fputs): Use size_one_node when
7823         transforming into fwrite.
7824
7825 2001-01-27  Joseph S. Myers  <jsm28@cam.ac.uk>
7826
7827         * extend.texi (Attribute Syntax): New section.
7828
7829 2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
7830
7831         * fixproto: Correctly install synthesised unistd.h and stdlib.h when
7832         they didn't need fixing.
7833
7834 2001-01-27  Janis Johnson <janis@us.ibm.com>
7835
7836         * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h
7837         if appropriate.
7838         * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and
7839         to remove macro definitions that are duplicated from elfos.h.
7840
7841 2001-01-27  Richard Henderson  <rth@redhat.com>
7842
7843         * config/i386/sco5gas.h: Move ...
7844         * config/usegas.h: ... here.
7845         * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update.
7846
7847 2001-01-27  Jakub Jelinek  <jakub@redhat.com>
7848
7849         * c-typeck.c (struct constructor_stack): Add range_stack member.
7850         (really_start_incremental_init): Clear it.
7851         (push_init_level): Save constructor_range_stack and clear it if
7852         pushing explicit braces.
7853         (pop_init_level): abort if constructor_range_stack is non-zero at
7854         explicit closing brace.  Restore saved constructor_range_stack if
7855         not implicit.
7856
7857 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
7858
7859         * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded
7860         into register was forced into memory.
7861
7862 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
7863
7864         * Makefile.in: Remove uses of + before $(MAKE).
7865
7866 2001-01-26  Richard Henderson  <rth@redhat.com>
7867
7868         * stmt.c (cost_table): Remove.
7869         (COST_TABLE, cost_table_initialized): New.
7870         (estimate_case_costs): Use the later instead of the former.
7871         (balance_case_nodes): Likewise.
7872
7873 2001-01-26  Richard Henderson  <rth@redhat.com>
7874
7875         * alias.c (objects_must_conflict_p): Read-only slots may not
7876         conflict despite having the same type.
7877
7878 2001-01-27  Michael Hayes  <mhayes@redhat.com>
7879
7880         * loop.c (loop_giv_reduce_benefit): Copy mode size into
7881         int variable.
7882         (check_ext_dependant_givs): Initialise u_start_val and
7883         u_end_val.
7884         (load_mems): Make last_max_reg unsigned.
7885         (try_swap_copy_prop): Use INSN_P and initialise set.
7886
7887 Fri Jan 26 23:22:58 2001  Denis Chertykov  <denisc@overta.ru>
7888
7889         * README.AVR : Removed.
7890
7891 Fri Jan 26 11:37:26 2001  Jeffrey A Law  (law@cygnus.com)
7892
7893         * pa-64.h (text_section): Remove declaration.
7894
7895         * pa.md (return_internal): Remove mode on PIC register use.
7896
7897 2001-01-25  lars brinkhoff  <lars@nocrew.org>
7898
7899         * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN,
7900         ASM_CLOSE_PAREN): fix typos.
7901
7902 2001-01-25  Mark Mitchell  <mark@codesourcery.com>
7903
7904         * acconfig.h: Define `const' to the empty string if neither
7905         __STDC__ nor __cplusplus is defined.
7906         * config.in: Regenerated.
7907
7908 2001-01-25  David Edelsohn  <edelsohn@gnu.org>
7909
7910         * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h.
7911         * collect2.c (main): Delete importf.  Add ".obj" file extension.
7912         (GCC_CHECK_HDR): Handle AIX V5 new magic number.
7913         (aix_std_libs): Add additional AIX libraries to skip.
7914         * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number.
7915         * config/rs6000/aix51.h: New file.
7916
7917 2001-01-25  Michael Hayes  <mhayes@redhat.com>
7918
7919         * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New.
7920         (loop_insn_emit_before): No longer static.
7921         (move_movables): Replace emit_insn_after with loop_insn_emit_after.
7922         (loop_givs_rescan, load_mems): Likewise.
7923         (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before.
7924         (maybe_eliminate_biv_1):
7925         (move_movables): Replace emit_call_insn_before with
7926         loop_call_insn_hoist.
7927         * loop.h (loop_insn_emit_before): Add.
7928         * unroll.c (copy_loop_body): Replace emit_insn_before with
7929         loop_insn_emit_before.
7930
7931 2001-01-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7932
7933         * diagnostic.c (fatal): Request preprocessed source.
7934
7935 Thu Jan 25 02:01:16 2001  J"orn Rennecke <amylaar@redhat.com>
7936
7937         * c-decl.c (duplicate_decls): If different_binding_level is nonzero,
7938         olddecl has argument types and newdecl has none, use the argument
7939         types from olddecl.
7940
7941 2001-01-24  Ulrich Drepper  <drepper@redhat.com>
7942
7943         * dwarf2out.c (prefix_of): New function.  Determine longest common
7944         prefix of the two arguments.  The units are whole path components.
7945         (output_file_names): When adding a new directory find the one entry
7946         with the longest common prefix already in the list.  Artificially
7947         generate entry if there is none for this prefix.
7948         Fix test to check whether the zeroth directory entry is used.
7949
7950 Wed Jan 24 23:51:55 2001  J"orn Rennecke <amylaar@redhat.com>
7951
7952         * reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
7953         Changed all callers.  Take it into account when deciding if a
7954         previously loaded value matches.
7955
7956 2001-01-24  Richard Henderson  <rth@redhat.com>
7957
7958         * reload.c (find_reloads_subreg_address): Fail the substitution
7959         if the resulting address is insufficiently aligned.
7960
7961 2001-01-24  DJ Delorie  <dj@redhat.com>
7962
7963         * combine.c (combine_simplify_rtx): If the modes are all VOIDmode,
7964         check the original operand's mode also.
7965         * simplify-rtx.c (simplify_ternary_operation): Ditto.
7966
7967 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7968
7969         * c-parse.in (cast_expr): Move compound literals from here ...
7970         (primary): ... to here.  Use standard terminology "compound
7971         literal" instead of "constructor expression".
7972
7973 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7974
7975         * gcc.1, cpp.1: Regenerate.
7976
7977 2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
7978
7979         * calls.c (emit_library_call_value_1): Memory slot for
7980         pass-by-reference argument should have the mode of the argument,
7981         not of the pointer to it.
7982
7983 2001-01-24  Tom Tromey  <tromey@redhat.com>
7984
7985         * gcc.texi (G++ and GCC): Mention gcj manual.
7986         (Standards): Link to section of manual mentioning gcj/Java
7987         compatibility.
7988
7989 2001-01-24  Jakub Jelinek  <jakub@redhat.com>
7990
7991         * cppfiles.c (_cpp_read_file): Add to dependencies if requested.
7992         * cppinit.c (cpp_start_read): Remove deps_add_dep call.
7993         * tradcpp.c (main): Add -imacros or -include'd dependencies
7994         for -M*.
7995         * cpp.texi (-M, -MM): Document -M -include behaviour.
7996
7997 2001-01-24  Roger Collins <roger@ProProject.com>
7998
7999         * config/i386/xm-i386.h: Make __i386__ a boolean macro.
8000
8001 2001-01-24  Will Cohen  <wcohen@redhat.com>
8002
8003         * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account
8004         whether registers are 32 bits or 64 bits in size.
8005
8006 2001-01-24  Ben Elliston  <bje@redhat.com>
8007
8008         * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg.
8009
8010 2001-01-24  Richard Henderson  <rth@redhat.com>
8011
8012         * config/alpha/alpha.md (builtin_longjmp_internal): New.
8013         (builtin_longjmp): Use it instead of emit_indirect_jump.
8014
8015 2001-01-23  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8016
8017         * bb-reorder.c (make_reorder_chain_1): Handle case where
8018         jump edge goes to the same block as the fallthru edge.
8019
8020 2001-01-23  Jim Wilson  <wilson@redhat.com>
8021
8022         * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
8023         * frame.h (__ia64_personality_v1): Add prototype.
8024         * libgcc2.c (ia64_throw_helper): Change personality declaration to
8025         prototype form.  Add void * cast to first argument to personality
8026         call.
8027         * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs.
8028         (asctoe113): Likewise.
8029         * config/ia64/frame-ia64.c: Include eh-common.h.
8030         * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add
8031         prototypes.
8032         * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED
8033         to dump parameter.
8034         (itanium_split_issue): Add prototype.
8035         (gen_nop_type): Ifdef out.
8036         (find_best_packet): Initialize best_packet.
8037         (ia64_encode_section_info): New local string.  Use for ggc_alloc_string
8038         result.
8039         * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0.
8040         * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start.
8041         (flushrs): Add explicit stop bit at end.
8042         * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change
8043         trailing \ to >.
8044
8045 2001-01-23  Chris Demetriou  <cgd@broadcom.com>
8046
8047         * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
8048         of EH symbols.
8049         * libgcc2.c (__terminate_func): Make variable static.
8050         (__terminate_set_func): New function to set __terminate_func.
8051         * libgcc2.h (__terminate_func_ptr): New typedef.
8052         (__terminate_set_func): New function.
8053
8054 2001-01-23  Richard Henderson  <rth@redhat.com>
8055
8056         * flow.c (init_propagate_block_info): Don't consider unchanging
8057         memories for dead frame store elimination.
8058
8059 2001-01-23  Richard Henderson  <rth@redhat.com>
8060
8061         * varasm.c (UNIQUE_SECTION): Move default implementation ...
8062         * defaults.h: ... here.
8063
8064 2001-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8065
8066         * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define.
8067
8068 2001-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8069
8070         * c-lex.c (lex_charconst): Fix typo: s/p/str.
8071
8072 2001-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8073
8074         * rs6000.h (rs6000_return_addr): Move prototype from here...
8075         * rs6000-protos.h (rs6000_return_addr): ...to here.
8076         (rs6000_init_expanders): Delete prototype.
8077
8078 2001-01-23  Nick Clifton  <nickc@redhat.com>
8079
8080         * invoke.texi: Replace , with \, inside @gccoptlist macros.
8081         (Spec Files): Document %B and %j and %. and %v3 and %M and
8082         %{S*&T} spec switches.
8083
8084 2001-01-24  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8085
8086         * c4x.c (c4x_r11_set_p): Calculate rtx code correctly.
8087
8088 2001-01-23  Chris Demetriou  <cgd@sibyte.com>
8089             Neil Booth  <neil@daikokuya.demon.co.uk>
8090
8091         * cpperror.c: Merge handlers of PEDWARN and WARNING.
8092         Have -Werror make pedantic warnings errors, like the
8093         rest of GCC.
8094
8095 2001-01-23  Phil Edwards  <pme@sources.redhat.com>
8096
8097         * c-tree.texi (IDENTIFIER_LENGTH):  Fix typo.
8098
8099 2001-01-23  Jakub Jelinek  <jakub@redhat.com>
8100
8101         * integrate.h (struct inline_remap): Add compare_src, compare_mode.
8102         * integrate.c (expand_inline_function): Initialize them.
8103         (subst_constants): If changing COMPARE so that both its arguments
8104         will be VOIDmode and the comparison mode will be lost, note
8105         compare_mode.  Use the recorded compare_mode to optimize
8106         IF_THEN_ELSE.
8107
8108 2001-01-23  Jason Merrill  <jason@redhat.com>
8109
8110         * dwarf2out.c (new_die): Use xcalloc.
8111         (output_die): Abort rather than emit a local reference to offset 0.
8112
8113 2001-01-17  Andrew Haley  <aph@redhat.com>
8114
8115         * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy
8116         of a saved register; return NULL instead.
8117         (copy_reg): Take a pointer to a source register rather than a
8118         frame_state.
8119         (next_stack_level): Remember the address in the stack frame of all
8120         saved registers.
8121         Use the saved register pointer array as the source of the CFA.
8122         (throw_helper): Rewrite.  Unwind once rather than twice and keep
8123         track of saved registers as we go.
8124
8125 2001-01-23  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8126
8127         * c4x-protos.h (c4x_legitimize_reload_address): Remove.
8128         * c4x.c (c4x_legitimize_reload_address): Remove.
8129         * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct
8130         reload address for ldp(k) insn.
8131
8132 Mon Jan 22 20:53:47 2001  Jeffrey A Law  (law@cygnus.com)
8133
8134         * pa.md (return_internal): Add a USE of the PIC register to ensure
8135         it is restored after each call.
8136         (return expander): Corresponding changes.
8137
8138 2001-01-22  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8139
8140         * rs6000.h (INIT_EXPANDERS): Delete.
8141         (RETURN_ADDR_RTX): Call rs6000_return_addr().
8142         * rs6000.c (rs6000_override_options): Call *_machine_status from
8143         here...
8144         (rs6000_init_expanders): ...instead of here. Delete.
8145         (rs6000_mark_machine_status): New function.
8146         (rs6000_init_machine_status): Use xcalloc.
8147         (rs6000_return_addr): Generate RTX for the return address.
8148         (rs6000_ra_ever_killed): New, check if LR was ever destroyed.
8149         (rs6000_stack_info): Use it.
8150
8151 2001-01-22  Thomas Pfaff  <tpfaff@gmx.net>
8152
8153         * gthr-win32.h: Include errno.h to get a declaration for
8154         EINVAL and _mingw.h if the target is mingw32.
8155
8156 2001-01-22  Andres Felipe Vargas <avargas@teletulua.com.co>
8157
8158         * cpp.texi: Correct typos.
8159
8160 Mon Jan 22 13:59:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8161
8162         * explow.c (probe_stack_range): Ensure value passed to
8163         stack_check_libfunc is ptr_mode, not Pmode.
8164
8165 Mon Jan 22 16:53:06 2001  J"orn Rennecke <amylaar@redhat.com>
8166
8167         * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND
8168         case, don't use operand_subword to calculate a SUBREG that is
8169         wider than a word.
8170
8171         * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE.
8172
8173 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8174
8175         * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions.
8176         (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is
8177         valid.  If not replace it by equivalent insns.
8178
8179 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8180
8181         * c4x.c (c4x_check_legit_addr): Only check CONST.  Not if CONST
8182         contains SYMBOL_REF, LABEL_REF and CONST_INT.
8183         (c4x_U_constraint, symbolic_address_operand): Likewise.
8184         (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in
8185         memory.
8186         (c4x_r11_set_p, c4x_check_laj_p): New functions.
8187         * c4x-protos.h (c4x_check_laj_p): Add prototype.
8188         * c4x.md (in_annul_slot_3): Do not allow auto-increment in last
8189         anulling slot because of silicon bug.
8190         (laj, lajv): Call c4x_check_laj_p to check for silicon bug.
8191
8192 2001-01-22  Alan Modra <alan@linuxcare.com.au>
8193
8194         * cppexp.c (parse_charconst):  Change `mask' type to agree
8195         with parse_escape.
8196
8197 2001-01-21  Richard Henderson  <rth@redhat.com>
8198
8199         * config/i386/i386.c (ix86_asm_file_end): Disable putting
8200         pic_label_name in a linkonce section.
8201
8202 2001-01-17  Philipp Thomas  <pthomas@suse.de>
8203
8204         * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was
8205         found in libintl.
8206         * configure: Regenerate.
8207
8208 Sun Jan 21 02:38:56 2001  J"orn Rennecke <amylaar@redhat.com>
8209
8210         * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard
8211         uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks.
8212
8213 Sun Jan 21 09:44:17 2001  Denis Chertykov  <denisc@overta.ru>
8214
8215         * config/avr/avr.c (ret_cond_branch): New argument (reverse) added.
8216         If REVERSE nonzero then condition code in X must be reversed.
8217         (encode_section_info): Optimise if/else.
8218         (avr_function_value): Fix formatting.
8219
8220         * config/avr/avr.md (branch): Call to ret_cond_branch changed.
8221         (difficult_branch): Likewise.
8222         (rvbranch): Likewise.
8223         (difficult_rvbranch): Likewise.
8224
8225         * config/avr/avr-protos.h (ret_cond_branch): Prototype changed.
8226
8227         * config/avr/libgcc.S: Fix comment.
8228
8229 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
8230
8231         * sdbout.c (PUT_SDB_DEF): Fix after last bogus change.
8232
8233 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
8234
8235         * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting.
8236
8237 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
8238
8239         * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro.
8240         * configure.in (gcc_AC_FUNC_STRSTR): Add invokation.
8241         * configure, config.in: Regenerate.
8242         * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables.
8243         (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling.
8244         (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules.
8245         (doprint.o): New rule.
8246
8247 2001-01-20  Joseph S. Myers  <jsm28@cam.ac.uk>
8248
8249         * c-typeck.c (digest_init): Handle boolean types as scalars.
8250
8251 Sat Jan 20 12:46:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8252
8253         * stmt.c (expand_return): Don't return anything if size is zero.
8254         Delete redundant assignment to BYTES.
8255         * expr.c (move_block_from_reg): Do nothing if NREGS is zero.
8256
8257 2001-01-20  Marek Michalkiewicz  <marekm@linux.org.pl>
8258
8259         * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was
8260         the same as the default library function names.
8261         * config/avr/avr.md: Document special characters after '%'.
8262         (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves,
8263         knowing which of the call-used registers are really clobbered.
8264         (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4):
8265         New.  Both quotient and remainder from one libgcc.S call.
8266         * config/avr/libgcc.S: Optimize mul/divmod for the new insns above,
8267         clobber as few registers as possible.
8268         * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes.
8269
8270 2001-01-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8271
8272         * cppmacro.c (funlike_invocation_p): Don't move back up to the
8273         context of the top of the stack.
8274
8275 2001-01-20  Jakub Jelinek  <jakub@redhat.com>
8276
8277         * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling...
8278         (fixup_var_refs_insns): ...here.
8279
8280 2001-01-20  Zack Weinberg  <zack@wolery.stanford.edu>
8281
8282         * function.c (fixup_var_refs_insns): Break up into
8283         fixup_var_refs_insn [body of loop], fixup_var_refs_insns
8284         [loop over entire insn list], and fixup_var_refs_insns_with_hash
8285         [loop over hash table entries].
8286         (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or
8287         fixup_var_refs_insns_with_hash, to match above changes.
8288
8289 2001-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8290
8291         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable.
8292         (libgcc.a): Likewise.
8293         (stmp-multilib): Likewise.
8294         (STAGE2_FLAGS_TO_PASS): Likewise.
8295
8296 2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8297
8298         * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as
8299         temporary if no_new_pseudos.
8300
8301 2001-01-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8302
8303         * cppinternals.texi: Update.
8304
8305 2001-01-19  Richard Earnshaw  <rearnsha@arm.com>
8306
8307         * arm.c (arm_init_builtins): Re-enable builtins.
8308
8309 Fri Jan 19 13:02:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8310
8311         * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility.
8312         * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow
8313         element to be null, and always expect an EXPR_LIST.
8314         * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise.
8315         * sched-deps.c (sched_analyze_1): Likewise.
8316         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8317
8318         * regclass.c (max_set_parallel): New variable.
8319         (reg_scan): Take it into account in computation of max_parallel.
8320         (reg_scan_mark_refs, case SET): Compute it.
8321
8322         * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
8323         args are REG.
8324         * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
8325         * function.c (assign_parms): Use INTVAL for a CONST_INT.
8326
8327 2001-01-19  Jason Merrill  <jason@redhat.com>
8328
8329         * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
8330         for the abstract instance of an inline function.
8331
8332 Fri Jan 19 14:31:35 2001  Alexandre Oliva  <aoliva@redhat.com>
8333                           J"orn Rennecke <amylaar@redhat.com>
8334
8335         * reload1.c (move2add_note_store): Treat all registers directly or
8336         indirectly derived from a base register as members of the same set
8337         of values.
8338         (reload_cse_move2add): Adjust accordingly.  Take mode and offset
8339         of base register into account.
8340
8341 Fri Jan 19 09:18:42 2001  J"orn Rennecke <amylaar@redhat.com>
8342
8343         * alias.c (find_base_value): Recognize TRUNCATE.
8344         (record_set): In PLUS case, invalidate if other summand is also a
8345         base value.
8346
8347 Thu Jan 18 06:43:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8348
8349         * flow.c (mark_set_1, case PARALLEL): New case; rework to allow
8350         entry to be EXPR_LIST.
8351         * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to
8352         be an EXPR_LIST (but not null, which other code doesn't allow).
8353         (note_stores): Properly handle PARALLEL in SET.
8354         Recursively call for top-level PARALLEL.
8355         * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET.
8356         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8357
8358         * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h.
8359
8360 2001-01-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8361
8362         * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping,
8363         not pfile->skipping (== 0).
8364
8365 2001-01-17  Nick Clifton  <nickc@redhat.com>
8366
8367         * config/rs6000/rs6000.c: Add prototypes for {init|free}_
8368         machine_status.
8369
8370 2001-01-17  Jim Wilson  <wilson@redhat.com>
8371
8372         * invoke.texi (IA-64 options): Improve.
8373
8374 2001-01-17  Tom Tromey  <tromey@redhat.com>
8375
8376         * invoke.texi (Optimize Options): Use `{}' to around @samp
8377         argument.
8378
8379 2001-01-17  Aldy Hernandez  <aldyh@redhat.com>
8380
8381         * invoke.texi (-fno-guess-branch-probability): New option.
8382
8383 Wed Jan 17 13:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8384
8385         * combine.c (try_combine): Don't set i3_subst_into_i2 for
8386         case of making new double-word constant.
8387         Revert last change: instead just test i3_subst_into_i2.
8388
8389 2001-01-17  Jakub Jelinek  <jakub@redhat.com>
8390
8391         * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation.
8392         Use q constraints instead of r.
8393
8394 Tue Jan 16 22:23:04 2001  Alan Modra (alan@linuxcare.com.au)
8395
8396         * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove.
8397         (machine_function): Define.
8398         (PIC_OFFSET_TABLE_SAVE_RTX) : Define.
8399         * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status,
8400         pa_free_machine_status): New functions.
8401         (override_options): Set {init,mark,free}_machine_status to above.
8402         (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of
8403         PIC_OFFSET_TABLE_REGNUM_SAVED.
8404         * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of
8405         PIC_OFFSET_TABLE_REGNUM_SAVED throughout.
8406         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove
8407         references to PIC_OFFSET_TABLE_REGNUM_SAVED.
8408         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
8409
8410 2001-01-15  DJ Delorie  <dj@redhat.com>
8411
8412         * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing.
8413         (cpp.1): Ditto.
8414         (gcc.1): Ditto.
8415
8416 Tue Jan 16 17:20:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8417
8418         * flow.c (propagate_on_insn): Make trying to delete a prologue
8419         or epilogue insn an ICE, not a warning.  Allow doing this if
8420         the current function returns with stack pointer depressed.
8421
8422         * combine.c (try_combine): If i3_subst_into_i2, properly check for
8423         I3 having more than one SET.
8424
8425 2001-01-16  Jim Wilson  <wilson@redhat.com>
8426
8427         * invoke.texi: Document IA-64 options.
8428
8429         * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
8430         (fixup_errata): Delete TARGET_A_STEP use.
8431         * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
8432         (TARGET_SWITCHES): Delete -ma-step option.
8433         * config/ia64/ia64.md (all FP patterns): Delete %B0.
8434         (movqicc_astep, movqi_internal_astep, movhicc_astep,
8435         movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
8436         movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
8437         movdfcc_astep, movdf_internal_astep, movtfcc_astep,
8438         movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
8439         Delete.
8440         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
8441         movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
8442         cmovsi_internal): Delete ! TARGET_A_STEP check.
8443
8444 2001-01-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8445
8446         * gcc.texi (Bug Lists): Do not mention newsgroups nor the
8447         possibility to report bugs via postal mail. Change a URL and
8448         merge in a nearly duplicate statement...
8449         (Bug Reporting): ...from here.
8450         (Service): Refer to the Bug Reporting section instead of
8451         duplicating an URL.
8452         (Contributing): Remove trivial explanations concerning snapshots.
8453
8454 2001-01-16  Alan Modra <alan@linuxcare.com.au>
8455
8456         * cppmain.c (general_init): Don't use ANSI prototype.
8457
8458 2001-01-16  Tom Tromey  <tromey@redhat.com>
8459
8460         * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT.
8461
8462 2001-01-16  Richard Henderson  <rth@redhat.com>
8463
8464         * config/i386/i386.h: Fix comment typo.
8465         * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/
8466         (ashr+compare patterns): Match CCGOCmode not CCNOmode.
8467
8468 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
8469
8470         * gcc.c:  Revert previous -fsyntax-only-related change; move
8471         to cp/g++spec.c.
8472
8473 2001-01-16  Jakub Jelinek  <jakub@redhat.com>
8474
8475         * config/i386/i386.c (fcmov_comparison_operator): Only initialize
8476         inmode after checking GET_CODE (op).
8477
8478 2001-01-16  Richard Henderson  <rth@redhat.com>
8479
8480         * flow.c (struct propagate_block_info): Add mem_set_list_len.
8481         (MAX_MEM_SET_LIST_LEN): New.
8482         (propagate_one_insn): Update mem_set_list_len.
8483         (invalidate_mems_from_autoinc): Likewise.
8484         (invalidate_mems_from_set): Likewise.
8485         (mark_used_regs): Likewise.
8486         (init_propagate_block_info): Likewise.  Stop collecting memories
8487         when we reach MAX_MEM_SET_LIST_LEN.
8488         (mark_set_1): Likewise.
8489
8490 2001-01-16  Richard Henderson  <rth@redhat.com>
8491
8492         * unroll.c (precondition_loop_p): Fail if no iteration
8493         variable found.
8494
8495 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
8496
8497         * gcc.c:  When -fsyntax-only is given, do not complain about
8498         unused libraries.
8499
8500 2001-01-15  Richard Henderson  <rth@redhat.com>
8501
8502         * config/i386/i386.c (asm_output_function_prefix): Remove.
8503         (ix86_asm_file_end): New.
8504         (load_pic_register): Generate pic_label_name into a
8505         staticly allocated buffer.
8506         * config/i386/i386-protos.h: Update.
8507         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove.
8508         (ASM_FILE_END): New.
8509         * config/i386/i386afe.h: New file.
8510         * config.gcc (i?86-*-elf) [tm_file]: Use it.
8511         (i?86-*-{freebsd,linux*,moss*}): Likewise.
8512         * config/elfos.h (ASM_FILE_END): Undef before redefinition.
8513         * config/i386/cygwin.h (ASM_FILE_END): Likewise.
8514         * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end.
8515         * config/i386/sco5.h (ASM_FILE_END): Likewise.
8516         * config/i386/winnt.c (i386_pe_asm_file_end): Likewise.
8517
8518 2001-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8519
8520         * Makefile.in (install-man): Remove explicit dependency on
8521         $(srcdir)/gcc.1.
8522
8523         * configure.in, configure: Revert previous patch requiring perl
8524         5.6.0.
8525
8526 2001-01-12  Aldy Hernandez  <aldyh@redhat.com>
8527
8528         * toplev.c (flag_guess_branch_prob): New.
8529         (f_options): Add guess-branch-probability option.
8530         (rest_of_decl_compilation): Only estimate branch probability if
8531         flag set.
8532         (main): set flag_guess_branch_prob.
8533
8534         * flags.h (flag_guess_branch_prob): New.
8535
8536 2001-01-15  DJ Delorie  <dj@redhat.com>
8537
8538         * gcc.texi (Makefile): Add documentation for Makefile targets.
8539
8540 2001-01-15  Philip Blundell  <philb@gnu.org>
8541
8542         * config/arm/arm.c (arm_finalize_pic): New arg "prologue".
8543         (is_pic): Delete.
8544         * config/arm/arm-protos.h (arm_finalize_pic): Update prototype.
8545         (is_pic): Delete declaration.
8546         * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic.
8547         (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address.
8548         * config/arm/arm.md (builtin_setjmp_receiver): New.
8549
8550 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
8551
8552         * arm.c (use_return_insn): Don't try to determine the function type
8553         until after reload has completed.
8554         (arm_output_epilogue): Don't adjust the sp value recovered from the
8555         stack.
8556         (emit_multi_reg_push): Don't record dwarf information for the pc.
8557         * arm.md (eh_epilogue): The function type may have changed, so it
8558         needs to be recalculated.
8559         * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete.  Can now use dwarf2
8560         unwind tables on arm/netbsd.
8561
8562 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
8563
8564         * arm.md (cbranchsi4): Correct calculation of branch ranges.
8565         (negated_cbranchsi4): Likewise.
8566
8567 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
8568
8569         * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define.
8570         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
8571         (ASM_SPEC): Call subtarget_extra_asm_spec.  Don't
8572         pass -mapcs-* options to assembler.
8573         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define.
8574         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
8575         (ASM_SPEC): Call subtarget_extra_asm_spec.
8576
8577 2001-01-15  Andreas Jaeger  <aj@suse.de>
8578
8579         * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove
8580         warnings.
8581         (ix86_expand_builtin): Likewise.
8582
8583         * gencodes.c (output_predicate_decls): Make i size_t to avoid
8584         warning about comparison between signed and unsigned.
8585
8586 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
8587
8588         * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs.
8589
8590 2001-01-14  Ralf Baechle <ralf@gnu.org>
8591
8592         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change
8593         SUBTARGET_CPP_SPEC apropriatly.
8594
8595 2001-01-12  Mark Mitchell  <mark@codesourcery.com>
8596
8597         * varasm.c (make_decl_rtl): Fix typo in last change.
8598
8599 2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
8600
8601         * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the
8602         linker supports the init_priority C++ attribute.
8603         * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro.
8604         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix
8605         linker does not support init_priority C++ attribute.
8606
8607 Sun Jan 14 22:31:30 2001  J"orn Rennecke <amylaar@redhat.com>
8608
8609         * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs.
8610
8611 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8612
8613         * c-parse.in (finish_parse): Add comment about cpp_destroy.
8614         * cp/lex.c (finish_parse): Similarly.
8615         * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
8616         Return the number of errors encountered.
8617         * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
8618         * cppmain.c (main): Don't call cpp_destroy.
8619
8620 2001-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
8621
8622         * configure.in: Require at least perl 5.6.0 to regenerate
8623         manpages.
8624         * configure: Regenerate.
8625
8626 2001-01-14  Richard Henderson  <rth@redhat.com>
8627
8628         * genrecog.c (DT_veclen_ge): New.
8629         (add_to_sequence) [MATCH_PARALLEL]: Generate one.
8630         (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge.
8631         (nodes_identical_1): Handle DT_veclen_ge.
8632         (write_cond, debug_decision_2): Likewise.
8633
8634 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
8635
8636         * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete.  Replace
8637         with ...
8638         (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New.
8639
8640 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8641
8642         * cppmain.c (do_preprocessing): New function; most of the old
8643         main.
8644         (main): Call it to do most of the work.
8645         (cb): Move from global scope to set_callbacks ().
8646         (setup_callbacks): Get the callback pointer.
8647         (general_init, printer_init): Clean up code and comments.
8648
8649 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
8650
8651         * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when
8652         compiling PIC.
8653
8654 2001-01-14  Kazu Hirata  <kazu@hxi.com>
8655
8656         * config/h8300/h8300.c (get_shift_alg): Update comments.
8657
8658 Sun Jan 14 06:20:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8659
8660         * ggc-page.c (alloc_annon): Call perror and correctly call exit.
8661         (alloc_page, ggc_alloc): Add casts to remove warnings.
8662
8663 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
8664
8665         * combine.c (simplify_comparison): Don't change `code' when
8666         can't reverse comparison.
8667
8668 2001-01-14  Richard Henderson  <rth@redhat.com>
8669
8670         * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem;
8671         update all call sites.  Return true for all non-label constants.
8672
8673 Sun Jan 14 10:09:48 MET 2001  Jan hubicka  <jh@suse.cz>
8674
8675         * i386.c (ix86_expand_compare): Add bypass_test and second_test
8676         parameters.
8677         (ix86_expand_branch): Update.
8678         (ix86_expand_setcc): Update to handle multiple test conditions.
8679         (expand_int_movcc): Likewise.
8680         (expand_fp_movcc): Likewise.
8681         * i386-protos.h (ix86_expand_compare): New.
8682         * i386.md (andqi_?_slp, orqi_?_slp): New.
8683         (conditional trap expander): Update call to ix86_expand_compare.
8684
8685 2001-01-14  Richard Henderson  <rth@redhat.com>
8686
8687         * config/vax/vax.md: Use nonimmediate_operand instead of
8688         general_operand in destinations.
8689
8690         * config/vax/vax.md (indirect_jump): Use register_operand.
8691
8692         * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments.
8693         * config/vax/vax.md (call_pop): Turn into an expander.
8694         (call_value_pop): Likewise.
8695         (call, call_value): New.
8696
8697 2001-01-14  Andreas Jaeger  <aj@suse.de>
8698
8699         * config/i386/i386.c (ix86_split_fp_branch): Remove unused
8700         variables.
8701         (ix86_fp_compare_mode): Add unused attribute.
8702         (ix86_expand_fp_movcc): Remove unused variable.
8703         (ix86_expand_builtin): Make fcode unsigned.
8704
8705         * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned.
8706         (expand_expr): Add cast to avoid signed warning.
8707         (store_field): Likewise.
8708         (store_constructor_field): Likewise.
8709         (store_constructor): Likewise.
8710         (store_expr): Likewise.
8711         (clear_storage): Likewise.
8712         (emit_group_store): Likewise.
8713         (emit_group_load): Likewise.
8714
8715 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
8716
8717         * c-common.c: Move format checking code to ...
8718         * c-format.c: ... here.  New file.  Reorder some functions and
8719         declarations.
8720         (decl_handle_format_attribute, decl_handle_format_arg_attribute):
8721         New functions.
8722         * c-common.h (decl_handle_format_attribute,
8723         decl_handle_format_arg_attribute): Declare.
8724         * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o.
8725         (c-common.o): Adjust dependencies.
8726         (c-format.o): New list of dependencies.
8727
8728 2001-01-13  Jakub Jelinek  <jakub@redhat.com>
8729
8730         * unroll.c (loop_iterations): If we cannot prove iteration variable
8731         is set once in each iteration, punt.
8732
8733 Sun Jan 14 00:23:15 2001  Denis Chertykov  <denisc@overta.ru>
8734
8735         * config/avr/avr.md ("strlenhi"): Remove clobber of input address.
8736         (*strlenhi): Remove clobber (which was buggy) of output address.
8737
8738 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
8739
8740         * Makefile.in (generated-manpages): Add gcc.1
8741         ($(srcdir)/gcc.1): New target.
8742         (maintainer-clean): Delete $(srcdir)/gcc.1.
8743         * gcc.texi: Add macros @gccoptlist and @gol.
8744         * invoke.texi: Include option summary in manpage.  Mark up option
8745         summary with @gccoptlist and @gol.  Use @r in one place where
8746         appropriate.
8747         * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org.
8748         * gcc.1: Generate from invoke.texi.
8749
8750 2001-01-13  Richard Henderson  <rth@redhat.com>
8751
8752         * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap.
8753         (struct page_entry): Add group member.
8754         (struct page_group): New.
8755         (struct globals): Add page_groups member.
8756         (alloc_anon): Only define for using mmap; remove valloc call.
8757         (page_group_index): New.
8758         (set_page_group_in_use): New.
8759         (clear_page_group_in_use): New.
8760         (alloc_page): Implement USING_MALLOC_PAGE_GROUPS.
8761         (free_page, release_pages): Likewise.
8762         * configure.in (with-gc): Default to ggc-page always.
8763
8764 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8765
8766         * reload1.c (replace_pseudos_in_call_usage): Use
8767         reg_equiv_constant and reg_equiv_address, and don't try
8768         regno_reg_rtx first.
8769
8770 2001-01-13  Richard Henderson  <rth@redhat.com>
8771
8772         * ggc-page.c (alloc_page): Round up allocation size to one page.
8773         Set e->order on extra pages.
8774
8775 2001-01-13  Richard Henderson  <rth@redhat.com>
8776
8777         * genrecog.c (nodes_identical): Expand commentary.
8778         (write_switch): Watch out for identical nodes.
8779
8780 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8781
8782         * cppfiles.c (_cpp_fake_include): New function.
8783         * cpphash.h (_cpp_fake_include): New.
8784         * cpplib.c (do_line): Call _cpp_fake_include when entering
8785         header files in preprocessed input.
8786         * cppmain.c (cb_pragma_implementation): Remove handling.
8787         (setup_callbacks): Don't register pragmas.
8788
8789 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8790
8791         * extend.texi: Udate for CPP.
8792
8793 2001-01-13  Andreas Jaeger  <aj@suse.de>
8794
8795         * reload1.c: Add prototype for replace_pseudos_in_call_usage.
8796
8797         * regmove.c: Add prototype for replace_in_call_usage.
8798
8799 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8800
8801         * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro,
8802         struct cpp_chunk, struct htab, struct toklist,
8803         struct cpp_context, CPP_STACK_MAX, struct lexer_state,
8804         struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER,
8805         CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp,
8806         ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h.
8807         (struct macro_args): Delete.
8808         * cpphash.h: See above.
8809
8810 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8811
8812         * cppmain.c (struct printer): Remove no_line_dirs.
8813         (options, cb): New.
8814         (main, setup_callbacks, scan_buffer, printer_init, cb_define)
8815         : Use options rather than CPP_OPTION.
8816         (setup_callbacks): Use cb rather than pfile->cb.
8817         (main): No need to check for a buffer.  Use cpp_errors.
8818         (printer_init): Don't set no_line_dirs.
8819         (maybe_print_line): Use options not no_line_dirs.
8820         (cb_file_change): Don't call print_line if -P.
8821
8822 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8823
8824         * c-lex.c (init_c_lex): Use cpp_get_callbacks to set
8825         callbacks.
8826         * c-parse.in (finish_parse): Use cpp_errors.
8827         (__yylex): Use return value of cpp_pop_buffer.
8828         * cp/lex.c (finish_parse): Use cpp_errors.
8829         * cp/spew.c (read_token): Use return value of cpp_pop_buffer.
8830
8831 Sat Jan 13 16:57:40 2001  Denis Chertykov  <denisc@overta.ru>
8832
8833         * README.AVR: URLs corrected.
8834
8835 Sat Jan 13 07:30:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8836
8837         * c-decl.c (start_function): Don't warn if old prototype is builtin
8838         that's not in C's namespace.
8839         * libgcc2.c (_varargs): Update definition of __builtin_saveregs.
8840         (_bb): Add prototype for ctime.
8841         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos.
8842
8843 Sat Jan 13 09:53:32 MET 2001  Jan Hubicka  <jh@suse.cz>
8844
8845         * i386.c (ix86_fp_comparison_arithmetics_cost,
8846         ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost,
8847         ix86_fp_comparison_cost): New functions.
8848         (ix86_expand_fp_compare): Use the costs to choose best bethod; add
8849         two new parameters SECOND_TEST and BYPASS_TEST; allow generating
8850         two-branch sequences; make static.
8851         (ix86_use_fcomi_compare): Do decision according to the costs.
8852         (split_fp_branch): New.
8853         * i386.md (compare-and-branch patterns): Use split_fp_branch.
8854         * i386-protos.h (ix86_expand_fp_compare): Remove
8855         (ix86_split_fp_branch): Declare.
8856
8857         * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand
8858         and ix86_comparison_operator.
8859
8860         * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison
8861         to make it cheaper.
8862
8863         * i386.c (put_condition_code): Output properly the unordered/ordered
8864         compares in fp case.
8865         (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure.
8866
8867         * tm.texi (REVERSE_CONDITION): Document.
8868         * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode
8869         in -ffast-math mode.
8870         * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro.
8871
8872 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8873
8874         * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly.
8875
8876         * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be
8877         optimized away.
8878
8879         * config/sh/sh.c (mova_p): Fix test for mova_const.
8880
8881 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8882
8883         * fix-header.c (read_scan_file): Use cpp_get_callbacks and
8884         cpp_get_options rather than dereferencing pfile and using
8885         CPP_OPTION.
8886         * scan-decls.c (scan_decls): Use return value of
8887         cpp_pop_buffer rather than CPP_BUFFER.
8888
8889 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8890
8891         * cppinit.c (cpp_handle_option): help_only is now part of the
8892         cpp_options structure.
8893         * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks,
8894         cpp_set_callbacks): New functions.
8895         * cpplib.h (cpp_callbacks): Break out as a named structure.
8896         (cpp_options): Move help_only here from cpp_reader.
8897         (CPP_FATAL_ERRORS): Update to use cpp_errors.
8898         (cpp_errors, cpp_get_options, cpp_get_callbacks,
8899         cpp_set_callbacks): New prototypes.
8900         * cppmain.c (main): Update for help_only.
8901
8902 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
8903
8904         * Makefile.in (info, maintainer-clean, install-info, uninstall):
8905         Also build and remove and install and uninstall c-tree.info and
8906         cppinternals.info.
8907         ($(srcdir)/gcc.info): Add dependency on contrib.texi.
8908         ($(srcdir)/cppinternals.info): New target.
8909         * c-tree.texi: Change file name used when makeinfo used without -o
8910         from ir.info to c-tree.info.  Add info directory entry.
8911         * cppinternals.texi: Add info directory entry.
8912         * .cvsignore: Update.
8913
8914 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
8915
8916         * c-typeck.c (store_init_value): Don't require constant initializer
8917         elements with -pedantic -std=c99.
8918         (digest_init): Change error about non-constant initializer elements
8919         into pedwarn.
8920         (constructor_range_end): Remove.
8921         (constructor_incremental, designator_depth,
8922         designator_errorneous): New variables.
8923         (struct constructor_stack): Remove range_end, add incremental.
8924         (struct constructor_range_stack, constructor_range_stack): New.
8925         (struct initializer_stack): Add constructor_range_stack.
8926         (finish_init): Set it.
8927         (start_init): Likewise.  require_constant_elements for non-static
8928         trees only if not flag_isoc99.
8929         (really_start_incremental_init): Remove constructor_range_end, add
8930         constructor_incremental.
8931         (pop_init_level): Likewise.
8932         (push_init_level): Likewise.  If implicit and the subobject had some
8933         value set already, preinitialize the level with it.
8934         Warn about missing braces only if not pushing due to designators.
8935         (set_designator, push_range_stack): New functions.
8936         (set_init_label): Use them.
8937         (set_init_index): Likewise.  Remove constructor_range_end.
8938         Error if designator index is outside of array bounds.
8939         (add_pending_init): Compare values of purpose index trees, not the
8940         trees themselves.  Allow overwriting of already initialized element.
8941         Issue a warning if it had side-effects.
8942         (set_nonincremental_init, set_nonincremental_init_from_string): New
8943         functions.
8944         (pending_init_member): Rename to...
8945         (find_init_member): ...this function.  Call set_nonincremental_init
8946         if necessary.  Compare values of purpose index trees, not the trees
8947         themselves.  Return the actual value, not just non-zero if something
8948         is found.
8949         (output_init_element): Remove checks for duplicates.
8950         If field has zero size, only check the initializer for correctness.
8951         Call set_nonincremental_init if necessary.  Push RECORD/ARRAY into AVL
8952         if constructor_incremental is zero.  Change error about initializers
8953         not computable at load time into pedwarn.
8954         (output_pending_init_elements): Compare bit positions, not
8955         FIELD_DECLs to take into account zero-sized fields.
8956         (process_init_element): Use constructor_range_stack to fill all
8957         ranges in the designator lists from current level up.
8958         * extend.texi: Update documentation for labeled elements.
8959
8960 2001-01-12  Alexandre Oliva  <aoliva@redhat.com>
8961
8962         * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs
8963         to function usage for arguments passed by reference.  Optimize
8964         callee-copied arguments.
8965         * regmove.c (replace_in_call_usage): New function.
8966         (fixup_match_1): Call it.
8967         * cse.c (cse_insn): Canonicalize registers in function usage.
8968         * reload1.c (replace_pseudos_in_call_usage): New function.
8969         (reload): Call it.
8970
8971         * Makefile.in: Reverted yesterday's wrong patch.  Installed the
8972         right version.
8973
8974 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
8975
8976         * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp,
8977         not XEXP (tmp, 0).
8978
8979 2001-01-12  DJ Delorie  <dj@redhat.com>
8980
8981         * Makefile.in (bootstrap): rename stages to be mnemonic.  Add
8982         restageN, unstageN, bubblestrap, quickstrap, and cleanstrap
8983         targets.
8984
8985 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
8986
8987         * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi,
8988         tm.texi: Consistently refer to ISO C instead of ANSI C.  Refer to
8989         -std options alongside references to -ansi.  Update some
8990         documentation for C99.
8991         * cpp.1: Regenerate.
8992
8993 2001-01-12  Andreas Jaeger  <aj@suse.de>
8994
8995         * haifa-sched.c (restore_line_notes): Remove argument block B
8996         since it's unused.
8997         * sched-ebb.c (schedule_ebb): Change caller.
8998         * sched-rgn.c (schedule_region): Likewise.
8999         * sched-int.h (restore_line_notes): Adjust prototype.
9000
9001         * loop.h: Remove wrong declaration of doloop_condition_get.
9002
9003 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
9004
9005         * extend.texi:  Move C++-extension-related node from the C section
9006         into the C++ section.
9007
9008 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
9009
9010         * extend.texi: Refer to an array of pointers to functions instead
9011         of one of functions.
9012
9013 Fri Jan 12 12:08:12 MET 2001  Andreas Jaeger  <aj@suse.de>
9014                               Jan Hubicka  <jh@suse.cz>
9015
9016         * combine.c (reversed_comparison): Fix typo in last patch.
9017         Check X for NULL.
9018         (combine_reversed_comparison_code): Make static to follow
9019         prototype declaration.
9020
9021 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
9022
9023         * install.texi:  Remove misplaced duplicate entry.
9024
9025 2001-01-11  Ulrich Drepper  <drepper@redhat.com>
9026
9027         * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99.
9028
9029 Thu Jan 11 17:06:30 EST 2001  John Wehle  (john@feith.com)
9030
9031         * final.c: (leaf_function_p): Fix typo.
9032
9033 2001-01-11  Zack Weinberg  <zack@wolery.stanford.edu>
9034
9035         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
9036         Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
9037         which you have.
9038         (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
9039         * configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
9040         mmap_anon, and valloc is available.
9041         * ggc-page.c: Restructure ifdef logic to match new autoconf
9042         spec.  Don't throw away the test page in init_ggc.
9043
9044         * configure, config.in: Regenerate.
9045
9046 2001-01-12  Michael Hayes  <mhayes@redhat.com>
9047
9048         * loop.h (total_biv_increment): Constify iv_class pointer.
9049         (struct induction): Replace `mem_mode' with `mem' rtx.
9050         * unroll.c (total_biv_increment): Constify iv_class pointer.
9051         * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx.
9052         (find_mem_givs, combine_givs_p): Likewise.
9053         (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New.
9054
9055 2001-01-10  Thomas Pfaff <tpfaff@gmx.net>
9056
9057         * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32
9058         LastError.
9059         (__gthread_getspecific): Ditto.
9060
9061 Fri Jan 12 00:04:00 MET 2001  Jan Hubicka  <jh@suse.cz>
9062
9063         * i386.c (ix86_comparison_operator, fcmov_comparison_operator,
9064         put_condition_code): Convert fp comparison codes to integer
9065         before handling.
9066         (ix86_expand_fp_compare): Postnote the fp comparison code converison
9067         to final.
9068
9069         * i386.c (unsigned_comparison, no_comparison_operator): Kill.
9070         * i386-protos.h (no_comparison_operator): Kill.
9071
9072         * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion.
9073
9074         * combine.c (REVERSIBLE_CC_MODE): Remove.
9075         (reversible_comparison_p): Remove.
9076         (combine_reversed_comparison_code): New.
9077         (reversed_comparison): New.
9078         (combine_simplify_rtx): Use
9079         combine_reversed_comparison_code/reversed_comparison instead
9080         of reversible_comparison_p.
9081         (simplify_if_then_else): Likewise.
9082         (simplify_set): Likewise.
9083         (simplify_logical): Likewise.
9084         (if_then_else_cond): Likewise.
9085         (known_cond): Likewise.
9086         (simplify_comparison): Likewise.
9087
9088 2001-01-11  Alan Lehotsky  <lehotsky@tiac.net>
9089
9090         * builtins.c (std_expand_builtin_va_start): Handle varargs when
9091         sizeof (int) is larger than sizeof(__word__).
9092
9093 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9094
9095         * cppinit.c (do_includes): Fix typo.
9096
9097 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9098
9099         * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading
9100         in S_REGS does not occur because not all sources are possible
9101         when a S_REGS is a destination (sometimes needs a clobber).
9102         (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise.
9103         (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise.
9104         (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise.
9105         (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise.
9106         (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise.
9107         (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise.
9108         (lshrdi_const1, lshrsi3_const16): Likewise.
9109         (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise.
9110         (*movhi_68hc12, *movqi_68hc12): Likewise.
9111         (movstrictqi): Make sure reloading in D_REGS as a destination
9112         does not happen.
9113
9114 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9115
9116         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
9117
9118 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9119
9120         * cppinit.c (cpp_start_read): If -fpreprocessed, ignore
9121         -D, -U and -A, and don't initialize the builtins.
9122         (do_includes): Error if -include or -imacros with -fpreprocessed.
9123         * cppmain.c (cb_define, cb_undef): Unconditionally process
9124         the callback.
9125         * tradcpp.c (main): Fix typo.
9126
9127 2000-01-11  Mark Elbrecht  <snowball3@bigfoot.com>
9128
9129         * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include)
9130         (read_name_map): Use IS_ABSOLUTE_PATH.
9131         * tradcpp.c (get_filename): Likewise.
9132
9133 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9134
9135         * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers.
9136         (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise.
9137         (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise.
9138         (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise.
9139         (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise.
9140         (cmphi_z_used): Don't use '@' for the output.
9141         (tstqi_z_used): Likewise.
9142         (cmpqi_z_used): Likewise.
9143         (one_cmplsi2): Likewise.
9144
9145 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
9146
9147         * config/sh/sh.c (barrier_align): Recognize branch around far
9148         branch and redundant insn.
9149
9150 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9151
9152         * invoke.texi: Restore documentation of the drivers' switches -MD
9153         and -MMD.
9154
9155 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
9156
9157         * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1.
9158
9159         * Makefile.in (check-gcc//%, check-g++//%, check-g77//%,
9160         check-objc//%): Support parallel testing of multilibs.
9161         (TESTSUITEDIR): Set to testsuite by default, but override for
9162         parallel testing.
9163         (check-gcc, check-g++, check-g77, check-objc): Enter
9164         $(TESTSUITEDIR).
9165
9166 2001-01-11  Bernd Schmidt  <bernds@redhat.com>
9167
9168         * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO.
9169         * sched-deps.c (deps_may_trap_p): Likewise.
9170         * basic-block.h: Remove a comment.
9171         * flow.c (PROP_POSTRELOAD): Remove.
9172         (update_life_info): Don't add it to prop_flags.
9173         (mark_set_1): Lose the code that was enabled by it.
9174
9175 2001-01-11  Michael Hayes  <mhayes@redhat.com>
9176
9177         * flow.c (flow_call_edges_add): New.
9178         * basic_block.h (flow_call_edges_add): New.
9179
9180 2001-01-11  J"orn Rennecke <amylaar@redhat.com>
9181
9182         * reload1.c (move2add_note_store): Update reg_set_luid even if
9183         base reg remains the same.
9184
9185 2001-01-10  Nick Clifton  <nickc@redhat.com>
9186
9187         * config/d30v/d30v.c (d30v_init_machine_status): Initialise
9188         machine_function structure to zero.
9189         Add prototypes for machine_status functions.
9190
9191 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
9192
9193         * c-common.h (CTI_VOID_LIST): Remove.
9194         (void_list_node): Likewise.
9195         * tree.h (TI_VOID_LIST_NODE): New enumeral.
9196         (void_list_node): New macro.
9197         * config/arm/arm.c (arm_init_builtins): Use void_list_node.
9198         * config/i386/i386.c (ix86_init_builtins): Likewise.
9199         * config/ia64a/ia64.c (ia64_init_builtins): Likewise.
9200
9201 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9202
9203         * Makefile.in (tradcpp0): Depend on mkdeps.h.  Link mkdeps.o
9204         * cppinit.c (cpp_start_read): Update comment, remove unneeded
9205         if statement.
9206         * tradcpp.c: Include mkdeps.h.
9207         (deps, print_deps_phony_targets, deps_append, output_deps,
9208         init_dependency_output, output_deps): New.
9209         (deps_buffer, deps_allocated_size, deps_size, deps_column,
9210         deps_output): Delete.
9211         (print_deps_missing_files): Rename deps_missing_files.
9212         (inhibit_output): Make global.
9213         (main): Delete inhibit_output, deps_stream, deps_target.
9214         Use mkdeps functionality in the same way as cpplib.  Remove
9215         -g3 handling.  Handle -MF, -MP, -MQ, -MT.  Update handling of
9216         -M and -MM.  Remove old handling of deps via deps_out, and
9217         old reading of environment variables.
9218         (get_filename): Update to use deps_add_dep.
9219
9220 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
9221
9222         * output.h (make_function_rtl): Remove prototype.
9223         (make_decl_rtl): Likewise.
9224         * varasm.c (make_function_rtl): Remove.
9225         (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
9226         than from a third parameter.
9227         * tree.h (make_decl_rtl): Remove last parameter.
9228         * c-decl.c (builtin_function): Remove last argument in call to
9229         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
9230         (start_function): Likewise.
9231         * except.c (call_get_eh_context): Likewise.
9232         * expr.c (emit_block_move): Likewise.
9233         (clear_storage): Likewise.
9234         * profile.c (output_func_start_profiler): Likewise.
9235         * toplev.c (rest_of_decl_compilation): Likewise.
9236         * objc/objc-act.c (create_builtin_decl): Likewise.
9237         (synth_module_prologue): Likewise.
9238         (generate_static_reference): Likewise.
9239         (build_selector_reference_decl): Likewise.
9240         (build_class_reference_decl): Likewise.
9241         (build_objc_string_decl): Likewise.
9242         (build_protocol_reference): Likewise.
9243
9244 2001-01-10  Richard Henderson  <rth@redhat.com>
9245
9246         * hwint.h: Revert yesterday's change.
9247
9248 2001-01-10  Nick Clifton  <nickc@redhat.com>
9249
9250         * function.h (save_machine_status): Delete.
9251         (restore_machine_status): Delete.
9252         Amend comment describing {init|mark|free}_machine_status.
9253
9254         * function.c (save_machine_status): Delete.
9255         (restore_machine_status): Delete.
9256         Amend comment describing {init|mark|free}_machine_status.
9257         (push_function_context_to): Remove invocation of
9258         save_machine_status.
9259         (pop_function_context_from): Remove invocation of
9260         restore_machine_status.
9261
9262         * emit-rtl.c (init_emit_once): Amend comment describing
9263         {init|mark|free}_machine_status.
9264
9265         * tm.texi (Per-Function Data): New node.  Describe the
9266         INIT_EXPANDERS macro and the {init|mark|free}_machine_status
9267         function pointers.
9268
9269 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9270
9271         * cppinit.c (OPT_g): Remove.
9272         (cpp_handle_option): Update for removed -g3.
9273         (print_help): Update.
9274         * cpplib.h (struct cpp_options): Remove debug_output.
9275         * cppmain.c (setup_callbacks, cb_define): Update.
9276         * gcc.c (cpp_options): Translate -g3 to -dD.
9277
9278 2001-01-10  Aldy Hernandez  <aldyh@redhat.com>
9279
9280         * config/i960/i960.md: Change modifier to + on the zero_extract
9281         pattern after the (rotate -2 reg) canonicalization pattern.
9282
9283 2001-01-10  Richard Henderson  <rth@redhat.com>
9284
9285         * config/alpha/alpha.c (alpha_free_machine_status): New.
9286         (override_options): Install it.
9287         (alpha_mark_machine_status): Verify machine non-null.
9288         * config/i386/i386.c (ix86_free_machine_status): New.
9289         (override_options): Install it.
9290         (ix86_init_machine_status): Use xcalloc.
9291         (ix86_mark_machine_status): Verify machine non-null.
9292         * config/ia64/ia64.c (ia64_free_machine_status): New.
9293         (ia64_override_options): Install it.
9294         (ia64_mark_machine_status): Verify machine non-null.
9295
9296 Wed Jan 10 11:34:39 2001  Jeffrey A Law  (law@cygnus.com)
9297
9298         * function.c (instantiate_virtual_regs): Instantiate virtual
9299         registers found in CALL_INSN_FUNCTION_USAGE.
9300
9301 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9302
9303         * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as
9304         equivalent to -ansi in disabling -Di386.
9305
9306 Wed Jan 10 16:38:31 MET 2001  Jan Hubicka  <jh@suse.cz>
9307
9308         * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes):
9309         new functions.
9310         (ix86_expand_fp_compare): Make trivial use of new infrastructure.
9311
9312 2001-01-10  Richard Earnshaw  <rearnsha@arm.com>
9313
9314         * arm.c (arm_init_builtins): Temporarily disable xscale builtins.
9315
9316 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9317
9318         * invoke.texi: Document that -fcond-mismatch isn't supported for
9319         C++.
9320
9321 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9322
9323         * gcc.texi: Define macro gcctabopt.
9324         * invoke.texi: Add manpage sections BUGS and AUTHOR.  Use
9325         @command, @env and @option in some places where appropriate.  Use
9326         @gcctabopt where appropriate.  Put URLs and email addresses inside
9327         @w.
9328
9329 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
9330
9331         * gcc.c (cpp_options): Set MD file name from output
9332         filename, if specified.
9333         (suffix_subst): New static variable.
9334         (do_spec): Clear it.
9335         (do_spec_1, case '.'): Handle new `%.suffix' spec.
9336         Clear it.
9337         (give_switch): Handle suffix_subst.
9338
9339 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
9340
9341         * invoke.texi:  Fix another typo.
9342
9343 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
9344
9345         * invoke.texi:  Fix typo.
9346
9347 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9348
9349         * c-lang.c (lang_hooks): Update.
9350         (lang_decode_option): Remove.
9351         (lang_init_options): Rename c_init_options.
9352         * toplev.c (main): Use lang_hooks for lang_init_options
9353         and lang_decode_option.
9354         * toplev.h (lang_hooks): Add 2 new hooks.
9355         * tree.h: Remove lang_init_options and lang_decode_option.
9356         * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
9357         * cp/decl2.c: Similarly.
9358         * cp/lex.c (lang_init_options): Rename cxx_init_options.
9359         (lang_hooks): Update.
9360         * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
9361         for consistency.
9362         (lang_init_options): Rename ffe_init_options.
9363         (lang_hooks): Update.
9364         (lang_decode_option): Remove.
9365         * java/lang.c (lang_init_options): Rename java_init_options.
9366         (lang_decode_option): Rename java_decode_option.
9367         (lang_hooks): Update.
9368         * objc/objc-act.c (lang_init_options): Rename objc_init_options.
9369         (lang_decode_option): Rename objc_decode_option.
9370         (lang_hooks): Update.
9371
9372 2001-01-09  Nick Clifton  <nickc@redhat.com>
9373
9374         * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete.
9375         (d30v_return_addr_rtx): Delete.
9376         (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the
9377         cfun->machine structure.
9378         (struct machine_function): Move to d30v.h
9379         (d30v_save_machine_status): Delete.
9380         (d30v_restore_machine_status): Delete.
9381         (d30v_init_machine_status): New Function.
9382         (d30v_mark_machine_status): New Function.
9383         (d30v_free_machine_status): New Function.
9384         (d30v_init_expanders): Use new functions.
9385         (d30v_return_addr): Use ra_rtx field in cfun->machine.
9386         (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and
9387         d30v_return_addr_rtx.
9388
9389         * config/d30v/d30v.h (struct_machine): Move here.
9390         Add eh_epilogue_sp_ofs field.
9391
9392         *config/d30v/d30v.md (epilogue): Initialise eh_epilogue_sp_ofs
9393         field in cfun->machine structure.
9394
9395 Tue Jan  9 21:34:57 2001  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9396
9397         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code,
9398         PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register.
9399         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
9400
9401 Tue Jan  9 21:25:19 2001  Jeffrey A Law  (law@cygnus.com)
9402
9403         * objc/lang-options.h: Remove bogus reference to
9404         Java trademark.
9405
9406 2001-01-09  Kazu Hirata  <kazu@hxi.com>
9407
9408         * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to
9409         return the result.
9410
9411 2001-01-09  Alan Lehotsky  <lehotsky@tiac.net>
9412
9413         * reload.c (find_reloads_address): Check for eliminable registers
9414         when substituting a constant expression for a pseudo.
9415
9416 2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
9417
9418         * c-common.c (enum format_type): Add format_type_error.
9419         (decode_format_type): New function.
9420         (decl_attributes): Use it.
9421         (format_kind_info): Adjust comment.
9422
9423 2001-01-09  David O'Brien  <obrien@BSDi.com>
9424
9425         * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1,
9426         i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific
9427         files in tm_file.
9428         * config/i386/gnu.h: Don't include required platform specific .h files,
9429         tm.h will do it instead.
9430         * config/i386/i386elf.h: Likewise.
9431         * config/i386/linux.h: Likewise.
9432         * config/i386/moss.h: Likewise.
9433         * config/mips/gnu.h: Likewise.
9434
9435 2001-01-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9436
9437         * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h.
9438         (rs6000-ibm-aix3.[01]*): Likewise.
9439         (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise.
9440         (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise.
9441         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise.
9442         (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
9443         (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h.
9444         (powerpc-*-eabiaix*): Likewise.
9445         (powerpc-*-eabisim*): Likewise.
9446         (powerpc-*-elf*): Likewise.
9447         (powerpc-*-eabi*): Likewise.
9448         (powerpc-*-rtems*): Likewise.
9449         (powerpc-*-linux*libc1): Likewise.
9450         (powerpc-*-linux*): Likewise.
9451         (powerpc-wrs-vxworks*): Likewise.
9452         (powerpcle-wrs-vxworks*): Likewise.
9453         (powerpcle-*-sysv*): Likewise.
9454         (powerpcle-*-elf*): Likewise.
9455         (powerpcle-*-eabisim*): Likewise.
9456         (powerpcle-*-eabi*): Likewise.
9457         (powerpcle-*-solaris2*): Likewise.
9458         * config/rs6000/aix31.h: Delete includes.
9459         * config/rs6000/aix3newas.h: Likewise.
9460         * config/rs6000/aix41.h: Likewise.
9461         * config/rs6000/aix43.h: Likewise.
9462         * config/rs6000/beos.h: Likewise.
9463         * config/rs6000/rtems.h: Likewise.
9464         * config/rs6000/sysv4.h: Likewise.
9465
9466 2001-01-09  Kazu Hirata  <kazu@hxi.com>
9467
9468         * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
9469         Change an argument mode of machine_mode to shift_mode of
9470         shift_mode.  Remove an extra error check.
9471         (emit_a_shift): Adopt to the new calling prototype of
9472         get_shift_alg.
9473         (function_prologue): Fix code for a monitor
9474         function.  Support H8/S.
9475         (function_epilogue): Do not output pop for a monitor function.
9476
9477 2001-01-09  Nick Clifton  <nickc@redhat.com>
9478
9479         * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete.
9480         (setup_incoming_varargs): Use sysv_varargs_p field of the
9481         cfun->machine structure.
9482         (struct machine_function): Move to rs6000.h
9483         (rs6000_save_machine_status): Delete.
9484         (rs6000_restore_machine_status): Delete.
9485         (rs6000_init_machine_status): New Function.
9486         (rs6000_free_machine_status): New Function.
9487         (rs6000_init_expanders): Use new functions.
9488
9489         * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete
9490         export.
9491         (struct machine_function): Move here.
9492
9493         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
9494         sysv_varargs_p field of the cfun->machine structure.
9495
9496         * config/rs6000/rs6000-protos.h (rs6000_save_machine_status):
9497         Remove prototype.
9498         (rs6000_restore_machine_status): Remove prototype.
9499
9500 2001-01-09  Richard Henderson  <rth@redhat.com>
9501
9502         * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
9503         reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
9504         * sched-deps.c (sched_analyze_1): Update uses of struct deps.
9505         (sched_analyze_2, sched_analyze_insn): Likewise.
9506         (sched_analyze, init_deps): Likewise.
9507         (free_deps): Likewise.  Iterate with EXECUTE_IF_SET_IN_REG_SET.
9508         * sched-rgn.c (propagate_deps): Likewise.  Remove max_reg argument.
9509         (compute_block_backward_dependences): Update propagate_deps call.
9510
9511 2001-01-09  Mark Elbrecht  <snowball3@bigfoot.com>
9512
9513         * gcc.c (process_command): Set switches[n_switches].ordering to 0.
9514
9515 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9516
9517         * cppinit.c (OPT_MD, OPT_MMD): Restore.
9518         (cpp_handle_option): Handle them.
9519         (cpp_post_options): Ensure one of -M or -MM is specified with
9520         any other -M? option.
9521         (init_dependency_output): Suppress output with -MG.
9522
9523 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9524
9525         * cpp.texi: Update.
9526         * invoke.texi: Update.
9527
9528 2001-01-09  Bernd Schmidt  <bernds@redhat.com>
9529
9530         * sh.md (reload_outsf): Generate recognizable patterns for
9531         TARGET_SH3E.
9532
9533 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9534
9535         * c-lang.c (lang_hooks): Update.
9536         (lang_init): Rename c_init.
9537         (lang_finish): Remove.
9538         * toplev.c (compile_file): Use lang_hooks for lang_init ()
9539         and lang_finish ().
9540         * toplev.h (lang_hooks): Add init () and finish ().
9541         * tree.h (lang_init, lang_finish): Remove.
9542         * cp/tree.h (lang_init, lang_finish): Remove.
9543         * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
9544         * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
9545         lang_hooks): New.
9546         (lang_init, lang_finish): Remove.
9547         * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
9548         (lang_hooks): Update.
9549         * java/lang.c (lang_init): Rename java_init.
9550         (lang_finish): Remove.
9551         (lang_hooks): Update.
9552         * objc/objc-act.c (lang_init): Rename objc_init.
9553         (lang_finish): Remove.
9554         (lang_hoooks): Update.
9555
9556 20001-01-09  Graham Stott  <grahams@redhat.com>
9557
9558         * cppfiles.c (_cpp_execute_include): Move `len` initialisation
9559         after `ptr` is initialised.
9560
9561 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
9562
9563         * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
9564         (INITIALIZE_TRAMPOLINE): Adjust accordingly.
9565         * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
9566         stack adjusts, instead of r3.
9567
9568 2001-01-09  Michael Hayes  <mhayes@redhat.com>
9569
9570         * flow.c (flow_loop_scan): Break out of ...
9571         (flow_loops_find) ... here.
9572         * basic-block.h (flow_loop_scan): New.
9573         (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add.
9574         (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine.
9575
9576 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
9577
9578         * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero
9579         macro_buffer_len.
9580         * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when
9581         realloc()ing macro_buffer.
9582
9583         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
9584         if it's wider than long and the target's long is wider than the
9585         host's.
9586
9587 2001-01-09  Mark Mitchell  <mark@codesourcery.com>
9588
9589         Remove support for using UWIN as a host machine.
9590         * configure.in: Issue an error message.
9591         * configure: Regenerated.
9592         * config.gcc: Remove xm_* UWIN configury.
9593         * config/i386/xm-uwin.h: Remove.
9594
9595 2001-01-08  Nick Clifton  <nickc@redhat.com>
9596
9597         * config/v850/v850.c (ra_rtx): Delete.
9598         (v850_save_machine_status): Delete.
9599         (v850_restore_machine_status): Delete.
9600         (v850_init_machine_status): New function.
9601         (v850_mark_machine_status): New function.
9602         (v850_free_machine_status): New function.
9603         (v850_return_addr): Use ra_rtx field in machine structure.
9604         (v850_init_expanders): Use new functions.
9605
9606         * config/v850/v850-protos.h: Fix prototypes for v850_output_*
9607         * config/v850/v850.c: Change arguments to v850_output+* functions
9608         to take a const char *, to avoid compile time warning.
9609         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
9610         (USER_LABEL_PREFIX): Redefine.
9611
9612 2000-01-08  Jim Wilson  <wilson@redhat.com>
9613
9614         * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
9615         1 to unsigned HOST_WIDE_INT before left shift.
9616
9617 2001-01-08  Nick Clifton  <nickc@redhat.com>
9618
9619         * config/arm/arm.c (arm_mark_machine_status): Check to see if
9620         the machine structure has been allocated.
9621         (arm_free_machine_status): New function: Free the machine
9622         specific function structure.
9623
9624 2001-01-08  Richard Henderson  <rth@redhat.com>
9625
9626         * jump.c (simplejump_p): Revert last change.
9627
9628 2001-01-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9629
9630         * cppinit.c (init): Rename init_library.
9631         (cpp_create_reader): Update.
9632         * gcc.c (cpp_options): If -o given, use it as the target of
9633         any -M options.
9634
9635 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
9636
9637         * arm.c (arm_arch5e): New variable.
9638         (all_cores): XScale is a 5TE device.
9639         (arm_override_options): Set arm_arch5e.
9640         (arm_init_builtins): __builtin_prefetch is in arch5e.
9641         * arm.h (arm_arch5e): Declare it.
9642
9643         * arm.h (PREDICATE_CODES): Add arm_hard_register_operand.
9644
9645         * arm.md (define_constants): Add defines for UNSPEC and
9646         UNSPEC_VOLATILE insns.  Update all users.
9647         (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM.
9648         * arm.c (multi_register_push, note_invalid_constants)
9649         (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
9650         * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
9651         (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
9652
9653 Mon Jan  8 16:14:56 MET 2001  Jan Hubicka  <jh@suse.cz>
9654
9655         * jump.c (jump_optimize_1): Use reversed_comparison_code
9656         instead of can_reverse_comparison_p.
9657         (jump_back_p): Likewise.
9658         (invert_exp_1): Likewise.
9659         (thread_jumps): Likewise.
9660         * simplify-rtx.c (simplify_unary_operation): Likewise.
9661         (simplify_ternary_operation): Likewise.
9662         * cse.c (find_comparison_args): Convert to use
9663         can_reverse_comparison_p.
9664         (record_jump_equiv): Likewise.
9665
9666 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
9667
9668         * arm.h (HARD_REGNO_RENAME_OK): Delete.
9669         (EPILOGUE_USES): Define.
9670         (INITIAL_ELIMINATION_OFFSET): Current prologue code does not
9671         automatically stack the LR if it isn't live.
9672
9673 Mon Jan  8 13:46:02 MET 2001  Jan Hubicka  <jh@suse.cz>
9674
9675         * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions
9676         properly.
9677
9678 Sun Jan  7 18:37:43 2001  Mark P Mitchell  <mark@codesourcery.com>
9679
9680         * ggc-page.c (max_alignment): New structure.
9681         (MAX_ALIGNMENT): New macro.
9682         (init_ggc): Use it to round up the sizes in the
9683         extra_order_size_table.
9684
9685 2001-01-07  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9686
9687         * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register
9688         after reload.
9689
9690 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9691
9692         * builtins.def (BUILT_IN_FPRINTF): New entry.
9693
9694         * c-common.c (c_expand_builtin_fprintf): New function.
9695         (init_function_format_info): Handle __builtin_fprintf.
9696         (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf.
9697         (c_expand_builtin): Handle BUILT_IN_FPRINTF.
9698
9699         * c-decl.c (duplicate_decls): Adjust comment.
9700
9701         * extend.texi (fprintf): Document new builtin.
9702
9703 2001-01-07  Richard Henderson  <rth@redhat.com>
9704
9705         * jump.c (simplejump_p): Recognize any single_set jump
9706         of the proper form.
9707
9708 2001-01-07  Richard Henderson  <rth@redhat.com>
9709
9710         * configure.in (slibdir): Accept an --with-slibdir option.
9711         Use "test" not "[" in configure.  Default to $(libdir).
9712
9713         * config/t-linux (SHLIB_INSTALL): Double quote slibdir;
9714         fix typo in rm -f.
9715         * config/t-aix43 (SHLIB_INSTALL): Likewise.
9716         * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
9717         (SHLIB_LINK): Create links for the soname.
9718         * config/mips/t-iris6: Likewise.
9719         * config/sparc/t-slibgcc: Likewise.
9720         * config/sparc/t-slibgcc-sld: Likewise.
9721
9722 2001-01-07  Jakub Jelinek  <jakub@redhat.com>
9723
9724         * config/i386/i386.c (constant_call_address_operand): Accept
9725         (const (plus (symbol_ref) (const_int))).
9726         * config/i386/i386.h (PREDICATE_CODES): Add CONST for
9727         constant_call_address_operand.
9728
9729 2001-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9730
9731         * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
9732         and LONG_LONG_TYPE_SIZE > 32.
9733
9734 2001-01-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9735
9736         * jump.c (reversed_comparison_code_parts): Fix typo introduced by
9737         the previous change.
9738
9739 Sun Jan  7 19:37:48 MET 2001  Jan Hubicka  <jh@suse.cz>
9740
9741         * jump.c (reversed_comparison_code_parts, reversed_comparison_code):
9742         New.
9743         (can_reverse_comparison_p): Rewrite to use reversed_comparison_code.
9744         (reverse_condition_maybe_unordered): Abort on unsigned comparisons.
9745         * rtl.h (reversed_comparison_code_parts, reversed_comparison_code):
9746         Declare.
9747
9748 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9749
9750         * fix-header.c (read_scan_file): s/pfile/scan_in/.
9751
9752 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9753
9754         * c-lang.c (c_post_options): Call cpp_post_options.
9755         * objc/objc-act.c (objc_post_options): Similarly.
9756         * cppmain.c (main): Similarly.
9757         * fix-header.c (read_scan_file): Similarly.
9758         * cppinit.c (cpp_start_read): Move option consistency checks
9759         to cpp_post_options.  Don't call init_dependency_output.
9760         If needed, add default target and main file dependency.
9761         (OPT_MD, OPT_MMD): Remove.
9762         (OPT_MF): New.
9763         (cpp_handle_option): Update for OPT_* changes.
9764         (cpp_post_options): New.
9765         (init_dependency_output): Command line -MF overrides environment
9766         variables.  Don't set default target etc.  Suppress output
9767         if dependencies are going to stdout.
9768         (print_help): Update.
9769         * cpplib.h (cpp_post_options): New.
9770         * gcc.c (cpp_options): Update for -MD, -MMD, -MF.
9771
9772 Sun Jan  7 14:44:19 MET 2001  Jan Hubicka  <jh@suse.cz>
9773
9774         * jump.c (comparison_dominates_p): Support unordered compares.
9775
9776 Sun Jan  7 14:39:07 MET 2001  Jan Hubicka  <jh@suse.cz>
9777
9778         * simplify-rtx.c (simplify_relational_operation): Always simplify
9779         ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
9780         and UNGE.
9781
9782 Sun Jan  7 14:35:13 MET 2001  Jan Hubicka  <jh@suse.cz>
9783
9784         * combine.c (combine_simplify_rtx): Recognize the unordered compares.
9785         (nonzero_bits): Likewise.
9786         (simplify_comparison): Likewise.
9787         (num_sign_bit_copies): Likewise; return more sane value depending
9788         on STORE_FLAG_VALUE.
9789         (known_cond): Do not assume EQ to be always true for equivalent
9790         operands.
9791
9792 Sun Jan  7 14:31:57 MET 2001  Jan Hubicka  <jh@suse.cz>
9793
9794         * cse.c (fold_rtx): Handle unordered comparisons.
9795
9796 Sun Jan  7 13:49:19 MET 2001  Jan Hubicka  <jh@suse.cz>
9797
9798         * rtlanal.c (set_of_1): New static function.
9799         (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag,
9800          reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno,
9801          reg_set_last_last_regno): Remove.
9802         (set_of): New global function.
9803         (set_of_data): New structure.
9804         (reg_set_p, reg_set_last): Revamp for set_of.
9805         * rtl.h (set_of): New.
9806
9807 2001-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
9808
9809         * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin.
9810         * extend.texi: Document _Exit builtin.
9811
9812 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9813
9814         * (initialize, initialize_builtins,
9815         initialize_dependency_output, initialize_standard_includes):
9816         Rename s/initialize/init. Update.
9817         (init_dependency_output): Move to after
9818         cpp_handle_options, the correct location temporally at least.
9819         (opt_comp): Move next to init (), its caller.  Fix prototype.
9820         (init): Make "initialized" local scope.
9821         (cpp_create_reader): Always call init ().
9822         (cpp_start_read): Update.
9823         (output_deps): New function, broken out of cpp_finish.
9824         (cpp_finish): Break out output_deps.
9825
9826 2001-01-07  Richard Henderson  <rth@redhat.com>
9827
9828         * collect2.c (COFF specific stuff): Revert 12-06 patch
9829         to prototype system functions.
9830
9831 2001-01-07  Michael Hayes  <mhayes@redhat.com>
9832
9833         * hard-reg-set.h: Add multiple include guard.
9834         * basic-block.h (struct loop): Add `sink' field.
9835         * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
9836         (emit_iv_add_mult): Delete.
9837         (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
9838         (loop_iv_add_mult_emit_before, loop_insn_sink): Define.
9839         (unroll_loop): Remove end_insert_before argument.
9840         * loop.c (loop_givs_rescan): Remove end_insert_before argument.
9841         (maybe_eliminate_biv_1): Likewise.
9842         (emit_iv_add_mult): Delete.
9843         (gen_add_mult, loop_regs_update): New.
9844         (loop_insn_emit_after, loop_insn_emit_before): New.
9845         (loop_insn_sink, loop_insn_sink_or_swim): New.
9846         (emit_iv_add_mult): Delete.
9847         (scan_loop): Set loop->sink.
9848         (loop_givs_reduce): Use loop_insn_sink and its ilk.
9849         (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
9850         (maybe_eliminate_biv_1): Likewise.
9851         (maybe_eliminate_biv_1): Add basic block argument.
9852         * unroll.c (unroll_loop): Remove end_insert_before argument.
9853         (find_splittable_regs): Likewise.
9854         (find_splittable_regs): Use loop_insn_sink and its ilk.
9855         (find_splittable_givs, final_biv_value, final_giv_value): Likewise.
9856
9857 2001-01-07  Michael Hayes  <mhayes@redhat.com>
9858
9859         * loop.h (loop_insn_hoist): New prototype.
9860         * loop.c (loop_insn_hoist, loop_insn_emit_before): New.
9861         (move_movables, loop_givs_rescan): Use loop_insn_hoist.
9862         (check_dbra_loop, load_mems): Likewise.
9863         * unroll.c (unroll_loop, find_splittable_regs): Likewise.
9864         (find_splittable_givs): Likewise.
9865
9866 2001-01-07  Michael Hayes  <mhayes@redhat.com>
9867
9868         * loop.c (emit_iv_add_mult): Use single_set to examine new insn.
9869
9870 2001-01-07  Richard Henderson  <rth@redhat.com>
9871
9872         * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change.
9873
9874 2001-01-07  Richard Henderson  <rth@redhat.com>
9875
9876         * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
9877         NO_SHARED_LIBGCC_MULTILIB as required for the target.
9878         * gcc.c (init_spec): Massage the existing libgcc_spec into a
9879         variant that handles a shared libgcc.
9880         (process_command): Always validate -{static,shared}-libgcc.
9881         (do_spec_1): New 'M' case.
9882         * invoke.text (Link Options): Document -{static,shared}-libgcc.
9883
9884 2001-01-07  Richard Henderson  <rth@redhat.com>
9885
9886         * Makefile.in (slibdir): New variable.
9887         (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
9888         (installdirs): Create slibdir.
9889         (install-libgcc, install-multilib): Defer to libgcc.mk.
9890         * configure.in (slibdir): Substitute.
9891         * mklibgcc.in (install): New target.
9892
9893         * config/t-linux (SHLIB_LINK): Create links for the soname.
9894         (SHLIB_INSTALL): New.
9895         * config/alpha/t-osf4 (SHLIB_INSTALL): New.
9896         * config/mips/t-iris6 (SHLIB_INSTALL): New.
9897         * config/rs6000/t-aix43 (SHLIB_INSTALL): New.
9898         * config/sparc/t-slibgcc (SHLIB_INSTALL): New.
9899         * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
9900
9901 2001-01-07  Richard Henderson  <rth@redhat.com>
9902
9903         * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
9904         * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove.
9905         * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove.
9906
9907 2001-01-07  Michael Hayes  <mhayes@redhat.com>
9908
9909         * loop.c (count_loop_regs_set): Delete.
9910         (load_mems_and_recount_loop_regs_set): Delete.
9911         (loop_regs_scan): Merge common code from count_loop_regs_set,
9912         scan_loop, and load_mems_and_recount_loop_regs_set.
9913         (scan_loop): Call load_mems directly and loop_regs_scan
9914         again if new registers created.
9915
9916 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9917
9918         * toplev.c (main): Call the front-end specific post_options
9919         hook if one is given.
9920         * toplev.h (struct_lang_hooks, lang_hooks): New.
9921         * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
9922         for the C front end.
9923         * cp/decl2.c (cxx_post_options, lang_hooks): Implement
9924         lang_hooks for the C++ front end.
9925         * objc/objc-act.c (objc_post_options, lang_hooks): Implement
9926         lang_hooks for the ObjC front end.
9927         * f/com.c (lang_hooks): Hooks for the Fortran front end.
9928         * java/lang.c (lang_hooks): Hooks for the Java front end.
9929
9930 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9931
9932         * c-lex.c (init_c_lex): Request #define / #undef callbacks
9933         for verbose DWARF[2] debugging.
9934         (cb_define, cb_undef): The new callbacks.
9935         * toplev.h (debug_define, debug_undef): Make const correct.
9936         * toplev.c (debug_define, debug_undef): Similarly.  Do not
9937         perform the verbosity tests here anymore.
9938
9939 2001-01-07  Alexandre Oliva  <aoliva@redhat.com>
9940
9941         * reload.c (subst_reloads): Take INSN argument.  When
9942         replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
9943         * reload.h (subst_reloads): Adjust prototype.
9944         * reload1.c (reload_as_needed): Pass INSN to subst_reloads.
9945         * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
9946         present in JUMP_INSNs and copy them to JUMP_LABEL.
9947         * flow.c (find_label_refs, find_basic_blocks_1): Skip
9948         JUMP_INSNs and insns with REG_LABELs that are followed by
9949         JUMP_INSNs with the same REG_LABEL.
9950         * sched-rgn.c (is_cfg_nonregular): Likewise.
9951         * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
9952         note is available.
9953         * unroll.c (unroll_loop): Look for REG_LABEL notes in
9954         JUMP_INSNs too.
9955         * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
9956
9957 2001-01-06  Richard Henderson  <rth@redhat.com>
9958
9959         * loop.c (scan_loop): Use xcalloc for the regs array.
9960         (load_mems_and_recount_loop_regs_set): Zero the new memory
9961         received from xrealloc.
9962
9963 2001-01-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9964
9965         * mkdeps.c (deps_add_dep): Fix vector re-allocation.
9966
9967 Sat Jan  6 00:09:34 2001  J"orn Rennecke <amylaar@redhat.com>
9968
9969         * integrate.c (copy_rtx_and_substitute): When copying
9970         an ignored return value, strip REG_FUNCTION_VALUE_P.
9971
9972 2001-01-06  Michael Hayes  <mhayes@redhat.com>
9973
9974         * loop.c (debug_biv, debug_giv): New.
9975         (loop_biv_dump): Break out from ...
9976         (record_biv): ... here.
9977         (loop_giv_dump): Break out from ...
9978         (record_giv): ... here.
9979         (loop_bivs_check): Use print_simple_rtl.
9980         * unroll.c (loop_iterations): Use print_simple_rtl.
9981
9982 2000-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9983
9984         * pa.md (return, return_internal): Modify patterns to prevent regrename
9985         mucking with the return pointer.
9986
9987 2001-01-05  Richard Henderson  <rth@redhat.com>
9988
9989         * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change.
9990
9991 Fri Jan  5 16:34:18 2001  Nick Clifton  <nickc@redhat.com>
9992
9993         * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster
9994         version supplied by Matteo Frigo.
9995
9996 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9997
9998         * cpp.texi: Update for -MQ.
9999         * cppinit.c (cpp_create_reader): Always create pfile->deps.
10000         (cpp_cleanup): Always free pfile->deps.
10001         (initialize_dependency_output): Don't create pfile->deps.
10002         (cpp_handle_option): Similarly.
10003         (OPT_MQ): New.
10004         * gcc.c (cpp_options): Handle -MQ.
10005         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
10006         * mkdeps.c (base_name): Remove.
10007         (deps_init): Don't allocate vector space until it's needed.
10008         (deps_free): Only free vectors if allocated.
10009         (deps_add_target, deps_add_dep): Update for initial allocation.
10010         (deps_add_default_target): Don't strip to the base_name.
10011
10012 2001-01-05  DJ Delorie <dj@redhat.com>
10013
10014         * config/v850/v850.h (RETURN_ADDR_RTX): Define.
10015         (INIT_EXPANDERS): Define.
10016
10017         * config/v850/v850.c (struct machine_function): Define.
10018         (v850_save_machine_status): New function.
10019         (v850_restore_machine_status): New function.
10020         (v850_return_addr): New function.
10021         (v850_init_expanders): New function.
10022
10023         * config/v850/v850-protos.h: Add prototypes for v850_return_addr
10024         and v850_init_expanders.
10025
10026 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
10027
10028         * cpplib.h (struct cpp_reader): Add help_only field.
10029         * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
10030         (cpp_handle_option): Set pfile->help_only if we see -h,
10031         --help, -target-help, or --version.  Print version string but
10032         do not set help_only if we see -v or -version.  Make text
10033         printed by -v match that printed by (-)-version.
10034
10035         * cppmain.c (main): Exit after option parsing if
10036         pfile->help_only is true.
10037
10038         * toplev.c (independent_decode_option): Call print_version,
10039         then exit, if we see --version (but not -version).
10040         (print_version): Split lengthy message into two lines.
10041
10042 2001-01-05  Nick Clifton  <nickc@redhat.com>
10043
10044         * config/v850/v850.c (v850_encode_data_area): Use alloca to create
10045         temporary string for initialisation before calling ggc_alloc_string.
10046
10047 2001-01-06  Michael Hayes  <mhayes@redhat.com>
10048
10049         * rtl.h (print_simple_rtl): New.
10050         * print-rtl.c (print_simple_rtl): New.
10051         (flag_simple): New.
10052         (print_rtx): Disable printing of flags and modes, etc.,
10053         if `flag_simple` nonzero.
10054
10055 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
10056
10057         * function.c (fixup_var_refs): Use push_to_full_sequence where
10058         possible.
10059
10060 2001-01-05  Michael Meissner  <meissner@redhat.com>
10061
10062         * flags.h (flag_reorder_blocks): Add declaration.
10063         (flag_rename_block): Ditto.
10064
10065 2001-01-05  DJ Delorie  <dj@redhat.com>
10066
10067         * function.c (reorder_blocks): Make sure the flags are all reset
10068         before using them to mark blocks, else a second invocation will
10069         corrupt the block chain.
10070         (reorder_blocks_0): New, resets the flags.
10071
10072 Fri Jan  5 20:34:06 2001  J"orn Rennecke <amylaar@redhat.com>
10073
10074         * cse.c (find_comparison_args): Stop if the argument is known to
10075         be constant.
10076
10077 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10078
10079         * config/sh/sh.md (movdf): When splitting load into pair of
10080         registers, don't clobber the register used in the address too
10081         early.
10082
10083 2001-01-05  Jeffrey Oldham  <oldham@codesourcery.com>
10084
10085         * varasm.c (mark_constant_pool): Improve initial comments.
10086         (mark_constants): Move marking of constants to mark_constant.
10087         (mark_constant): New function to recursively mark all constants
10088         referred to by a constant.
10089
10090 2001-01-05  Catherine Moore  <clm@redhat.com>
10091
10092         * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG.
10093
10094 2001-01-05  Phil Edwards  <pme@sources.redhat.com>
10095
10096         * cp/lang-options.h:  Bring comment in line with reality.
10097         * f/lang-options.h:  Likewise.
10098         * java/lang-options.h:  Likewise.
10099         * objc/lang-options.h:  Likewise.
10100         * ch/lang-options.h:  Likewise.
10101         * f/g77.texi:  And update the manual.
10102
10103 2001-01-05  Marek Michalkiewicz  <marekm@linux.org.pl>
10104             Denis Chertykov  <denisc@overta.ru>
10105
10106         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
10107         * config/avr/avr.c (avr_peep2_scratch_safe): New function.
10108         * config/avr/avr.md (all peepholes that request a scratch register):
10109         Call it, FAIL the peephole if not safe (in interrupt functions).
10110
10111 2001-01-05  Mark Mitchell  <mark@codesourcery.com>
10112
10113         * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now.
10114
10115 2001-01-05  Joseph S. Myers  <jsm28@cam.ac.uk>
10116
10117         * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG):
10118         Define.
10119         * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ,
10120         BUILT_IN_CREAL and BUILT_IN_CIMAG.
10121         * c-common.c (c_common_nodes_and_builtins): Create builtin conjf,
10122         conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl.
10123         (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and
10124         BUILT_IN_CIMAG.
10125         * extend.texi: Document these builtins.
10126
10127 2001-01-05  Daniel Berlin  <dberlin@redhat.com>
10128
10129         * c-common.c (lang_get_alias_set): Say we know nothing of
10130         VECTOR_TYPE aliasing.
10131
10132         * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
10133
10134 2001-01-05  Bruce Korb  <bkorb@gnu.org>
10135
10136         * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to
10137         their x* equivalent versions for atexit-less systems
10138         * fixinc/fixincl.c(main): do not return from main() on atexit-less
10139         systems (or any other system any more).
10140
10141 2001-01-05  Richard Earnshaw  <rearnsha@arm.com>
10142
10143         * arm.md (ldmsi_postinc): Avoid use of match_dup between input and
10144         output operands.  Use arm_hard_register_operand for operand 4.
10145         (stmsi_postinc): Similarly.
10146         (ldmsi): Use arm_hard_register_operand for opernand 2.
10147         (stmsi): Similarly.
10148         * arm.c (arm_hard_register_operand): New function.
10149         * arm-protos.h (arm_hard_register_operand): Prototype it.
10150
10151         * arm.h (HARD_REGNO_RENAME_OK): Define.
10152
10153 Fri Jan  5 16:29:49 MET 2001  Jan Hubicka  <jh@suse.cz>
10154
10155         * simplify-rtx.c (cfc_args): add "unordered" field.
10156         (check_fold_consts): Set unordered field.
10157         (simplify_relational_operation): Simplify the unordered
10158         comparisons.
10159
10160         * reg-stack.c (swap_rtx_condition): Ensure that the transformation
10161         is valid.
10162
10163         * emit-rtl.c (try_split): Fix code to mark labels.
10164         * jump.c (mark_jump_label): Make global.
10165         * rtl.h (mark_jump_label): Declare.
10166
10167         * predict.c (estimate_probability): Handle unordred comparisons.
10168
10169 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10170
10171         * cpp.texi: Update for -MP.  Clarify behaviour of -MT.
10172         * cppinit.c (initialize_dependency_output):  Update.
10173         (cpp_finish): Output dummy targets for -MP.
10174         (OPT_MP): New.
10175         (cpp_handle_option): Handle -MP.  Don't quote -MT options.
10176         * cpplib.h (struct cpp_options): Add deps_phony_targets.
10177         * gcc.c (cpp_options): Update to handle -MP.
10178         * mkdeps.c (deps_add_target, deps_add_default_target): Update
10179         to quote only the default target.
10180         (deps_phony_targets): Insert a preceding newline.  Rename from
10181         deps_dummy_targets for consistency.
10182         * mkdeps.h: Update
10183
10184 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10185
10186         * calls.c (emit_library_call_value_1): Support
10187         INIT_CUMULATIVE_LIBCALL_ARGS.
10188         * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
10189
10190 2001-01-04  Richard Henderson  <rth@redhat.com>
10191
10192         * c-decl.c (finish_struct): Detect flexible array members
10193         used in an inappropriate context.
10194         * c-typeck.c (really_start_incremental_init): Special case
10195         constructor_max_index for zero length arrays.
10196         (pop_init_level): Allow initialization of flexible array
10197         members.  Deprecate initialization of zero length arrays.
10198         Don't issue missing initializer warning for flexible array
10199         members or zero length arrays.
10200         (process_init_element): Don't dereference null DECL_SIZE.
10201         * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
10202         Don't abort for empty constructors.  Use size_binop
10203         (output_constructor): Add commentary regarding zero length
10204         array futures.  Abort if we try to initialize an array of
10205         unspecified length with a non-empty constructor in the middle
10206         of a structure.
10207
10208         * extend.texi (Zero Length): Update and clarify documentation
10209         on static initialization.
10210
10211 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10212
10213         * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR
10214         with more than 32767 words of local storage.
10215
10216 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10217
10218         * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support
10219         for 'abs', 'labs', and 'fabs'.
10220         (c4x_expand_builtin): Likewise.
10221         * config/c4x/c4x.h (enum c4x_builtins): Likewise.
10222
10223 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10224
10225         * config/sh/sh.md (prget, prset): New insn types.
10226         (return delay slot): Dont' allow prset.
10227         (call, sfunc delay slot): Don't allow prget.
10228         (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives
10229         for prset and prget.
10230
10231 2001-01-05  Michael Hayes  <mhayes@redhat.com>
10232
10233         * loop.h (struct loop_reg): New.
10234         (struct loop_regs): Change to use array of `struct loop_reg'.
10235         * loop.c: Replace assortment of varrays with single regs array.
10236         (count_one_set): Delete may_not_move array argument
10237         and use regs array instead.  All caller's changed.
10238         (count_loop_regs_set): Delete may_not_move and single_usage
10239         arguments and use regs array instead.  All caller's changed.
10240         (find_single_use_in_loop): Replace usage array argument with pointer
10241         to regs structure.  All caller's changed.
10242         (loop_optimize): Delete `moved_once' array.
10243
10244 2001-01-05  Michael Hayes  <mhayes@redhat.com>
10245
10246         * loop.c (prescan_loop): Set loop_info->has_nonconst_call.
10247         Use it instead of loop_info->has_call for scanning loop mems.
10248         (check_dbra_loop): Replace loop_info->has_call test with
10249         loop_info->has_nonconst_call.
10250
10251 2000-01-04  Matthew Hiller  <hiller@redhat.com>
10252
10253         * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used
10254         for TARGET_SH3E.
10255
10256 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10257
10258         * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
10259         use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
10260
10261 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10262
10263         * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
10264         (flag_short_double, flag_short_wchar): Define.
10265         (c_common_nodes_and_builtins): Create many tree nodes shared
10266         between C and C++ here instead of in cp/decl.c and ...
10267         * c-decl.c (init_decl_processing): ... here.
10268         (SIZE_TYPE, WCHAR_TYPE): Don't define.
10269         (flag_short_double, flag_short_wchar): Don't define.
10270         (record_builtin_type): New function.
10271         (build_void_list_node): New function.
10272         * c-common.h (flag_short_double, flag_short_wchar,
10273         record_builtin_type, build_void_list_node): Declare.
10274
10275 Thu Jan  4 21:09:47 2001  J"orn Rennecke <amylaar@redhat.com>
10276
10277         * integrate.c (expand_inline_function): Don't put a virtual
10278         register into the reg map.
10279
10280         * function.c (fixup_var_refs_1): If force_operand didn't put
10281         the address into the target, move it there.
10282
10283 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
10284
10285         Special-case tree_decl/tree_list allocations.
10286         * ggc-page.c (OBJECT_PER_PAGE): Reimplement.
10287         (OBJECT_SIZE): New macro.
10288         (NUM_EXTRA_ORDER): Likewise.
10289         (extra_order_size_table): New variable.
10290         (NUM_ORDERS): New macro.
10291         (objects_per_page_table): New variable.
10292         (object_size_table): New variable.
10293         (G.pages): Use NUM_ORDERS to bound the array.
10294         (G.page_tails): Likewise.
10295         (DIV_ROUND_UP): Remove.
10296         (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
10297         (alloc_page): Use OBJECT_SIZE.
10298         (size_lookup): Don't make it const.
10299         (ggc_alloc): Use OBJECT_SIZE.
10300         (ggc_set_mark): Likewise.
10301         (ggc_get_size): Likewise.
10302         (init_ggc): Set up the object_size_table, objects_per_page_table,
10303         and adjust size_lookup.
10304         (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
10305         (ggc_pop_context): Use NUM_ORDERS.
10306         (clear_marks): Likewise.
10307         (sweep_pages): Likewise.
10308         (poison_pages): Likewise.
10309         (ggc_print_statistics): Use OBJECT_SIZE.
10310
10311 Thu Jan  4 15:54:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10312
10313         * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
10314         Only call array_size_for_constructor if last field and array type
10315         with no upper bound.
10316
10317 2001-01-04  Philip Blundell  <philb@gnu.org>
10318
10319         * config/arm/arm.c (arm_gen_constant): Prefer to emit constants
10320         from bit 31 downwards, if this requires no more insns.
10321         (count_insns_for_constant): New helper function for above.
10322
10323 2001-01-04  Alexandre Oliva  <aoliva@redhat.com>
10324
10325         * gencodes.c (output_predicate_decls): Remove empty initializer.
10326
10327 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
10328
10329         * tree.c (copy_node): Remove documentation about obstacks.
10330         (buidl1): Check that nobody tries to build 2-argument nodes this
10331         way.
10332
10333 2001-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10334
10335         * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and
10336         fp_high_losum_p.
10337
10338         * gencodes.c (output_predicate_decls): Fill empty initializer
10339         braces.
10340
10341 2001-01-04  Jakub Jelinek  <jakub@redhat.com>
10342
10343         * tradcpp.c (deps_file, print_deps_missing_files): New variables.
10344         (main): Handle -MG, -MD, -MMD.  Bail out if -MG is given without -M
10345         or -MM.
10346         (do_include): Handle missing headers like cpp0.
10347         * cppfiles.c (_cpp_execute_include): Don't prefix absolute header
10348         paths with first include pathname.  Don't strcat to uninitialized
10349         string.
10350
10351 2001-01-04  Bernd Schmidt  <bernds@redhat.com>
10352
10353         * regrename.c (regrename_optimize): Don't rename from frame pointer
10354         if frame_pointer_needed.
10355         (do_replace): Don't set ORIGINAL_REGNO to a hard register number.
10356         * config/ia64/ia64.c (emit_all_group_insn_barriers): New function.
10357         (ia64_reorg): Use it instead of scheduling if ! optimize.
10358         (errata_emit_nops): Properly call asm_noperands.
10359         (ia64_sched_reorder): Finish cycle if we see an asm.
10360         (ia64_variable_issue): Clear scheduling state after asms.
10361
10362 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10363
10364         * cpp.texi: Update for -MT.
10365         * cppinit.c (initialize_dependency_output): Add a default
10366         target if none has been given already.
10367         (no_tgt, OPT_MT): New.
10368         (cpp_handle_option): Handle -MT.  Update -M etc.
10369         * cpplib.h (struct cpp_options): Remove deps_target.
10370         * gcc.c (cpp_options): Handle -MT.
10371         * mkdeps.c (struct deps): Move from mkdeps.h.
10372         (deps_calc_target): Rename deps_add_default_target.  Add a
10373         default target if none has been specified already.
10374         * mkdeps.h (struct deps): Move to mkdeps.c.
10375         (deps_calc_target): Rename deps_add_default_target.
10376
10377 2000-01-03  Richard Henderson  <rth@redhat.com>
10378
10379         * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
10380         Remove dead code.
10381         * c-typeck.c (push_init_level): Move checks for flexible array
10382         members and zero length arrays ...
10383         (pop_init_level): ... here.  Silently discard empty initializations.
10384         Remove dead code.
10385         * varasm.c (output_constructor): Update for sizeof change to
10386         zero-length arrays.
10387
10388         * extend.texi (Zero Length): Clarify semantics.
10389
10390 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
10391
10392         * configure.in (tm.h): Include isns-codes.h last.
10393         * configure: Rebuilt.
10394
10395 2001-01-03  Richard Henderson  <rth@redhat.com>
10396
10397         * config/alpha/alpha.md (addvsi3, addvdi3): New.
10398         (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
10399
10400 2001-01-03  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10401
10402         * tradcpp.c (main): Make sure finclude() is called with a valid
10403         indepth value while handling -include.
10404
10405 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
10406
10407         * gencodes.c (output_predicate_decls): New function.
10408         (main): Call it.
10409         * machmode.h (GET_MODE_MASK): Arrange for it to be defined
10410         even if it is not the first time machmode.h is #included.
10411         * config/sh/sh.c (fpul_operand): Declare MODE argument.
10412         * tm.texi (PREDICATE_CODES): Document predicate declarations.
10413         * gcc.texi (Copyright): Added 2001.
10414
10415 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10416
10417         * c-common.c (c_common_lang_init): New function.  Warn if format
10418         warning options which only have effects when used with -Wformat
10419         are used without -Wformat.
10420         * c-common.h (c_common_lang_init): Declare.
10421         * c-lang.c (lang_init): Call c_common_lang_init.
10422         * objc/objc-act.c (lang_init): Call c_common_lang_init.
10423
10424 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10425
10426         * configure.in: Check for the mktemp command.
10427         * configure: Regenerate.
10428         * gccbug.in: Use a separate temporary file $TEMP0 for one use of
10429         $TEMP.  Create temporary files with mktemp, if available at
10430         configure time; otherwise use set -C.  Remove temporary files
10431         before exit.
10432
10433 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10434
10435         * configure.in: Require at least texinfo 4.0.  Check for whether
10436         Pod::Man is sufficiently recent to regenerate GCC manpages.
10437         * configure:  Regenerate.
10438         * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
10439         on #!.
10440         (GENERATED_MANPAGES): Define.
10441         (generated-manpages): New target.  Depend on cpp.1 as well as
10442         gcov.1.
10443         (install-man): Depend on $(GENERATED_MANPAGES) (defined by
10444         configure to generated-manpages or empty) rather than on the
10445         manpages directly.  Remove execute permission from installed
10446         gcov.1 as well as cpp.1.
10447         * cpp.1, gcov.1: Regenerate.
10448
10449 2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10450
10451         * builtins.c (expand_builtin_strncmp): Use host_integerp and
10452         tree_low_cst.  Allow using cmpstrsi in more cases.
10453
10454 Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10455
10456         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
10457         sized types.
10458
10459 Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
10460
10461         * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
10462         * Makefile.in (HOST_CFLAGS): Mention build-make.
10463
10464 Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10465
10466         * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
10467         as JUMP_INSN.
10468
10469 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
10470
10471         * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
10472         a REG rtx.
10473
10474         * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
10475         callers changed.
10476
10477         * alias.c (throughout): Use ORIGINAL_REGNO when accessing
10478         reg_base_value and reg_known_value arrays.
10479         (init_alias_analysis): Add more cases to detect known values.
10480         * sched-deps.c (deps_may_trap_p): New function.
10481         (sched_analyze_2): Use it.
10482
10483 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
10484
10485         * combine.c (simplify_shift_const): Even if we're sign-extracting,
10486         don't discard an ASHIFTRT if we're shifting in a wider mode.
10487
10488 2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10489
10490         * toplev.c (rest_of_compilation): Don't print basic block information
10491         when CFG isn't up to date.
10492
10493 2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
10494
10495         * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
10496         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
10497         (UNALIGNED_SHORT_ASM_OP): Define.
10498         (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
10499
10500 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
10501
10502         * fold-const.c (fold_convert): Fix typo.
10503
10504 2001-01-02  Richard Henderson  <rth@redhat.com>
10505
10506         * c-common.h (ASM_INPUT_P): New.
10507         * c-parse.in (asm): Set it when needed.
10508         * c-semantics.c (genrtl_asm_stmt): Test it instead of the
10509         existance of an operand.
10510
10511 Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
10512
10513         * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
10514         (dwarf2out_frame_debug_expr): Likewise.
10515         (mem_loc_descriptor): Handle PRE and POST_MODIFY.
10516
10517 Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
10518
10519         * i386.c (ix86_split_to_parts): Return number of part required;
10520         handle TFmodes.
10521         (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
10522         TFmodes.
10523         (ix86_split_long_move): Use number of part returned
10524         by ix86_split_to_parts
10525         * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
10526         New macros.
10527         (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
10528         (LONG_DOUBLE_TYPE_SIZE): Change from constant.
10529         (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
10530         (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
10531         (ALIGN_MODE_128): Add TFmode.
10532         (IS_STACK_MODE): Likewise.
10533         (HARD_REGNO_NREGS): TFmode needs 3 registers.
10534         (HARD_REGNO_OK): Support TFmodes.
10535         (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
10536         * i386.md (scheduler definitions): Use memory operand to determine
10537         fst/fld instructions; use mode attribute to determine real mode of
10538         the instruction.
10539         (*tf): New patterns, expanders and splitters; based on XFmode patterns.
10540         * invoke.texi (128bit-long-double, 96bit-long-double): Document.
10541
10542 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
10543
10544         * tree.def (TRUTH_NOT_EXPR): Improve documentation.
10545
10546 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
10547
10548         * expr.c (store_constructor_field): Update ALIGN before calling
10549         store_constructor.
10550
10551 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
10552
10553         * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
10554         host_integerp.
10555
10556 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
10557
10558         * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
10559         incomplete type.
10560
10561 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
10562
10563         * c-decl.c (start_function): Don't warn on third parameter to main.
10564
10565 2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10566
10567         * tsystem.h: Define HAVE_DECL_GETOPT.
10568
10569 2001-01-02  Philip Blundell  <pb@futuretv.com>
10570
10571         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
10572         of input operand.
10573
10574 2001-01-02  Richard Henderson  <rth@redhat.com>
10575
10576         * alpha.md (*ze_and_ne): Duplicate insn condition to split.
10577
10578 2001-01-02  Andreas Jaeger  <aj@suse.de>
10579
10580         * c-decl.c (c_decode_option): Remove support of
10581         -Wmissing-noreturn.
10582
10583         * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
10584         (W_options): Add -Wmissing-noreturn here.
10585
10586         * flow.c: Define lang_missing_noreturn_ok_p.
10587         (check_function_return_warnings): Use it.
10588
10589         * c-common.h: Declare lang_missing_noreturn_ok_p.
10590
10591         * c-lang.c (c_missing_noreturn_ok_p): New function.
10592         (lang_init): Set lang_missing_noreturn_ok_p.
10593
10594         * invoke.texi (Warning Options): Document this.
10595
10596 2000-12-27  Phil Edwards  <pme@sources.redhat.com>
10597
10598         * extend.texi (C++ Extensions):  New node for C++ attributes;
10599         describe init_priority and com_interface.
10600         * invoke.texi:  Remove -finit-priority as it now has zero effect.
10601         * install.texi:  Fix xref syntax.
10602         * md.texi:  Likewise.
10603
10604 Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10605
10606         * config.gcc (sparc64-wrs-vxworks*): New case.
10607         * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
10608
10609         * config/sparc/sparc.c (sparc_override_options): Do support different
10610         pointer and architecture size.
10611         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
10612         (POINTERS_EXTEND_UNSIGNED): Define.
10613         (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
10614         (FUNCTION_MODE): Define to be Pmode.
10615         * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
10616
10617         * function.c (expand_function_end): Properly handle DECL_RESULT
10618         and copy when ptr_mode != Pmode.
10619         * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
10620
10621 2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10622
10623         * c-common.c (c_common_nodes_and_builtins): Set prototype
10624         parameters for __builtin_fputs, __builtin_fputc and
10625         __builtin_fwrite.  Don't declare plain fputc as a builtin.
10626
10627 2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10628
10629         * loop.c (add_label_notes): Increment the label usage count when
10630         a note is added to an insn which refers to a CODE_LABEL.
10631         * gcse.c (add_label_notes): Likewise.
10632
10633 2001-01-01  Andreas Jaeger  <aj@suse.de>
10634
10635         * loop.c (scan_loop): Use xmalloc to allocate movables.
10636
10637 2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
10638
10639         * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
10640         * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
10641         * reload1.c (REGISTER_MOVE_COST): Likewise.
10642         * regclass.c (REGISTER_MOVE_COST): Likewise.
10643         (move_cost, may_move_in_cost, may_move_out_cost): Add mode
10644         dimension.  Adjust all users.
10645         (init_reg_sets_1): Iterate on all modes.
10646         * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
10647         * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
10648         * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
10649         * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
10650         * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
10651         * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
10652         * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
10653         * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
10654         * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
10655         * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
10656         * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
10657         * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
10658         * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
10659         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
10660         * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
10661         * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
10662         * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
10663         * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
10664         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
10665         * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
10666         * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
10667         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
10668         * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
10669         * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
10670         * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
10671         * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
10672         * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
10673
10674 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
10675
10676         * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
10677         arg VARIES_P.  Call it with extra arg.
10678         (true_dependence): Likewise.
10679         * rtl.h (rtx_addr_can_trap_p): Declare.
10680         (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
10681         prototypes.
10682         * rtlanal.c (rtx_addr_can_trap_p): No longer static.
10683         (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
10684         pic offset table register if it's zero.  All callers changed.
10685         (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
10686
10687 Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10688
10689         * explow.c (convert_memory_address, case SYMBOL_REF): Copy
10690         STRING_POOL_ADDRESS_P.
10691
10692         * config/sparc/sparc.c (input_operand): Properly test for short op.
10693
10694         * config.gcc (sparc-*-elf): Include sparc/sol2.h.
10695         (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
10696         (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
10697         * config/sparc/elf.h: No longer include sol2.h.
10698         * config/sparc/lifeelf.h: No longer include sparc/elf.h.
10699         * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
10700
10701         * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
10702
10703 2001-01-01  Michael Hayes  <mhayes@redhat.com>
10704
10705         * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
10706         (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
10707         (record_initial): Likewise.
10708         * unroll.c (copy_loop_body, loop_iterations): Likewise.
10709         (remap_split_bivs): Likewise.
10710
10711 2001-01-01  Michael Hayes  <mhayes@redhat.com>
10712
10713         * loop.c (loop_ivs_free): New function.
10714         (strength_reduce): Break out from...
10715
10716 2001-01-01  Michael Hayes  <mhayes@redhat.com>
10717
10718         * loop.h (struct iv): New.
10719         (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
10720         (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
10721         'reg_biv_class' fields with 'regs' and 'n_regs'.
10722         (struct ivs): Rename 'loop_iv_list' field to 'list'.
10723         * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
10724         * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
10725
10726 2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
10727
10728         * resource.c (mark_referenced_resources): Abort() before
10729         attempting to mark a pseudo register.
10730         (mark_set_resources): Likewise.
10731
10732 2001-01-01  Michael Hayes  <mhayes@redhat.com>
10733
10734         * loop.h (REG_IV_CLASS): New accessor macro.
10735         * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
10736         * unroll.c (REG_IV_CLASS): Likewise.
10737
10738 See ChangeLog.4 for earlier changes.