OSDN Git Service

a1418e8b348154e6077872d0f8b425427c133b76
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-05-02  David O'Brien  <obrien@FreeBSD.org>
2
3         * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h:  Do not
4         directly include rs6000/rs6000.h.  Instead do it in tm.h.
5
6 2001-05-02  Stan Shebs  <shebs@apple.com>
7
8         * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
9         NSConstantString for NeXT-style runtimes.
10         (STRING_OBJECT_GLOBAL_NAME): New macro.
11         (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
12         OCTI_STRING_CLASS_DECL.
13         (constant_string_global_id): New macro.
14         (string_class_decl): Ditto.
15         (setup_string_decl): New function.
16         (build_objc_string_object): Use it to build a NeXT runtime
17         compatible string initializer.
18
19 2001-05-02  Jakub Jelinek  <jakub@redhat.com>
20
21         * tradcpp.c (do_define): Make sure we don't walk past limit.
22
23 2000-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24
25         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
26         offsets if not REG_OK_STRICT.
27
28         * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
29         (INT_REG_OK_FOR_INDEX_P): Likewise.
30         (INT_REG_OK_FOR_BASE_P): Likewise.
31         (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
32         (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
33         (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
34         INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
35         REG_OK_FOR_BASE_P. Take an additional parameter.
36         (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
37         (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
38         (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
39         (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
40         rs6000_legitimate_address() and use it.
41         * config/rs6000/rs6000.c: Update all callers.
42         (rs6000_legitimate_address): New function.
43
44 2001-05-02  David Edelsohn  <edelsohn@gnu.org>
45
46         * config/rs6000/rs6000.c (rs6000_emit_move): Merge
47         special_constant conditional blocks together.
48
49 2001-05-02  Dale Johannesen  <dalej@apple.com>
50
51         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
52         parameter.
53         (STRICT_ARGUMENT_NAMING): Define.
54         * config/rs6000/rs6000.c (function_arg_advance, function_arg,
55         function_arg_partial_nregs, setup_incoming_varargs): Remove
56         args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
57         is defined.
58
59 Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
60
61         * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
62
63         * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
64         for replacement.
65
66         * expr.c (store_field): Do nothing except elaborate side-effects if
67         zero-bit field.
68
69 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
70
71         * c-lex.c: NULL_PTR -> NULL.
72         * cse.c: Likewise.
73         * emit-rtl.c: Likewise.
74         * gcse.c: Likewise.
75         * genpeep.c: Likewise.
76         * jump.c: Likewise.
77         * mips-tdump.c: Likewise.
78         * reload1.c: Likewise.
79         * rtlanal.c: Likewise.
80         * stmt.c: Likewise.
81         * stor-layout.c: Likewise.
82         * toplev.c: Likewise.
83
84 2001-05-01  Per Bothner  <per@bothner.com>
85
86         * expr.c (expand_expr):  When compiling LABELED_BLOCK_EXPR,
87         call do_pending_stack_adjust before emiting label.
88
89 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
90
91         * extend.texi: Fix typo.
92
93 2001-05-01  Stan Shebs  <shebs@apple.com>
94
95         * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
96         of UOBJC_MODULES_decl.
97         (generate_strings): Clear DECL_CONTEXT of new decl nodes.
98         (generate_descriptor_table): Ditto.
99         (generate_protocols): Ditto.
100         (generate_protocol_list): Ditto.
101         (generate_classref_translation_entry): Ditto.
102
103 2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
104
105         * invoke.texi (Optimize Options): Add documentation for `--param
106         max-delay-slot-insn-search' and `--param
107         max-delay-slot-live-search' and reorder --param section.
108         * params.def: Modify initial comment.
109         * params.h (param_info): Add `help' member.
110         * toplev.c (lang_independent_params): Include `help' description.
111         (display_help): Print --param parameters.
112
113 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
114
115         * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
116         Remove references to deleted files.
117         (*-*-openbsd): No need to override xmake_file.
118         (*-*-sysv4): Treat like *-*-sysv.
119
120         * configure.in: Probe for ldopen in various places, and set up
121         collect2 to be linked with them if found.
122         Don't dink with Windows registry stuff unless $host_os is a
123         Win32 os name.  Check to see if we need -ladvapi32.
124         * configure: Regenerate.
125
126         * Makefile: Get rid of CLIB and HOST_CLIB.
127         Substitute in COLLECT2_LIBS and link collect2 against its contents.
128         * build-make: Get rid of HOST_CLIB.
129
130         * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
131         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
132         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
133         config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
134         config/rs6000/x-rs6000: Delete.
135
136         * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
137         Don't set CLIB.
138
139         24 x-host fragments remain, 0 x-cpu, 3 top level.
140
141 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
142
143         * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
144         * configure: Regenerate.
145
146 2001-05-01  Angela Marie Thomas <angela@cygnus.com>
147
148         * Makefile.in (install-headers): Remove redundant dependency.
149
150 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
151
152         * c-tree.texi (USING_STMT): Document.
153
154 2001-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
155
156         * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
157         * c-common.c: Likewise.
158         * c-decl.c: Likewise.
159         * combine.c: Likewise.
160         * rs6000.c: Likewise.
161         * except.c: Likewise.
162         * explow.c: Likewise.
163         * expr.c: Likewise.
164         * fold-const.c: Likewise.
165         * function.c: Likewise.
166         * gcc.c: Likewise.
167         * gcse.c: Likewise.
168         * integrate.c: Likewise.
169         * loop.c: Likewise.
170         * objc/objc-act.c: Likewise.
171         * recog.c: Likewise.
172         * reg-stack.c: Likewise.
173         * reload.c: Likewise.
174         * reload1.c: Likewise.
175         * simplify-rtx.c: Likewise.
176         * stmt.c: Likewise.
177         * varasm.c: Likewise.
178
179 2001-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
180
181         * diagnostic.def: New file.
182         * diagnostic.h (diagnostic_t): New enum.
183         * Makefile.in (diagnostic.o): Depend on diagnostic.def
184
185 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
186
187         * tsystem.h: Test only POSIX for availability of string.h 
188         and time.h.
189         * config.gcc (all systems): If USG appeared in xm_defines,
190         change it to POSIX.  If both USG and POSIX appeared, just
191         delete USG. Remove unnecessary quotes around xm_defines
192         settings.
193         (m68k-crds-unos*): Don't #define unos - tested nowhere.
194         (m68k-apple-aux*): Don't #define AUX - tested nowhere.
195         (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
196         powerpc-*-linux*): No need to set xm_defines - handled by
197         global settings for *-*-linux*.
198
199 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
200
201         * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
202         Always include gstab.h, not system stab.h.  Don't provide
203         default definitions of N_CATCH or N_OPT.  Always use the
204         gstab.h variant of STAB_CODE_TYPE.
205         * final.c: Don't include stab.h/gstab.h at all, or provide
206         defaults for N_SLINE and N_SOL.
207
208         * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
209         N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
210         available.
211         * sdbout.c: Always include gsyms.h instead of system syms.h.
212
213         * configure.in: No need to check for stab.h.
214         * configure, config.in: Regenerate.
215         * Makefile.in (final.o): Don't depend on gstab.h.
216
217 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
218             Richard Henderson  <rth@redhat.com>
219
220         * extend.texi: Improve documentation of volatile asms.
221
222 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
223
224         * c-tree.texi: Fix thinko.
225         * gcc.texi: Likewise.
226
227 2001-04-30  Richard Henderson  <rth@redhat.com>
228
229         * c-common.c (c_promoting_integer_type_p): New function, from the
230         corpse of old macro.  Properly promote too-small enumerations and
231         booleans.  Adjust all callers.
232         * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
233         (c_promoting_integer_type_p): Declare.
234         * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
235         * c-typeck.c: Likewise.
236         (default_conversion): Remove now redundant boolean check.
237
238 2001-04-30  Jan Hubicka  <jh@suse.cz>
239             Richard Henderson  <rth@redhat.com>
240
241         * regmove.c (try_apply_stack_adjustment): Remove now redundant
242         sanity checks.
243         (combine_stack_adjustments_for_block): Don't combine stack
244         allocation followed by deallocations.  Handle grow-up stacks.
245
246 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
247
248         * fdl.texi: New file.
249         * c-tree.texi: Use the GFDL.
250         * gcc.texi: Likewise.
251
252 2001-04-30  Stan Shebs  <shebs@apple.com>
253
254         * invoke.texi: Add a section documenting Objective-C options.
255
256 2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>
257
258         * emit-rtl.c (try_split):  Copy EH notes to sequence.
259
260 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
261
262         * regmove.c (record_stack_memrefs): Catch all references to the
263         stack pointer.
264
265 2001-04-29  Toomas Rosin <toomas at ns dot tklabor dot ee>
266
267         * Makefile.in(stmp-fixinc): quote shell assignment values
268
269 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
270
271         * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
272
273         * gcc.c: Likewise.
274
275         * prefix.c: Likewise.
276
277 2001-04-28  Stan Shebs  <shebs@apple.com>
278
279         * objc/objc-act.c (handle_class_ref): Rewrite to flush target
280         specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
281         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
282         * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
283
284         * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
285         (NEXT_OBJC_RUNTIME): Define.
286
287 Sat Apr 28 21:02:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
288
289         * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
290         * simplify-rtx.c (simplify_gen_relational): Likewise.
291
292         * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
293
294         * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
295         * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
296
297         * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
298         registers in SSE case; fix handling of the immediates.
299         (negsf2_ifs, abssf2_ifs): Tweak constraints; require
300         operands to be in regsiters before reload.
301         (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
302         (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
303         (abstf,absxf,negtf,negxf splitters): Compute
304         properly the regnum for x86_64.
305         (avsdf2_if_rex64): New.
306
307 Sat Apr 28 10:36:23 2001  Jeffrey A Law  (law@cygnus.com)
308
309         * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
310         and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
311         into the constant pool.
312         * jump.c (jump_optimize_1): Remove barrier successors after all
313         the LABEL_NUSES counds have been computed.
314         (delete_barrier_successors): When deleting a tablejump insn, also
315         delete the jump table it uses.
316         * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
317         label into memory.
318
319 2001-04-28  Martin Kalen  <martin.kalen@todaysystems.com.au>
320
321         * pa.c (FRP): Remove erroneous white space in macro definition.
322
323 2001-04-28  Andreas Jaeger  <aj@suse.de>
324
325         * invoke.texi: Use XX-bit instead of XXbit or XX bit where
326         appropriate.
327         * extend.texi: Likewise.
328         * tm.texi: Likewise.
329
330 2001-04-28  Andreas Jaeger  <aj@suse.de>
331
332         * md.texi: Use XX-bit instead of XXbit or XX bit where
333         appropriate.
334
335 2001-04-28  Jens Schweikhardt <schweikh@schweikhardt.net>
336
337         * gcc.c (process_command): Allow -l lib in addition to -llib
338         for POSIX compliance. This fixes PR c/2347.
339
340         * invoke.texi: Update section on Link Options accordingly.
341
342 2001-04-27  Zack Weinberg  <zackw@stanford.edu>
343
344         * function.c (purge_addressof_1): Remove the duplicate
345         if (code == SET) block.  Fold the two if (code == ADDRESSOF)
346         blocks together.
347
348 2001-04-28  Jason Merrill  <jason_merrill@redhat.com>
349
350         * except.c (expand_eh_region_start): Don't start a new block.
351         (expand_eh_region_end): Don't end a block.
352         * stmt.c (expand_end_bindings): Don't end EH blocks.
353         (expand_decl_cleanup): Starting an EH region won't change the block.
354         (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
355         (is_eh_region): Lose.
356         * tree.h: Adjust.
357
358 2001-04-27  Jeffrey Oldham  <oldham@codesourcery.com>
359
360         * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
361
362         * collect2.c (main): Add `-L' case to remove duplicate entries.
363         (is_in_args): New function to check for a duplicate argument.
364         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
365         * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
366         * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
367         Define to be nonzero.
368
369 2001-04-27  Andreas Jaeger  <aj@suse.de>
370             Richard Henderson  <rth@redhat.com>
371
372         * md.texi (Machine Constraints): Document additional i386
373         constraints and fix description of "A".
374
375 Fri Apr 27 10:43:49 2001  Jeffrey A Law  (law@cygnus.com)
376
377         * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
378
379 2001-04-27  Jason Merrill  <jason_merrill@redhat.com>
380
381         * except.c (get_exception_filter): word_mode, not Pmode.
382
383 2001-04-26  Geoffrey Keating  <geoffk@redhat.com>
384
385         * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
386         common to other movsf patterns.  Move up so that in future
387         people who change the other patterns will change it too.
388         (movsf_lo_sum): Allow even for soft-float; add appropriate
389         constraints.
390         (movsf_high): Likewise.
391         (movsf_high+1): Allow even for soft-float.
392
393         * function.c (expand_function_end): Always clobber the
394         return registers, even if there is no return label.
395
396 Thu Apr 26 20:28:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
397
398         * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
399
400 Thu Apr 26 19:20:28 CEST 2001  Jan Hubicka  <jh@suse.cz>
401
402         * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
403         (pushqi2_rex64, pushhi2_rex64): Add.
404
405 2001-04-26  Andrew Haley  <aph@cambridge.redhat.com>
406
407         * except.c (expand_eh_region_end_cleanup): Force pending stack
408         adjust before emitting label that branches around cleanup code.
409
410 2001-04-26  H.J. Lu  (hjl@gnu.org)
411
412         * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
413
414         * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
415         define.
416         * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
417         (ASM_OUTPUT_SECTION_NAME): Likewise.
418         (ASM_WEAKEN_LABEL): Likewise.
419         (UNIQUE_SECTION): Likewise.
420         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
421         (ASM_OUTPUT_DESTRUCTOR): Likewise.
422         * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
423         (ASM_OUTPUT_SECTION_NAME): Likewise.
424         (ASM_WEAKEN_LABEL): Likewise.
425         (UNIQUE_SECTION): Likewise.
426         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
427         (ASM_OUTPUT_DESTRUCTOR): Likewise.
428         * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
429         * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
430         (ASM_FILE_START): Likewise.
431         (ASM_OUTPUT_SOURCE_LINE): Likewise.
432         (ASM_DECLARE_OBJECT_NAME): Likewise.
433         (ASM_FILE_END): Likewise.
434         (ASM_DECLARE_FUNCTION_NAME): Likewise.
435         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
436         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
437         (ASM_OUTPUT_CASE_LABEL): Likewise.
438         (ASM_OUTPUT_SKIP): Likewise.
439         (ASM_OUTPUT_ASCII): Likewise.
440         (ASM_OUTPUT_IDENT): Likewise.
441         (READONLY_DATA_SECTION): Likewise.
442         (EXTRA_SECTIONS): Likewise.
443         (EXTRA_SECTION_FUNCTIONS): Likewise.
444         (SELECT_RTX_SECTION): Likewise.
445         (SELECT_SECTION): Likewise.
446
447         * config/mips/linux.h (INVOKE__main): Undefine.
448         (CTOR_LIST_BEGIN): Likewise.
449         (CTOR_LIST_END): Likewise.
450         (DTOR_LIST_BEGIN): Likewise.
451         (DTOR_LIST_END): Likewise.
452         (SET_ASM_OP): Defined it to ".dummy".
453         (ASM_OUTPUT_DEF): Defined.
454         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
455
456 2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>
457
458         * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
459         assembler supports .p2align.
460
461 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
462
463         * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
464
465 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
466
467         * integrate.c (expand_inline_function): Check for error_mark_node
468         in actual argument.
469
470 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
471
472         * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
473         -m386 and -m486.
474
475 2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
476
477         * configure.in (configargs.h): Define thread_model.
478         * configure: Rebuilt.
479         * gcc.c (main): Print it with -v.
480
481 2001-04-25  Joseph S. Myers  <jsm28@cam.ac.uk>
482
483         * invoke.texi: Document -Wmissing-braces, -dumpspecs,
484         -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
485         * gcc.1: Regenerate.
486
487 2001-04-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
488
489         * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
490         is_redundant_typedef): Use static inline instead of inline static.
491
492 Wed Apr 25 18:21:01 2001  Christopher Faylor <cgf@cygnus.com>
493
494         * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
495         this directory is always searched.
496
497 2001-04-25  Richard Henderson  <rth@redhat.com>
498
499         * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
500         of registers to restore along non eh_return path.
501
502 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
503
504         * c-format.c (check_format_info_recurse): Handle
505         PLUS_EXPR for format string.
506
507 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
508
509         * config/ia64/ia64.h (CC1_SPEC): Define.
510         * config/ia64/linux.h (CC1_SPEC): Define.
511
512 Wed Apr 25 17:09:50 2001  J"orn Rennecke <amylaar@redhat.com>
513
514         * emit-rtl.c (constant_subword): Also do sign extension in
515         BITS_PER_WORD == 16 case.
516
517 2001-04-25  Jason Merrill  <jason_merrill@redhat.com>
518
519         * loop.c (try_swap_copy_prop): Go back to checking insn.
520
521 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
522
523         * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
524         if check_mode is non-zero.
525
526 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
527
528         * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
529         out and comparison sequence has been detected, put result into
530         proper temporary pseudo.
531
532 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
533
534         * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
535         * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
536         * libgcc2.c: Remove __dummy and __builtin_saveregs.
537         * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
538         * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
539         for future reference.
540
541 2001-04-24  Jason Merrill  <jason_merrill@redhat.com>
542
543         * except.c (reachable_handlers): Step out one level from a RESX.
544
545         * except.c (struct eh_region): Rename 'last' to 'resume'.
546         (mark_eh_region, duplicate_eh_region_1): Adjust.
547         (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
548         (build_post_landing_pads): Likewise.
549         (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
550         (expand_eh_region_end_must_not_throw): Likewise.
551         (connect_post_landing_pads): Thread (only) regions with non-deleted
552         resume insns.
553
554         * except.c (expand_eh_region_end_cleanup): Save the EH return data
555         registers around the cleanup.
556         (get_exception_filter): New fn.
557         (finish_eh_generation): Use it.
558
559 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
560
561         * c-semantics.c (add_scope_stmt): Don't call
562         current_scope_stmt_stack multiple times.
563
564 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
565             Nathan Sidwell <nathan@codesourcery.com>
566
567         Lazy __FUNCTION__ generation.
568         * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
569         RID_C99_FUNCTION_NAME): New _RIDs.
570         (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
571         (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
572         CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
573         global tree slots.
574         (function_id_node, pretty_function_id_node, func_id_node): Remove.
575         (c99_function_name_decl_node, function_name_decl_node,
576         pretty_function_name_decl_node, saved_function_name_decls):
577         Declare.
578         (struct language_function): Remove x_function_name_declared_p.
579         (make_fname_decl): Remove a parameter.
580         (declare_function_names): Remove prototype.
581         (start_fname_decls, finish_fname_decls): Prototype.
582         (fname_as_string): Likewise.
583         (fname_string, fname_decl): Likewise.
584         * c-common.c (make_fname_decl): Adjust.
585         (struct fname_var_t): New struct.
586         (fname_vars): New static array.
587         (declare_function_name): Remove.
588         (start_fname_decls, finish_fname_decls): New functions.
589         (fname_as_string): New function from remnants of
590         declare_function_name.
591         (fname_string, fname_decl): New functions.
592
593         * c-decl.c (c_function_name_declared_p): Remove.
594         (init_decl_processing): Don't generate __FUNCTION__ et al ids,
595         don't call declare_function_name. Call start_fname_decls.
596         (c_make_fname_decl): Adjust parameters. Generate the name. Don't
597         clobber the line number. Call finish_decl.
598         (start_function): Call start_fname_decls.
599         (finish_function): Call finish_fname_decls.
600         Remove c_function_name_declared_p.
601         (push_c_function_context): Don't push c_function_name_declared_p.
602         (pop_c_function_context): Don't pop c_function_name_declared_p.
603         (c_begin_compound_stmt): Don't check c_function_name_declared_p.
604         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
605         (program): Call finish_fname_decls for C.
606         (primary): Add VAR_FUNC_NAME.
607         (reswords): Add slots for __FUNCTION__ et al.
608         (rid_to_yy): Add mappings for __FUNCTION__ et al.
609         (yylexname): If it's a STRING_FUNC_NAME generate the function name
610         now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
611         * c-semantics.c (prune_unused_decls): Remove.
612         (finish_stmt_tree): Don't call prune_unused_decls.
613         (genrtl_decl_stmt): Don't prune unused decls here.
614
615 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
616
617         * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
618         constant pool, use the pool's SYMBOL_REF instead.
619
620         * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
621         v850e.
622
623 2001-04-23  Joseph S. Myers  <jsm28@cam.ac.uk>
624
625         * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
626         passing nested NOP_EXPRs to fold.
627
628 Mon Apr 23 14:32:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
629
630         * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
631
632 2001-04-22  Mark Mitchell  <mark@codesourcery.com>
633
634         * loop.c (loop_delete_insns): Add prototype.
635
636 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
637
638         * configure.in:  Remove ENABLE_STD_NAMESPACE.
639         * config.in:  Regenerated.
640         * configure:  Regenerated.
641
642 2001-04-22  Stan Shebs  <shebs@apple.com>
643
644         * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
645         into xm_defines.
646         * config/rs6000/xm-darwin.h: Remove file.
647
648 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
649
650         * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
651         (write_c_file_stat): Likewise.
652
653         * dbxout.c (dbxout_init): Likewise.
654
655         * profile.c (output_func_start_profiler): Likewise.
656
657 2001-04-22  Philipp Thomas  <pthomas@suse.de>
658
659         * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
660         require it instead of the CVS version.
661         * cpperror.c (v_message): Put a blank before the macro
662         body to not confuse exgettext.
663
664 2001-04-21  Mark Mitchell  <mark@codesourcery.com>
665
666         * flow.c (proagate_one_insn): Remove useless assignment.
667         * jump.c (delete_insn): Tidy.
668         * loop.c (try_copy_prop): When deleting an instruction with a
669         REG_RETVAL note, delete the entire libcall sequence.
670         (loop_delete_insns): New function.
671         * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
672         we're not substituting into them yet.
673
674 2001-04-21  Kazu Hirata  <kazu@hxi.com>
675
676         * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
677
678         * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
679         Fix a comment typo.
680         * config/i960/i960.c (signed_arith_operand): Likewise.
681
682         * calls.c (expand_call): Fix a comment typo.
683
684 2001-04-20  Zack Weinberg  <zackw@stanford.edu>
685
686         * configure.in: Probe for times, clock, struct tms, and clock_t.
687         * configure, config.in: Regenerate.
688         * timevar.c: Replace ifdef forest in get_time with (relatively)
689         straightforward series of checks based on autoconf's probes.
690
691 Fri Apr 20 12:24:50 2001  Jeffrey A Law  (law@cygnus.com)
692
693         * config/pa/som.h (NM_FLAGS): Define.
694
695 2001-04-20  Bernd Schmidt  <bernds@redhat.com>
696
697         * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
698         function.
699         * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
700         * ia64.c (nop_cycles_until): New function.
701         (prev_cycle, prev_first, last_issued): New static variables.
702         (ia64_sched_reorder): Additional arg for clock.
703         On final scheduling pass, emit extra NOPs as needed.
704         Set prev_first and prev_cycle.
705         (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
706         (ia64_variable_issue): Set last_issued.
707
708 2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
709
710         * config/i386/i386.c (ix86_expand_int_movcc,
711         ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
712
713 2001-04-20  Geoff Keating  <geoffk@redhat.com>
714
715         * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
716         ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
717         ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
718         ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
719         ctrdi_internal6): In the short-branch case, this insn is only 4
720         bytes long.  Reported by Reza Yazdani <reza@apple.com>.
721
722 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
723
724         * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
725         "=u" is used together with "st" resp. "st(1)" clobber.
726
727 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
728
729         * gcse.c (gcse_main): Fix comment typo.
730         (delete_null_pointer_check): Likewise.
731         (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
732         * cse.c (cse_insn): Likewise.
733         * function.c (fixup_var_refs_insns_with_hash): The sequence is
734         toplevel.
735
736 2001-04-19  Zack Weinberg  <zackw@stanford.edu>
737
738         * toplev.c: Excise all code for the undocumented -dm option.
739         (float_signal): Call signal just once, unconditionally.
740
741 2001-04-19  Geoff Keating  <geoffk@redhat.com>
742
743         * fold-const.c (fold): Use first_rtl_op rather than
744         TREE_CODE_LENGTH when looping over parameters of a tree.
745         Correct strange grouping in test for evaluated SAVE_EXPR.
746
747 Thu Apr 19 19:15:26 2001  Jeffrey A Law  (law@cygnus.com)
748
749         * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
750         * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
751
752         * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
753         name at 32 total characters.
754         (ASM_OUTPUT_SECTION_NAME): Similarly.  Also, only support placing
755         functions in named sections -- data items can still go into unique
756         sections, but they have normal names (ie $LIT$ and $DATA$).
757
758         * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
759         INIT_PRIORITY.
760
761 2001-04-19 DJ Delorie  <dj@redhat.com>
762
763         * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
764         to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
765         * config/i386/cygwin.h: Likewise.
766         * config/i386/mingw32.h: Likewise.
767         * config/vax/vms.h: Likewise.
768         * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
769
770         * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
771         to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
772         * config/i386/xm-cygwin.h: Likewise.
773         * config/i386/xm-djgpp.h: Likewise.
774         * config/i386/xm-mingw32.h: Likewise.
775         * config/vax/xm-vms.h: Likewise.
776
777         * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
778         instead of OBJECT_SUFFIX.
779         * collect2.c (find_a_file): Look for files matching the extension
780         HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
781         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
782         TARGET_EXECUTABLE_SUFFIX.
783         (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
784         (make_relative_prefix): Likewise.
785         (convert_filename): Use TARGET_ suffixes throughout.  Remove
786         NO_AUTO_EXE_SUFFIX.
787         (process_command): Likewise.
788         (do_spec_1): Likewise.
789         * java/lang.c (init_parse): Likewise.
790
791         * gcc.texi : Document four new options matching the pattern
792         (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
793         for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
794         documentation for NO_AUTO_EXE_SUFFIX.
795
796 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
797
798         * toplev.h (struct lang_hooks): Allow decode_option to indicate
799         that language-independent processing should not be done.
800         * toplev.c (main): Adjust accordingly.
801
802         * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
803         * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
804
805         * mips.md (reload_outputdi): Require that operand0 be a
806         general_operand.
807
808 2001-04-19  Jakub Jelinek  <jakub@redhat.com>
809
810         * invoke.texi (-Wshadow): Clarify.
811
812 2001-04-18  Mark Mitchell  <mark@codesourcery.com>
813
814         * loop.c (load_mems): Examine all the instructions in the loop
815         before concluding that all jumps branch to the first instruction
816         after the loop.
817
818 Wed Apr 18 20:32:03 2001  Christopher Faylor <cgf@cygnus.com>
819
820         * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
821
822 2001-04-18  Jakub Jelinek  <jakub@redhat.com>
823
824         * cpp.texi (-Wwhite-space): Remove.
825         (-Wall): -Wall does not imply -Wwhite-space.
826
827 2001-04-17  Zack Weinberg  <zackw@stanford.edu>
828
829         * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
830         use it instead of blindly generating a .stabs.
831         * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
832         in the right place.
833         * xcoffout.c: Don't bother defining default for N_CATCH.
834         (UNKNOWN_STAB): Use internal_error.
835         (stab_to_sclass): Remove now-unnecessary aborts.
836         Remove #if 0'ed case N_BROWS.  Add #ifdef N_OPT block.
837
838 Tue Apr 17 21:41:11 2001  Jeffrey A Law  (law@cygnus.com)
839
840         * jump.c (mark_all_labels): Canonicalize the tail recursion
841         label attached to CALL_PLACEHOLDER insns.
842
843 2001-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
844
845         * output.h (dump_flow_info, free_basic_block_vars,
846         which_alternative): Delete redundant prototypes.
847
848         * rtl.h (bss_section): Likewise.
849
850 2001-04-17  Loren J. Rittle  <ljrittle@acm.org>
851
852         * dbxout.c (N_OPT): Define if not available from <stab.h>
853
854 2001-04-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
855
856         * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
857         libraries and native K&R compilers.
858
859 2001-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
860
861         * c-typeck.c (convert_arguments): Don't check for width changes
862         with -Wtraditional.
863
864         * invoke.texi (-Wtraditional): Update documentation.
865
866 2001-04-16  Zack Weinberg  <zackw@stanford.edu>
867
868         * toplev.c (output_lang_identify): Delete.
869         (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
870         Don't generate gcc2_compiled. label.  Don't emit a nop if profiling.
871         If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
872         after calling ASM_FILE_END.
873
874         * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
875         Instead, unconditionally emit an N_OPT stab with string equal
876         to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
877
878         * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
879
880         * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
881         config/psos.h, config/ptx4.h, config/1750a/1750a.h,
882         config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
883         config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
884         config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
885         config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
886         config/i370/i370.h, config/i386/beos-elf.h,
887         config/i386/osf1elf.h, config/i386/osfrose.h,
888         config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
889         config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
890         config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
891         config/m68k/tower-as.h, config/mcore/mcore-elf.h,
892         config/mips/iris6.h, config/mips/osfrose.h,
893         config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
894         config/sparc/sp64-elf.h:
895         Delete definitions of any or all of: ASM_IDENTIFY_GCC,
896         ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
897
898         * config/elfos.h, config/freebsd.h, config/linux.h,
899         config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
900         config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
901         config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
902         of ASM_FILE_START which merely emit a .version directive.  Delete
903         definitions of ASM_FILE_END which merely emit an .ident directive.
904
905         * config/avr/avr.h, config/vax/vax.h: Delete definition of
906         ASM_IDENTIFY_GCC and move part of its logic into
907         ASM_FILE_START.
908
909         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
910         config/sparc/linux-aout.h: Don't emit .version directive in
911         ASM_FILE_START.
912
913         * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
914         (output_file_start): Correct comment.
915
916         * config/i386/osfrose.h: Don't emit trailing .ident directive.
917         * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
918         to match gdb.
919         * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
920         * config/rs6000/aix.h: Correct comment.
921
922         * config/i386/i386afe.h: Delete.
923         * config.gcc: Remove references to i386afe.h.
924
925         * tm.texi: Delete documentation of ASM_IDENTIFY_GCC.  The
926         other macros deleted by this patch were undocumented.
927
928 Mon Apr 16 08:03:48 2001  Jeffrey A Law  (law@cygnus.com)
929
930         * pa.md (reload_outdi): Operand 0 must be a non hard register.
931
932         * pa.c (secondary_reload_class): SAR<->FP copies require a
933         secondary register.
934
935         * install.texi (mips-mips-bsd): Update list of functions
936         required to include memmove.
937         * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
938         used functions to include memmove.
939
940 2001-04-15  Toon Moene  <toon@moene.indiv.nluug.nl>
941
942         * i386.md (sqrtdf2): SFmode should be DFmode.
943
944 2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
945
946         * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
947         (find_moveable_store): Likewise.
948
949 2001-04-15  Jim Wilson  <wilson@redhat.com>
950
951         * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
952
953 Sat Apr 14 16:24:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
954
955         * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
956         (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
957
958 2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
959
960         * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
961         first alternative.
962
963 2001-04-14  Alan Modra  <amodra@one.net.au>
964
965         * pa.c (force_mode): New function.
966         (emit_move_sequence): Use it instead of generating new rtx_REGs.
967
968 2001-04-13  Jim Wilson  <wilson@redhat.com>
969
970         * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
971         (first_instruction): New static variable.
972         (rtx_needs_barrier): Return 1 for alloc.
973         (init_insn_group_barriers): Set first_instruction.
974         (rws_sum): Delete duplicate definition.
975         (group_barrier_needed_p): Return 0 when first_instruction true.
976         (safe_group_barrier_needed_p): Save and restore first_instruction
977         around group_barrier_needed_p call.
978
979 Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
980
981         * expr.h (enum libfunc_index): Add LTI_memmove.
982         (memmove_libfunc): Define macro.
983         * optabs.c (init_optabs): Initialize memmove_libfunc.
984         * expr.c (expand_assignment): Use memmove_libfunc instead of
985         memcpy_libfunc.
986
987 2001-04-13  Alan Modra  <alan@linuxcare.com.au>
988
989         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
990         fp mode addresses.
991
992 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
993
994         * Makefile.in (reg-stack.o): Depend on reload.h.
995         (insn-attrtab.o): Depend on flags.h.
996
997         * genattrtab (main): Include flags.h in insn-attrtab.c.
998
999         * reg-stack.c: Include reload.h.
1000
1001         * sparc.h (flag_pic): Delete redundant declaration.
1002
1003         * output.h (flag_pic): Likewise.
1004
1005         * tree.h (pedantic): Likewise.
1006
1007 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1008
1009         * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
1010
1011         * jump.c, regmove.c, toplev.c: Include reload.h.
1012
1013         * reload.h (reload_cse_regs): Declare.
1014
1015         * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
1016         reload_cse_regs, init_reload, mark_home_live, reload,
1017         init_caller_save): Delete redundant prototypes.
1018
1019 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1020
1021         * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
1022
1023         * regclass.c, ssa.c: Include expr.h.
1024
1025         * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
1026         gen_move_insn): Delete redundant declarations.
1027
1028 2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1029
1030         * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
1031         (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
1032         MAKEINFO and MAKEINFOFLAGS too.
1033         (stage4_build): Correctly order -B flags.
1034
1035 2001-04-13  Alan Modra  <amodra@one.net.au>
1036
1037         * pa.c (hppa_init_pic_save): Set rtx_unchanging for
1038         PIC_OFFSET_TABLE_SAVE_RTX.
1039         (zdepi_cint_p): Describe zdepi insn.
1040         Formatting and white space fixes throughout file.
1041
1042         * pa.c (uint32_operand): Don't use long constant >= 2^32.
1043         (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
1044         about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
1045         (compute_movstrsi_length): Make `align' unsigned to avoid warning.
1046         (output_64bit_and): Use plain `int's for shift counts.
1047         (output_64bit_ior): Likewise.
1048         (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
1049         * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
1050         `N', and simplify.
1051
1052         * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
1053         * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
1054         * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
1055         NEW_HP_ASSEMBLER into one.  Kill warnings.
1056
1057         * pa-gas.h: Delete file.
1058         * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
1059         Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
1060         hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
1061         instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
1062
1063         * config/pa/mill32.S: New file.
1064         * config/pa/mill64.S: New file.
1065         * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
1066         LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
1067         * config/pa/t-linux64: New file.
1068         * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
1069         (LIB1ASMFUNCS, LIB1ASMSRC): Define.
1070         (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
1071
1072         * elfos.h (SELECT_SECTION): Undef before defining.
1073         * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
1074         (LIB_SPEC): Remove -lmilli.
1075         (DBX_REGISTER_NUMBER): Remove.
1076         (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
1077         (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
1078         NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
1079         DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
1080         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
1081         ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
1082         ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
1083         TARGET_GAS): Define.
1084         * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
1085         (function_arg): If TARGET_ELF32, pass fp args in both general and fp
1086         regs if we don't have a prototype.
1087         * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
1088         * pa.h (TARGET_ELF32): Default to 0 if undefined.
1089         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
1090         EH_RETURN_HANDLER_RTX): Define.
1091         * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
1092         (DWARF_FRAME_REGNUM): Define.
1093         * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
1094         * pa32-linux.h: New file.
1095         * pa64-linux.h: New file.
1096
1097         * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1098         (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
1099         (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
1100         NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
1101         DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
1102         DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
1103         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
1104         FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
1105         READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
1106         DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
1107         UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
1108         ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
1109         TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
1110         * pa64-hpux.h: New file.
1111         (ASM_FILE_START): Correct typo.
1112         (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
1113         * config.gcc: Modify for above.
1114
1115 Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
1116
1117         * jump.c (jump_optimize_1): Don't delete dead stores here.
1118         * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
1119         prior to running jump optimize before cse2.
1120
1121 2001-04-12  Richard Henderson  <rth@redhat.com>
1122
1123         * Makefile.in (regmove.o): Depend on except.h.
1124         * regmove.c: Include it.
1125
1126 2001-04-12  Stan Shebs  <shebs@apple.com>
1127
1128         * objc/objc-act.c: Remove all code ifdefed with the never-used
1129         macro OBJC_INT_SELECTORS.
1130         * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
1131         * tm.texi: Remove doc for OBJC_INT_SELECTORS.
1132
1133 Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
1134
1135         * config/pa/quadlib.c: Add prototypes.
1136
1137 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1138
1139         * bitmap.h (debug_bitmap): Delete redundant prototype.
1140
1141         * rtl.h (get_frame_size): Likewise.
1142
1143 2001-04-12  Jim Wilson  <wilson@redhat.com>
1144
1145         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
1146         to just emit an fnorm.
1147
1148 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1149
1150         * c-common.h (truthvalue_conversion, type_for_mode,
1151         type_for_size): Delete redundant declarations.
1152
1153         * c-lex.h (is_class_name): Likewise.
1154
1155         * c-tree.h (pedantic, convert, getdecls, gettags,
1156         global_bindings_p, init_decl_processing, insert_block,
1157         maybe_build_cleanup, poplevel, print_lang_decl,
1158         print_lang_identifier, print_lang_type, pushdecl, pushlevel,
1159         set_block, incomplete_type_error, build_function_call,
1160         lvalue_or_else, mark_addressable): Likewise.
1161
1162         * expr.h (expand_tree_builtin): Likewise.
1163
1164 2001-04-12  Mark Mitchell  <mark@codesourcery.com>
1165
1166         * invoke.texi: Document --param max-gcse-memory.
1167
1168 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1169
1170         * configure.in (errno): Check for declaration.
1171         * configure, config.in: Regenerated.
1172
1173         * system.h (errno): Only declare if not already done.
1174
1175 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
1176
1177         * recog.c (general_operand, immediate_operand,
1178         nonmemory_operand): Require CONST_INTs to be sign-extended
1179         values for their modes.
1180
1181 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
1182
1183         * expmed.c (store_bit_field): Truncate CONST_INTs.
1184         (expand_mult_highpart, expand_divmod): Likewise.
1185         * expr.c (convert_modes, store_field): Likewise.
1186         * integrate.c (expand_inline_function): Use promote_mode() to
1187         determine whether to convert_modes() an argument as signed
1188         or unsigned.
1189         * optabs.c (expand_binop): Get CONST_INT operands
1190         sign-extended for their appropriate modes.
1191         * stmt.c (emit_case_nodes): Convert node values to the
1192         appropriate mode.
1193         (expand_end_case): Convert minval and range to the appropriate
1194         mode.
1195         * unroll.c (loop_iterations): Truncate abs_diff to the mode of
1196         the iteration variable.
1197         * varasm.c (immed_double_const): Don't require words to be
1198         narrower than host wide ints to properly sign-extend
1199         CONST_INTs.
1200
1201 2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1202
1203         * sh.md (builtin_setjmp_receiver): New expander.
1204
1205 2001-04-12  David Edelsohn  <dje@watson.ibm.com>
1206
1207         * config/rs6000/rs6000.c (rs6000_emit_move): Do not
1208         special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
1209         for generating CONST_INT and CONST_DOUBLE.
1210
1211 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
1212
1213         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
1214         already sign-extended.
1215         (rs6000_emit_prologue): Make register iterator signed.
1216         (rs6000_emit_epilogue): Likewise.
1217         * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
1218         and low.
1219         (movsf split, movdf split): Sign-extend CONST_INTs.
1220         (movdi splits): Likewise.
1221
1222 2001-04-12  Kelley Cook <kelley.cook@home.com>
1223
1224         * config-lang.in (lang_dirs): Add in zlib.
1225
1226 2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
1227
1228         * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
1229         operands that make it to RTL.
1230
1231 2001-04-11  Stan Shebs  <shebs@apple.com>
1232
1233         Add Darwin (Mac OS X kernel) native support.
1234         * config.gcc (powerpc-*-darwin*): Add native bits.
1235         * config/darwin.c: New file, generic Darwin support functions.
1236         * config/darwin.h: New file, generic Darwin definitions.
1237         * config/darwin-protos.h: New file, generic Darwin prototypes.
1238         * rs6000/darwin.h: New file, Darwin for PowerPC.
1239         * rs6000/t-darwin: New file, Darwin makefile fragment.
1240         * rs6000/rs6000.h (OBJECT_MACHO): New macro.
1241         (TARGET_MACHO): Ditto.
1242         (rs6000_abi): Add ABI_DARWIN.
1243         (RS6000_REG_SAVE): Add ABI_DARWIN case.
1244         (RS6000_SAVE_AREA): Ditto.
1245         (FP_ARG_MAX_REG): Ditto.
1246         (RETURN_ADDRESS_OFFSET): Ditto.
1247         * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
1248         cases.
1249         (rs6000_emit_move): Add ABI_DARWIN cases.
1250         (print_operand): Ditto.
1251         (first_reg_to_save): Ditto.
1252         (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
1253         (debug_stack_info): Ditto.
1254         (rs6000_emit_prologue): Ditto.
1255         (rs6000_emit_epilogue): Ditto.
1256         (output_profiler_hook): Ditto.
1257         (output_function_profiler): Ditto.
1258         (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
1259         (output_mi_thunk): Add TARGET_MACHO case.
1260         (add_compiler_stub): Ditto.
1261         (output_compiler_stub): Ditto.
1262         (no_previous_def): Ditto.
1263         (output_call): Ditto.
1264         (machopic_output_stub): Ditto.
1265         (rs6000_machopic_legitimize_pic_address): Ditto.
1266         (toc_section): Ditto.
1267         * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
1268         (macho_high): Ditto.
1269         (macho_low): Ditto.
1270         (movsi_low): Ditto.
1271         (load_macho_picbase): Ditto.
1272         (call): Add TARGET_MACHO case to modify function.
1273         (call_value): Ditto.
1274         (call_nonlocal_sysv): Add ABI_DARWIN case.
1275         (call_value_nonlocal_sysv): Ditto.
1276         * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
1277         Add prototype.
1278         (machopic_output_stub): Ditto.
1279         * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
1280
1281 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
1282
1283         * dwarf2out.c (modified_type_die): Don't create new types here.
1284         * tree.h (get_qualified_type): New function.
1285         (build_qualified_type): Adjust comment.
1286         * tree.c (get_qualified_type): New function.
1287         (build_qualified_type): Use it.
1288
1289 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1290
1291         * cpp.texi (-Wtraditional): Update description.
1292
1293         * invoke.texi (-Wtraditional): Likewise.
1294
1295 2001-04-11  Jim Wilson  <wilson@redhat.com>
1296
1297         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
1298         requires more than 64 bits of alignment.
1299
1300 2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1301
1302         * cpplib.c (do_line): Sanity check iff enable checking.
1303
1304 2001-04-11  Richard Henderson  <rth@redhat.com>
1305
1306         * Makefile.in (insn-recog.o): Depend on toplev.h.
1307         (insn-emit.o, doloop.o): Likewise.
1308         * genrecog.c, genemit.c: Include toplev.h in generated file.
1309         * doloop.c: Include toplev.h.
1310
1311 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
1312
1313         * Makefile.in (gcse.o): Depend on params.h.
1314         * gcse.c: Include params.h.
1315         (gcse_main): Don't do GCSE if doing so will take inordinate
1316         amounts of memory.
1317         * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
1318         * params.h (MAX_GCSE_MEMORY): New macro.
1319
1320 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1321
1322         * Makefile.in (insn-output.o): Depend on $(EXPR_H).
1323
1324         * genoutput.c (output_prologue): Include expr.h in insn-output.c.
1325
1326 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1327
1328         * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
1329
1330         * real.h (ereal_atof, real_value_truncate, target_isnan,
1331         target_isinf, target_negative, assemble_real, debug_real): Delete
1332         redundant prototypes.
1333
1334         * Makefile.in (ifcvt.o): Depend on toplev.h.
1335
1336         * c-semantics.c: Include expr.h.
1337
1338         * ifcvt.c: Include toplev.h.
1339
1340         * expr.h (rtx_equal_p): Delete prototype.
1341
1342         * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
1343         protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
1344         eliminate_constant_term, expand_complex_abs, find_single_use,
1345         make_tree, init_expr_once, init_optabs, supports_one_only):
1346         Likewise.
1347
1348         * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
1349         rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
1350         expand_assignment, store_expr, emit_line_note_after,
1351         emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
1352
1353         * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
1354
1355         * sparc-protos.h: Delete redundant prototypes.
1356
1357 2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
1358
1359         * reload.c (push_reload): Add condition missed in SUBREG byte
1360         offset patch.
1361
1362 Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1363
1364         * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
1365
1366 Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
1367
1368         * i386.md (floatsisf_sse): Fix output template
1369         * i386.c (ix86_expand_fp_movcc)
1370
1371         * reg-stack.c (emit_pop_insn): Handle complex modes.
1372         (move_for_stack_reg): Emit proper move mode.
1373         (subst_stack_regs_pat): Handle complex modes.
1374
1375 2001-04-11  Jakub Jelinek  <jakub@redhat.com>
1376
1377         * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
1378
1379 2001-04-10  Richard Henderson  <rth@redhat.com>
1380
1381         * libgcc2.h (__terminate_func_ptr): Remove typedef.
1382         (__pure_virtual, __terminate, __terminate_set_func,
1383         __default_terminate, __throw_type_match, __empty,
1384         __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
1385         __eh_rtime_match, __unwinding_cleanup, __rethrow,
1386         __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
1387         Remove prototypes of deleted functions.
1388
1389 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1390
1391         * c-typeck.c (convert_arguments): -Wtraditional now activates
1392         -Wconversion warnings, except for changes in signed-ness.
1393         Detect complex<->int & int<->complex conversions as well.
1394
1395         * invoke.texi (-Wtraditional): Document it.
1396
1397 Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1398
1399         * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
1400         * flow.c (set_block_for_new_insns): Remove needless cast and
1401         properly check for unset block number.
1402
1403 2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
1404
1405         * function.c (purge_single_hard_subreg_set): Only check REGNO if
1406         the subreg was a hard register. Pseudos are left as subregs.
1407
1408 2001-04-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1409
1410         * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
1411         (LIB2ADD_ST): New macro, pass it to mklibgcc.
1412         * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
1413         (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
1414         * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
1415
1416 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
1417
1418         * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
1419
1420 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
1421
1422         * output.h (set_block_num): Missed it earlier, remove deprecated
1423         prototype.
1424
1425 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
1426
1427         * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
1428         (load_killed_in_block_p): Change bb parameter from int to basic_block.
1429         (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
1430         (handle_rd_kill_set): Change bb parameter from int to basic_block.
1431         (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
1432         (expr_killed_p): Change bb parameter from int to basic_block, pass
1433         basic_blocks instead of ints as parameters.
1434         (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
1435         (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
1436         from int to basic_block, pass basic_blocks instead of ints as parms.
1437         (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
1438         parameter from int to basic_block, pass basic_blocks instead of ints.
1439         (process_insert_insn): Pass basic_blocks instead of ints as parameters.
1440         (insert_insn_end_bb): Change bb parameter from int to basic_block,
1441         pass basic_blocks instead of ints.
1442         (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
1443         basic_blocks instead of ints as parameters.
1444         (pre_delete): Pass basic_blocks instead of ints as parameters.
1445         (hoist_expr_reaches_here_p): Change bb parameter from int to
1446         basic_block, pass basic_blocks instead of ints.
1447         (hoist_code): Pass basic_blocks instead of ints as parameters.
1448         (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
1449         Change bb parameter from int to basic_block.
1450         (build_store_vectors): Pass basic_blocks instead of ints as parameters.
1451         (insert_insn_start_bb): Change bb parameter from int to basic_block,
1452         pass basic_blocks instead of ints.
1453         (insert_store): Pass basic_blocks instead of ints as parameters.
1454         (replace_store_insn, delete_store): Change bb parameter from int to
1455         basic_block, pass basic_blocks instead of ints.
1456         (store_motion): Pass basic_blocks instead of ints as parameters.
1457
1458 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
1459
1460         * basic-block.h (set_new_block_for_insns): New Prototype.
1461         (set_block_num): Delete prototype.
1462         * flow.c (set_block_num): Remove obsolete function.
1463         (set_block_for_new_insns): Set BB for single or multiple insns.
1464         * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
1465         (process_insn_end_bb): Use set_block_for_new_insns or
1466         set_block_for_insn instead of set_block_num.
1467         (pre_insert_copy_insn): Use set_block_for_new_insns.
1468         (update_ld_motion_stores): Use set_block_for_new_insns.
1469         (insert_insn_start_bb): Use set_block_for_new_insns.
1470         (replace_store_insn): Use set_block_for_new_insns.
1471
1472 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
1473             Jeff Law  <law@redhat.com>
1474
1475         * alias.c (get_addr): Externalize.
1476         (canon_true_dependence): New function. Behaves like true_dependance
1477         except it already assumes a MEM has been canonicalized.
1478         * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
1479         * gcse.c (struct ls_expr): Add load/store expressions structure.
1480         (modify_mem_list, canon_modify_mem_list): New variable.
1481         (gcse_main): Initialize & finalize alias analysis. Use enhanced
1482         load motion and store motion if requested.
1483         (alloc_gcse_mem): Allocate space for modify_mem_list array.
1484         (free_gcse_mem): Free the modify_mem_list array.
1485         (oprs_unchanged_p): Use load_killed_in_block_p.
1486         (gcse_mems_conflict_p, gcse_mem_operand): New variables.
1487         (mems_conflict_for_gcse_p): New function.  Don't kill loads
1488         with stores to themselves if its in the load/store expression list.
1489         (load_killed_in_block_p): New function.
1490         (canon_list_insert): New Function.
1491         (record_last_mem_set_info): Keep a list of all instructions which
1492         can modify memory for each basic block.
1493         (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
1494         (oprs_not_set_p): Use load_killed_in_block_p.
1495         (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
1496         (expr_killed_p): Use load_killed_in_block_p.
1497         (compute_transp): Do not pessimize memory references.
1498         (pre_edge_insert): Update stores for a load motion expression.
1499         (one_pre_gcse_pass): Check loads/stores for extra load motion.
1500         (ldst_entry): Find or create a ldst_expr structure.
1501         (free_ldst_entry): Free memory for an individual item.
1502         (free_ldst_mems): Free entire load/store expression list.
1503         (print_ldst_list): Print debug info.
1504         (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
1505         (enumerate_ldsts): Assign integer values to each entry in list.
1506         (first_ls_expr): First expression in the list.
1507         (next_ls_expr): Next expression in the list.
1508         (simple_mem): Check if expression qualifies for ld/st expression list.
1509         (invalidate_any_buried_refs): Remove from expression list if its
1510         used in some other way we dont understand.
1511         (compute_ld_motion_mems): Find all potential enhanced load motion
1512         expression.
1513         (trim_ld_motion_mems): Remove any expressions which are invalid.
1514         (update_ld_motion_stores): Copy store values to registers for loads
1515         which have been moved.
1516         (regvec, st_antloc, num_store): New global statics.
1517         (reg_set_info): Marks registers as set.
1518         (store_ops_ok): Verfies registers expressions are valid in a block.
1519         (find_moveable_store): Look for moveable stores in a pattern.
1520         (compute_store_table): Find stores in a function worth moving, maybe.
1521         (load_kills_store): Check dependance of a load and store.
1522         (find_loads): Find any loads in a pattern.
1523         (store_killed_in_insn): Check if a store is killed in an insn.
1524         (store_killed_after): Check is store killed after an insn in a block.
1525         (store_killed_before): Check is store killed before an insn in a block.
1526         (build_store_vectors): Generate the antic and avail vectors.
1527         (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
1528         (insert_store): Add a store to an edge.
1529         (replace_store_insn): Replace a store with a SET insn.
1530         (delete_store): Delete a store insn.
1531         (free_store_memory): Free memory.
1532         (store_motion): Perform store motion.
1533         * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
1534         * rtl.h (get_addr, canon_true_dependence): Add prototypes.
1535         * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
1536         (f_options): Add gcse-lm and gcse-sm.
1537
1538 Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
1539
1540         * i386.c (expand_fp_movcc): Fix condition reversal code.
1541
1542         * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
1543         * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
1544         (CLASS_MAX_NREGS): Use it.
1545
1546         * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
1547         handle properly complex values.
1548         (CLASS_MAX_NREGS): Likewise; update comment.
1549
1550 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
1551
1552         * ia64.c (ia64_flag_schedule_insns2): New variable.
1553         (ia64_override_options): Initialize it.  Clear
1554         flag_schedule_insns_after_reload.
1555         (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
1556
1557 Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
1558
1559         * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
1560         Do not require source to match destination anymore;
1561         Add abort to the nontrivial cases that should be handled by split.
1562         (fix_trunc?fdi): Add SSE case for x86_64.
1563         (floatdi?f): Likewise.
1564         (floatdi?f_sse): New.
1565         (fix_trunc?fdi_sse): New.
1566
1567 2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
1568
1569         * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
1570         (DEBUG_ARANGES_END_LABEL): Ditto.
1571         (dwarfout_init): Generate length and version fields at the start
1572         of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
1573         after the length field.
1574         (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
1575         the .debug_aranges info.
1576
1577 Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
1578
1579         * i386.c (call, call_value): Make sure that resulting call_insn
1580         does have proper second operand.
1581
1582 Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
1583
1584         * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
1585         function.  Remove include of sys/cygwin.h.
1586
1587 Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
1588
1589         * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
1590         (CPP_SPEC): Always search */include/w32api for header files.
1591         (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
1592         (LINK_SPEC): Add "cyg" to the library search prefixes.
1593
1594 2001-04-08  Philip Blundell  <philb@gnu.org>
1595
1596         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
1597
1598 2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1599
1600         * cpperror.c (print_location): Don't special case <stdin>.
1601         (_cpp_begin_message): Handle WARNING_SYSHDR the same as
1602         WARNING, but we don't check if we're in system headers.
1603         * cpplib.h (enum error_type): WARNING_SYSHDR: New.
1604         * cpplib.c (do_warning): Warn in system headers.
1605
1606 2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
1607
1608         * mbchar.c: Include config.h first.
1609
1610 2001-04-07  Zack Weinberg  <zackw@stanford.edu>
1611
1612         * config.gcc: Set default for xmake_file at top, not bottom.
1613         Change places that set xmake_file to "none" to set to the
1614         empty string instead, or remove them entirely if there is no
1615         default xmake_file for this cpu_type.  Remove references to
1616         deleted files.
1617
1618         * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
1619         config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
1620         config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
1621         config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
1622         config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
1623         config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
1624         config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
1625         config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
1626         config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
1627         config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
1628         Delete.
1629
1630         * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
1631         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
1632         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
1633         config/mips/x-sysv, config/rs6000/x-aix31:
1634         Just set CLIB to -lld or -lmld, as appropriate.
1635
1636         * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
1637         config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
1638         config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
1639         config/mips/x-iris, config/pa/x-pa:
1640         Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
1641         OTHER_FIXINCLUDES_DIRS.
1642
1643         * config/i386/x-djgpp: Don't set LN or LN_S.
1644         * config/m88k/x-dolph: Don't define __m88k__.
1645         * config/m88k/x-tekXD88: Don't set AR_FLAGS.
1646         * config/pa/x-pa-mpeix: Just set up quadlib.asm.
1647         * config/i860/fx2800.h: No need to #undef SVR4.
1648
1649         38 x-host fragments remain, 2 x-cpu.
1650
1651 2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1652
1653         * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
1654
1655 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1656
1657         * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
1658
1659 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1660
1661         * configure.in: Add check for lstat.
1662         * configure, config.in: Regenerate.
1663         * cppinit.c (append_include_chain): Make empty path ".".
1664         * cpplib.c (do_line): Don't simplify #line paths.
1665         * cppfiles.c (remove_component_p): New function.
1666         (find_or_create_entry): Acknowledge stat () errors during
1667         path simplification.
1668         (handle_missing_header): Don't simplify paths.
1669         (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
1670         the empty path untouched.  Don't leave a trailing '/'.
1671
1672 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
1673
1674         * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
1675         * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
1676
1677 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1678
1679         * cppfiles.c (open_file): Fail directories silently, but
1680         with an errno of NOENT set.
1681         (read_include_file): Move the common exit code to the sole
1682         caller.  Return an int indicating success or failure.  Let
1683         open_file handle directories.
1684         (stack_include_file): If read_include_file fails,
1685         push a "null" buffer.
1686
1687 2001-04-05  DJ Delorie  <dj@redhat.com>
1688
1689         * function.h (virtuals_instantiated): Declare.
1690         * function.c: (virtuals_instantiated): Make global.
1691         * calls.c (emit_library_call_value_1): Use
1692         virtual_outgoing_args_rtx only if it hasn't been instantiated.
1693         Otherwise, use the stack pointer directly.
1694
1695 Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
1696
1697         * i386.c (x86_initialize_trampoline): New global function.
1698         * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
1699         (INITIALIZE_TRAMPOLINE): Move offline.
1700         * i386-protos.h (x86_initialize_trampoline): Declare.
1701
1702 Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
1703
1704         * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
1705         (lea_0): Rename to lea_1.
1706         (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
1707         (lea_general_?): Allow SImodes on TARGET_64BIT
1708         (lea_general_?_zext): New patterns.
1709         (call_1, call_1_rex64): Fix.
1710
1711 Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
1712
1713         * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
1714
1715 Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
1716
1717         * i386.c (function_arg): Return constm1_rtx for last argument.
1718         (ix86_expand_prologue): Update gen_call calls.
1719         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
1720         * i386.md (call_pop): Likewise.
1721         (call): Second operand is VOIDmode.
1722         (call_0): Likewise; Support 64bits.
1723         (call_exp): New expander.
1724         (call_1): Get to the sync.
1725         (call_1_exp): New pattern.
1726         (call_value): Support 64bit.
1727         (call_value_exp): New pattern.
1728         (untyped_call): Update gen_call call.
1729         (call_value_pop): Disable for 64bit.
1730         (call_value_0_rex64): New pattern.
1731         (call_value_1_rex64): Likewise.
1732
1733 2001-04-05  Bo Thorsen  <bo@suse.de>
1734
1735         * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
1736
1737 Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
1738
1739         * i386.md (*andsi_1+3): If used after reload, make sure the operand
1740         satisfies ANY_QI_REG_P.
1741
1742 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
1743
1744         * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
1745         ASM_OPERAND.
1746
1747         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
1748         change.
1749
1750 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
1751
1752         * config.gcc: Remove default for xm_file.  Clean up local
1753         machine type handling.  Remove settings of xm_file to
1754         something that doesn't exist.  In the big switch, set xm_file,
1755         don't append to it (the value before the big switch is always
1756         null).  Don't force build_xm_file or host_xm_file to have a value.
1757         * configure.in: Remove default for xm_file.  Do not special
1758         case $cpu/xm-$cpu.h not existing.
1759         * configure: Regenerate.
1760
1761 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
1762
1763         * simplify-rtx.c (simplify_binary_operation): Check for overflow
1764         when folding integer division and modulo operations.
1765
1766 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
1767
1768         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
1769         instead of DWARF2_ADDR_SIZE for EH addresses.
1770         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
1771         EH addresses.
1772
1773 2001-04-04  Richard Henderson  <rth@redhat.com>
1774
1775         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
1776         * config/ia64/t-glibc (LIB2ADDEH): Disable.
1777         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
1778
1779 2001-04-04  Richard Henderson  <rth@redhat.com>
1780
1781         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
1782         * configure: Rebuilt.
1783
1784 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
1785
1786         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
1787         push insns to delete to it instead of deleting them.
1788         (delete_null_pointer_checks): Delete insns from delete_list after
1789         all delete_null_pointer_checks_1 passes are done.
1790
1791 2001-04-04  Richard Henderson  <rth@redhat.com>
1792
1793         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
1794         * configure: Rebuilt.
1795
1796 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
1797
1798         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
1799         * config/romp/xm-romp.h: Delete.
1800
1801 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
1802
1803         * sched-deps.c (sched_analyze_insn): Partially revert March 27
1804         change.
1805
1806 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1807
1808         * emit-rtl.c (mark_label_nuses) Increment the label uses for
1809         all labels present in rtx.
1810         (try_split) Call new function for all split insns.
1811
1812 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
1813
1814         * recog.c (validate_replace_rtx_1): Instead of aborting just make
1815         sure the change won't be validated.
1816
1817 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
1818
1819         * rtl.h (set_noop_p): Declare.
1820         * flow.c (set_noop_p): Move from here ...
1821         * rtlanal.c (set_noop_p): ... to here and enhance.
1822         * cse.c (delete_trivially_dead_insns): Use it.
1823         * gcse.c (hash_scan_set): Likewise.
1824         * jump.c (delete_noop_moves): Likewise.
1825         * recog.c (split_all_insns): Likewise.
1826
1827 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
1828
1829         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
1830         stack pointer via a LO_SUM.  Ditto for setting a temp register
1831         used to save to the stack.  Set cfa_temp when setting fp, and
1832         allow matches to cfa_temp in addition to cfa_store when saving
1833         regs.  Handle POST_INC and LO_SUM register stores.  Document the
1834         changes and errors in rule 12 doco.
1835
1836         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
1837         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
1838         (load_reg): Move closer to epilogue code.
1839         (DO_FRAME_NOTES): Define to control the following..
1840         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
1841         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
1842         notes as necessary.
1843         (hppa_expand_epilogue): Likewise.
1844
1845 2001-04-03  Richard Henderson  <rth@redhat.com>
1846
1847         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
1848         * configure: Rebuild.
1849
1850 2001-04-03  Richard Henderson  <rth@redhat.com>
1851
1852         * rtl.h (LCT_THROW): New.
1853         * calls.c (emit_library_call_value_1): Handle it.
1854         * except.c (connect_post_landing_pads): Use it.
1855
1856 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
1857
1858         * gansidecl.h: Delete file.
1859         * configure.in: Change all refs to gansidecl.h to use
1860         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
1861         lives.
1862         * configure: Regenerate.
1863
1864         * Makefile.in (intl.o): Don't depend on gansidecl.h.
1865         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
1866         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
1867         Don't include gansidecl.h.
1868         * intl.c, main.c, version.c, fixinc/fixlib.h,
1869         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
1870         gansidecl.h.
1871
1872 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
1873
1874         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
1875         Update for 64bit.
1876
1877 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
1878
1879         * config/i386/xm-beos.h, config/i386/xm-isc.h,
1880         config/i386/xm-next.h, config/i386/xm-sco.h,
1881         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
1882         config/m88k/xm-m88k.h: Delete.
1883
1884         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
1885         * config/romp/xm-romp.h: Don't define bcopy.
1886         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
1887         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
1888
1889         * config.gcc: Remove references to deleted files.
1890
1891         14 xm-host.h remain, 1 xm-cpu.h.
1892
1893 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
1894             David S. Miller  <davem@pierdol.cobaltmicro.com>
1895             Andrew MacLeod  <amacleod@redhat.com>
1896
1897         Use byte offsets in SUBREGs instead of words.
1898
1899         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
1900         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
1901         to pass new argument.
1902         (add_stored_regs): Use subreg_regno_offset function.
1903         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
1904         into account.
1905         (precompute_arguments): Use gen_lowpart_SUBREG.
1906         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
1907         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
1908         (simplify_set): Rework to use SUBREG_BYTE.
1909         (expand_field_assignment): Use SUBREG_BYTE.
1910         (make_extraction): Use SUBREG_BYTE.
1911         (if_then_else_cond): Use SUBREG_BYTE.
1912         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
1913         (gen_lowpart_for_combine): Compute full byte offset.
1914         * cse.c (mention_regs): Use SUBREG_BYTE.
1915         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
1916         (canon_hash): Use SUBREG_BYTE.
1917         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
1918         (gen_lowpart_if_possible): Formatting.
1919         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
1920         correctly.
1921         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
1922         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
1923         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
1924         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
1925         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
1926         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
1927         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
1928         certain invariants about SUBREGs the compiler creates.
1929         (gen_lowpart_SUBREG): New function.
1930         (subreg_hard_regno): New function to get the final register number.
1931         (gen_lowpart_common): Use SUBREG_BYTE.
1932         (gen_imagpart): Spacing nits.
1933         (subreg_realpart_p): Use SUBREG_BYTE.
1934         (gen_highpart): Use SUBREG_BYTE.
1935         (subreg_lowpart_p): Always compute endian corrected goal offset,
1936         even at the byte level, then compare against that.
1937         (constant_subword): New function, pulled out all constant cases
1938         from operand_subword and changed second argument name to offset.
1939         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
1940         and call constant_subword to do the work.  Return const0_rtx if
1941         looking for a word outside of OP.
1942         (operand_subword_force): Change second arg name to offset.
1943         * expmed.c (store_bit_field): Use SUBREG_BYTE.
1944         (store_split_bit_field): Use SUBREG_BYTE.
1945         (extract_bit_field): Use SUBREG_BYTE.
1946         (extract_split_bit_field): Use SUBREG_BYTE.
1947         (expand_shift): Use SUBREG_BYTE.
1948         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
1949         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
1950         * flow.c (set_noop_p): Use SUBREG_BYTE.
1951         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
1952         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
1953         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
1954         correction code.
1955         (optimize_bit_field): Use SUBREG_BYTE.
1956         (purge_addressof_1): Use SUBREG_BYTE.
1957         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
1958         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
1959         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
1960         * gengenrtl.c (special_rtx): Add SUBREG.
1961         * global.c (mark_reg_store): Use SUBREG_BYTE.
1962         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
1963         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
1964         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
1965         final byte offset is congruent to subreg's mode size.
1966         (subst_constants): Use SUBREG_BYTE.
1967         (mark_stores): Use subreg_regno_offset function.
1968         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
1969         function and SUBREG_BYTE.
1970         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
1971         (reg_is_born): Use subreg_hard_regno.
1972         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
1973         endian correction code.  Don't combine subregs unless resulting
1974         offset aligns with type.  Fix subreg constant extraction for DImode.
1975         Simplify SUBREG of VOIDmode CONST_DOUBLE.
1976         (general_operand): Remove dead mode_altering_drug code.
1977         (indirect_operand): Use SUBREG_BYTE.
1978         (constrain_operands): Use subreg_regno_offset function.
1979         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
1980         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
1981         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
1982         * regs.h (REG_SIZE): Allow target to override.
1983         (REGMODE_NATURAL_SIZE): New macro which target can override.
1984         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
1985         on the entire subreg rtx.
1986         (push_reload): Use SUBREG_BYTE in comments and code.
1987         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
1988         for hard registers inside subregs.
1989         (operands_match_p): Use subreg_regno_offset.
1990         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
1991         containing hard regs.
1992         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
1993         corrections when fixing up MEM subregs.
1994         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
1995         subreg_regno_offset where appropriate.
1996         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
1997         byte endian corrections when fixing up MEM subregs.
1998         (subst_reloads): When combining two subregs, make sure final
1999         offset is congruent to subreg's mode size.
2000         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
2001         (refers_to_regno_for_reload_p): Use subreg_regno.
2002         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
2003         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
2004         correction code for memory subreg fixups.
2005         (forget_old_reload_1): Use subreg_regno_offset.
2006         (choose_reload_regs): Use subreg_regno.
2007         (emit_input_reload_insns): Use SUBREG_BYTE.
2008         (reload_combine_note_store): Use subreg_regno_offset.
2009         (move2add_note_store): Use subreg_regno_offset.
2010         * resource.c (update_live_status, mark_referenced_resources): Use
2011         subreg_regno function.
2012         (mark_set_resources): Use subreg_regno function.
2013         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
2014         (subreg_regno_offset, subreg_regno): Define prototypes.
2015         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
2016         (gen_lowpart_SUBREG): Add prototype.
2017         * rtl.texi (subreg): Update to reflect new byte offset representation.
2018         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
2019         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
2020         (reg_overlap_mentioned_p): Use subreg_regno.
2021         (replace_regs); Make sure final offset of combined subreg is
2022         congruent to size of subreg's mode.
2023         (subreg_regno_offset): New function.
2024         (subreg_regno): New function.
2025         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
2026         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
2027         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
2028         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
2029         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
2030         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
2031         (a29k_get_reloaded_address): Use SUBREG_BYTE.
2032         (print_operand): Use SUBREG_BYTE.
2033         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
2034         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
2035         (arm_reload_out_hi): Use SUBREG_BYTE.
2036         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
2037         instead of SUBREG_WORD.
2038         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
2039         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
2040         SUBREG creation to use byte offset.
2041         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
2042         inverted load insns): Fix explicit rtl subregs to use byte
2043         offsets.
2044         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
2045         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
2046         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
2047         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
2048         to use byte offsets.
2049         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
2050         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
2051         offsets, also make sure it is congruent to SUBREG's mode size.
2052         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
2053         unnamed ldob insn): Generate SUBREGs with byte offset.
2054         (zero_extendqihi2): SUBREG's are byte offsets.
2055         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
2056         (m68hc11_gen_highpart): Use SUBREG_BYTE.
2057         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
2058         zero-extendqisi2): Generate SUBREGs with byte offset.
2059         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
2060         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
2061         subregs in rtl to use byte offsets.
2062         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
2063         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
2064         (mips_move_2words): Use subreg_regno_offset.
2065         (mips_secondary_reload_class): Use subreg_regno_offset.
2066         * config/mips/mips.md (DImode plus, minus, move, and logical op
2067         splits): Fixup explicit subregs in rtl to use byte offsets.
2068         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
2069         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
2070         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
2071         rtl to use byte offsets.
2072         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
2073         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
2074         subregs to use byte offsets.
2075         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
2076         Fixup explicit subregs in rtl to use byte offsets.
2077         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
2078         and remove byte endian correction code.
2079         * config/sh/sh.c (output_movedouble): Use subreg_regno.
2080         (gen_ashift_hi): Use SUBREG_BYTE.
2081         (regs_used): Use subreg_regno_offset.
2082         (machine_dependent_reorg): Use subreg_regno_offset.
2083         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
2084         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
2085         (movdf_i4): Subregs are byte offsets now.
2086         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
2087         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
2088         (REGMODE_NATURAL_SIZE): Override.
2089         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
2090         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
2091         with byte offsets.
2092         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
2093         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
2094         extendqidi2): Generate SUBREGs with byte offsets, also make sure
2095         it is congruent to SUBREG's mode size.
2096         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
2097         offsets.
2098         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
2099         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
2100         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
2101         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
2102         * config/v850/v850.c (print_operand, output_move_double): Use
2103         subreg_regno function.
2104
2105 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
2106
2107         * configure.in (target_subdir): Use target_alias, not target.
2108         * configure: Rebuilt.
2109
2110         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
2111         other way round.
2112         * config/sh/crti.asm: Fix typos in comments.
2113
2114 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
2115
2116         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
2117         TARGET_FAST_INDIRECT_CALLS.
2118         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
2119         -fPIC.  Don't warn.
2120         (return_addr_rtx): Short circuit export stub matching when
2121         TARGET_NO_SPACE_REGS.
2122         (output_millicode_call): For out of range calls, make -fPIC
2123         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
2124         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
2125         * pa.md: Modify length attr calculation of all millicode insns to
2126         match above.
2127
2128 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
2129
2130         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
2131         Require at least 2.11 in the version test.  Specifically check
2132         for and reject GAS version 2.10.90.
2133         * configure: regenerate.
2134
2135 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
2136
2137         * pa.c (override_options): Remove PIC profiling warning.
2138         (hp_profile_labelno): Delete.
2139         (hp_profile_label_rtx): Delete.
2140         (hp_profile_label_name): Delete.
2141         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
2142         (output_function_prologue): Remove profiling code and all tests on
2143         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
2144         merge_sp_adjust_with_store can work for PIC and profiling.
2145         (hppa_expand_epilogue): Remove profile_flag test.
2146         (hppa_can_use_return_insn_p): Likewise.
2147         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
2148         cater for PROFILE_HOOK.
2149         (hppa_profile_hook): New function.
2150         * pa.h (FUNCTION_PROFILER): Now does nothing.
2151         (PROFILE_HOOK): Define.
2152         (hppa_profile_hook): Declare.
2153         (PROFILE_BEFORE_PROLOGUE): Delete.
2154         (ASM_OUTPUT_REG_PUSH): Delete.
2155         (ASM_OUTPUT_REG_POP): Delete.
2156         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
2157         r24.  Accept function name operand, and use this and a locally
2158         generated label to calculate pc-rel offset to func start.
2159
2160 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2161
2162         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
2163         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
2164         $(SYSTEM_H).
2165
2166 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
2167
2168         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
2169         LO_SUM cases to where they belong.
2170
2171 2001-04-02  Richard Henderson  <rth@redhat.com>
2172
2173         * except.h (lang_eh_type_covers): Mark extern.
2174         (lang_eh_runtime_type): Likewise.
2175
2176 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
2177
2178         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
2179         gengenrtl.c:  Wrap generated header in multiple-include guard.
2180         Improve error checking.
2181
2182 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2183
2184         * configure.in: Don't check for putenv.
2185         * configure: Regenerate.
2186         * gcc.c (putenv): Don't define.
2187         * vax/xm-vms.h: Handle putenv.
2188
2189 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
2190
2191         * ifcvt.c (noce_emit_move_insn): New.
2192         (noce_try_store_flag, noce_try_store_flag_constants,
2193         noce_try_store_flag_inc, noce_try_store_flag_mask,
2194         noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
2195         noce_try_abs): Use it.
2196         (noce_process_if_block): Likewise.
2197         For STRICT_LOW_PART, take mode from its SUBREG.
2198
2199 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
2200
2201         * fold-const.c (fold): Before optimizing unsigned comparison with
2202         0x7fffffffU, make sure arg0 is integral type.
2203
2204 2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2205
2206         * c-tree.texi: Document representation of wide strings.
2207
2208 2001-04-01  Richard Henderson  <rth@redhat.com>
2209
2210         * except.h (expand_builtin_dwarf_fp_regnum): Declare.
2211
2212 Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
2213
2214         * i386.md: remove obsoleted comments.
2215         (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
2216         (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
2217         fix output template.
2218
2219 2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
2220
2221         * config/avr/libgcc.S (__mulhi3): Optimize previous change.
2222
2223 2001-03-30  Bernd Schmidt  <bernds@redhat.com>
2224
2225         * loop.c (load_mems): When generating a load from a pseudo, update
2226         REGNO_LAST_UID.
2227
2228 Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
2229
2230         * i386.c (ix86_split_long_move): Use change address to compensate
2231         stack pointer change in push instruction.
2232
2233 Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
2234
2235         * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
2236         instead of rtx_equal_p; fix the output template.
2237
2238 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
2239
2240         * i386.c (ix86_expand_setcc): Support 64bit.
2241         (ix86_expand_int_movcc): Likewise.
2242         * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
2243         New patterns.
2244
2245         * i386.md (allocate_stack_worker): Turn to expander.
2246         (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
2247
2248         * i386.c (print_reg): Do not print x86_64 style regs on IA-32
2249
2250 2001-03-29  Richard Henderson  <rth@redhat.com>
2251
2252         * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
2253
2254 2001-03-28  Matthew Hiller  <hiller@redhat.com>
2255
2256         * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
2257         output template.
2258
2259         * MAINTAINERS: Added self.
2260
2261 2001-03-28  Richard Henderson  <rth@redhat.com>
2262
2263         * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
2264         Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
2265
2266 2001-03-28  Jim Wilson  <wilson@redhat.com>
2267
2268         * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
2269         operand_subword.
2270
2271 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2272
2273         * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
2274
2275         * tradcif.y (yyerror): Likewise.  Add format specifier in call to
2276         `error'.
2277
2278         * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
2279
2280 2001-03-28  DJ Delorie  <dj@redhat.com>
2281
2282         * Makefile.in (stage1_build): Revert CFLAGS patch.
2283
2284 2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
2285
2286         * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
2287         when multiplier or multiplicand is zero.
2288
2289 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
2290
2291         * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
2292
2293         * config/ia64/ia64.c (update_set_flags): New function, broken out of
2294         rtx_needs_barrier.
2295         (set_src_needs_barrier): Likewise.
2296         (rtx_needs_barrier): For SET case, use these two functions.  Rework
2297         PARALLEL case to handle all inputs before all outputs.
2298         (emit_insn_group_barriers): Call init_insn_group_barriers only if we
2299         saw a label and no stop bit since then.
2300         (maybe_rotate, process_epilogue): Add prototypes.
2301
2302 2001-03-28  Richard Henderson  <rth@redhat.com>
2303
2304         * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
2305         not TARGET_TOC for special toc restore handling.
2306         * config/rs6000/rs6000.md (eh_return): Likewise.
2307
2308 2001-03-28  Richard Henderson  <rth@redhat.com>
2309
2310         * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
2311         current_function_calls_eh_return.
2312         (output_function_epilogue): Handle eh_return.
2313         * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
2314         (EH_RETURN_DATA_REGNO): New.
2315         (EH_RETURN_STACKADJ_RTX): New.
2316         (EH_RETURN_HANDLER_RTX): New.
2317         * config/sparc/sparc.md (call/short branch peepholes): Check
2318         can_throw_internal instead of in_same_eh_region.
2319
2320         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
2321         for eh_return data registers.
2322         (rs6000_emit_prologue): Save eh_return data registers.
2323         (rs6000_emit_epilogue): Force inline restores if eh_return.
2324         Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
2325         * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
2326         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
2327         (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
2328         the target uses one.
2329         * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
2330         (return_eh_si, return_eh_di): Remove.
2331         (eh_return): New, from corpse of eh_epilogue.
2332         (eh_set_lr_si, eh_set_lr_di): New.
2333
2334         * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
2335         (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
2336         True for pic register if current_function_calls_eh_return.
2337         (ix86_expand_epilogue): Change "emit_return" argument into "style".
2338         Handle eh_return requirements.
2339         * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
2340         (EH_RETURN_STACKADJ_RTX): New.
2341         * config/i386/i386.md (exception_receiver): Remove.
2342         (eh_return, eh_return_1): New.
2343         * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2344
2345         * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
2346         (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
2347         (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
2348         * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
2349         (EH_RETURN_DATA_REGNO): New.
2350         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
2351         * config/alpha/alpha.md (eh_epilogue): Remove.
2352         (exception_receiver): Use $26 for ldgp input.
2353         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2354
2355 2001-03-28  Richard Henderson  <rth@redhat.com>
2356
2357         * except.c: Rewrite entirely for IA-64 ABI exception handling.
2358         * except.h: Likewise.
2359
2360         * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
2361         (LIB2ADDEHDEP): New.
2362         (LIB2FUNCS_EH): Remove.
2363         (LIB2ADD): Remove LIB2ADDEH.
2364         (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
2365         (LIBGCC_DEPS): Use LIB2ADDEHDEP.
2366         (crt{begin,end}[S].o): Likewise.
2367         (except.o): Update includes.
2368         * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
2369         (libgcc2_c_dep): Use LIB2ADDEHDEP.
2370
2371         * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
2372         * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
2373         * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
2374         * builtins.c (expand_builtin): Implement it.
2375         [BUILT_IN_EH_RETURN]: Update for nr arguments change.
2376         * c-common.c (c_common_nodes_and_builtins): Declare it.
2377         * c-decl.c (init_decl_processing): Update __builtin_eh_return.
2378         * calls.c (libfunc_nothrow): Remove.
2379         (emit_library_call_value_1): Don't call it.
2380         * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
2381         * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
2382         (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
2383         * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
2384         (current_funcdef_number): Globalize.
2385         (output_call_frame_info): Emit frame data if an lsda is needed.
2386         Generate augmentation for personality routine.  Don't play with
2387         difference symbols.
2388         (dwarf2out_begin_prologue): Record funcdef_number.
2389         * dwarf2out.h (current_funcdef_number): Declare.
2390         * expr.c (expand_expr): Update for except.h name changes.
2391         Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
2392         * expr.h (LTI_throw, LTI_rethrow): Remove.
2393         (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
2394         (LTI_eh_rtime_match): Remove.
2395         (LTI_unwind_resume, LTI_eh_personality): Add.
2396         (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
2397         * final.c (final): Don't call check_exception_handler_labels,
2398         init_insn_eh_region, or free_insn_eh_region.
2399         (final_scan_insn): Always emit debug labels for
2400         NOTE_INSN_EH_REGION notes.
2401         * flags.h (flag_new_exceptions): Remove.
2402         * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
2403         (record_active_eh_regions): Remove.
2404         (count_basic_blocks): Check all instructions for REG_EH_REGION.
2405         Use can_throw_internal.
2406         (find_basic_blocks_1): Likewise.
2407         (move_stray_eh_region_notes): Remove.
2408         (find_label_refs): No eh_return_stub_label.
2409         (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
2410         (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
2411         changes.
2412         (delete_unreachable_blocks): Don't track deleted handlers.
2413         (flow_delete_block): Use maybe_remove_eh_handler.
2414         (delete_eh_regions): Remove.
2415         (merge_blocks): Don't check for eh region match.
2416         (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
2417         EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
2418         (init_propagate_block_info): Disable dead frame store optimization
2419         when current_function_calls_eh_return.
2420         (dump_bb): Don't print eh_beg, eh_end.
2421         * function.c (fixup_var_refs): No catch_clauses.
2422         (expand_function_end): Likewise.  Call expand_eh_return before
2423         the return register use.  Call sjlj_emit_function_exit_after.
2424         (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
2425         * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
2426         * ifcvt.c (dead_or_predicable): Remove eh region check.
2427         * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
2428         Don't check for EH vs parameters.
2429         (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
2430         (expand_inline_function): Call duplicate_eh_regions.
2431         (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
2432         (copy_insn_notes): Remap REG_EH_REGION notes.
2433         (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
2434         * integrate.h (struct inline_remap): Add local_return_label.
2435         * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
2436         check_exception_handler_labels, nor exception_optimize.
2437         (find_cross_jump): No EH region check.
2438         * optabs.c (init_optabs): Update for changed eh libfuncs.
2439         * rtl.def (RESX): New.
2440         * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
2441         * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
2442         checks.  Update for except.h name changes.
2443         (expand_cleanups): Likewise.
2444         (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
2445         * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
2446         (compile_file): Call init_eh before init_optabs.  Don't
2447         output_exception_table here.
2448         (rest_of_compilation): Call convert_from_eh_region_ranges,
2449         convert_to_eh_region_ranges, output_function_exception_table.
2450         Don't emit_eh_context.
2451         * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
2452         (EXC_PTR_EXPR): New.
2453
2454         * md.texi (eh_epilogue): Remove.
2455         (eh_return): Document.
2456         * tm.texi (EH_RETURN_DATA_REGNO): Document.
2457         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
2458
2459         * eh-common.h: Remove file.
2460         * frame-dwarf2.c, frame.c, frame.h: Remove files.
2461         * libgcc2.c (L_eh): Remove.
2462
2463         * unwind-dw2-fde.c: New file, largely copied from frame.c.
2464         * unwind-dw2-fde.h: New file.
2465         * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
2466         * unwind-sjlj.c, unwind.h, unwind.inc: New files.
2467         * libgcc-std.ver: Update for eh symbols.
2468
2469 2001-03-27  Richard Henderson  <rth@redhat.com>
2470
2471         * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
2472         reduce false positives.
2473         (regmove_optimize): Disable if flag_non_call_exceptions.
2474
2475         * stmt.c (expand_return): Remove always true predicate.
2476         (expand_decl_cleanup_no_eh): Remove dead code.
2477
2478         * sched-deps.c (sched_analyze_insn): Consolidate scheduling
2479         barrier code.  Add a scheduling barrier if a non-call insn
2480         can throw internally.
2481
2482         * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
2483         Auto-inc addresses trap only if their base register does.
2484
2485         * except.c (can_throw_internal): Rename from can_throw.
2486         * except.h, resource.c: Update references.
2487
2488         * integrate.c (copy_insn_list): Use returnjump_p.
2489         (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
2490
2491         * function.h (struct function): Move all boolean valued fields
2492         to single bit fields at the end of the struct.
2493
2494         * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
2495         jump.c, toplev.c:
2496         Rename asynchronous_exceptions to flag_non_call_exceptions.
2497
2498         * gthr-single.h (UNUSED): New.  Distinguish between how C
2499         and C++ mark unused function arguments.  Use throughout.
2500
2501         * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
2502         value to target configuration header.
2503         * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
2504         * config.in, configure: Rebuild.
2505         * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
2506         configuration and target defines.
2507         (exceptions_via_longjmp): Remove.
2508         * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
2509         Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
2510
2511         * except.h (flag_non_call_exceptions): Move ...
2512         * flags.h: ... here.
2513
2514         * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
2515         exceptions, put the note on the trapping instruction.
2516
2517         * flags.h (flag_new_exceptions): Remove.
2518         * toplev.c: Don't set it.
2519         * final.c: Don't check it.
2520         * except.c: Provide stub definition.
2521
2522         * flow.c (tidy_fallthru_edges): Don't combine complex edges.
2523         (calculate_global_regs_live): Kill call-clobbered registers
2524         across exception edges.
2525         * reg-stack.c (convert_regs_1): Kill the entire target stack
2526         across non-call exception edges.
2527
2528         * flow.c (cleanup_cfg): Take no argument.
2529         * output.h, sibcall.c, toplev.c: Update all calls.
2530
2531 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2532
2533         * configure.in: Don't check for bcopy.
2534         * configure, config.in: Regenerate.
2535
2536         * system.h: Don't define or prototype bcopy, instead poison it.
2537
2538 2001-03-27  Richard Henderson  <rth@redhat.com>
2539
2540         * function.c (expand_function_start): Set DECL_REGISTER on
2541         a pseudo used for DECL_RESULT.
2542
2543         * rtl.h (LCT_NORETURN): New.
2544         * calls.c (emit_library_call_value_1): Handle it.
2545
2546 2001-03-27  Stan Shebs  <shebs@apple.com>
2547
2548         * objc/objc-act.c (objc_init): Use dump_base_name.
2549         (gen_declaration): Clear the buffer arg.
2550         (gen_declaration_1): New function, body of gen_declaration.
2551         (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
2552         (gen_method_decl): Ditto, plus always clear buffer arg.
2553         (error_with_ivar): Simplify.
2554         (warn_with_method): Ditto.
2555         (build_message_expr): Don't clear buffers.
2556         (dump_interface): Ditto.
2557         (objc_debug): Ditto.
2558         (build_keyword_selector): Clear the buffer by only zeroing
2559         the first element.
2560         (objc_implementation_context): Declare.
2561         (start_class): Warn about missing @end.
2562         (finish_objc): Ditto.
2563
2564 2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2565
2566         * reload1.c (eliminate_regs): Don't abort on MEM USEs.
2567
2568 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2569
2570         * Makefile.in (SYSTEM_H): Define.
2571         Depend on $(SYSTEM_H), not system.h.
2572
2573         * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
2574
2575 2001-03-27  Jim Wilson  <wilson@redhat.com>
2576
2577         * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
2578         IA64_UNWIND_EMIT.
2579         * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
2580         (process_epilogue): New static function.
2581         (process_set): Call process_epilogue instead of emitting .restore
2582         directly.
2583         (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
2584
2585         * flow.c (struct reg_cond_life_info): New fields orig_condition
2586         and stores.
2587         (init_propagate_block_info): Set new fields.
2588         (mark_regno_cond_dead): Set and use new fields.
2589         (flush_reg_cond_reg_1): Likewise.
2590         (and_reg_cond, case AND): Check for redundant AND conditions.
2591         (mark_used_reg): Delete unnecessary clears before freeing splay trees.
2592         Set new fields.
2593
2594 2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2595
2596         * cppmacro.c (stringify_arg): Null terminate strings.
2597
2598 2001-03-27  Zack Weinberg  <zackw@stanford.edu>
2599
2600         * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
2601         inclusion style.  xm-m68hc11.h no longer exists.
2602         * config/m68hc11/xm-m68hc11.h: Delete file.
2603         * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
2604
2605         * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
2606         Don't define GCC_VERSION, N_, or PARAMS; don't include
2607         gansidecl.h or stdio.h.  Define inhibit_libc here.
2608         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
2609         Delete code conditioned on #if GCC_VERSION == 2095.
2610
2611         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
2612         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
2613         Delete code conditioned on #if GCC_VERSION == 2095.
2614
2615 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2616
2617         * system.h: Include symcat.h.
2618         (STRINGIFY): Don't define.
2619
2620         * configure.in: Adjust comment.
2621
2622         * builtins.c: Use STRINGX, not STRINGIFY.
2623         * gencheck.c: Likewise.
2624         * gengenrtl.c: Likewise.
2625         * protoize.c: Likewise.
2626
2627         * cpplex.c: Don't include symcat.h.
2628         * cpplib.c: Likewise.
2629
2630         * gansidecl.h (HAVE_STRINGIZE): Don't define.
2631
2632 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
2633
2634         * c-typeck.c (digest_init): Fold init expression.
2635
2636 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2637
2638         * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
2639
2640 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
2641
2642         * except.c (eh_regs): Save results of build_pointer_type to a temp
2643         as FUNCTION_VALUE macro may evaluate its args multiple times.
2644
2645 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
2646
2647         * c-common.h (DECL_NUM_STMTS): New macro.
2648         * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
2649         DECL_FRAME_SIZE.
2650         (pushdecl): Likewise.
2651         * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
2652         * integrate.c (expand_inline_function): Don't check
2653         DECL_FRAME_SIZE.
2654         * print-tree.c (print_node): Don't print it.
2655         * toplev.c (rest_of_compilation): Don't try to inline when
2656         flag_no_inline is on.
2657         * tree.h (DECL_FRAME_SIZE): Remove.
2658         (tree_decl): Adjust accordingly.
2659
2660 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2661
2662         * combine.c (try_combine): Use memcpy, not bcopy.
2663
2664         * genattrtab.c (expand_units): Likewise.
2665
2666 Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
2667
2668         * i386.md (push mem DI peep2): New.
2669         (mov 0, mov -1 peep2): Handle 64bit.
2670         (lea to arithmetics peep2): Handle 64bit leas.
2671         (rsp arithmetics to push/pop peep2s): New.
2672
2673         * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
2674
2675 Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
2676
2677         * i386.c (struct machine_function): Add save_varrargs_registers.
2678         (ix86_save_varrargs_registers): New macro.
2679         (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
2680         (ix86_expand_prologue): Likewise.
2681         (ix86_emit_epilogue_esp_adjustement): Likewise.
2682         (ix86_expand_epilogue): Likewise.
2683         * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
2684         (pro_epilogue_adjust_stack_1): New insn.
2685         (pro_epilogue_adjust_stack_rex64): Likewise.
2686         * i386.h (MASK_NO_RED_ZONE): New constant.
2687         (TARGET_RED_ZONE): New macro.
2688         (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
2689         (RED_ZONE_SIZE): New constant.
2690         (RED_ZONE_RESERVE): New constant.
2691
2692 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2693
2694         * toplev.c (set_float_handler): Use memcpy, not bcopy.
2695
2696 2001-03-25  Kazu Hirata  <kazu@hxi.com>
2697
2698         * config/h8300/h8300.md (umodqi3): Output a tab instead of a
2699         space.
2700         (modqi3): Likewise.
2701         (umodhi3): Likewise.
2702         (modhi3): Likewise.
2703
2704 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2705
2706         * mkconfig.sh (DEFINES): Handle entries with '='.
2707
2708         * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
2709         Set xm_defines to MACRO=value instead.
2710
2711         * i370/xm-mvs.h: Delete.
2712
2713         * ns32k/xm-pc532-min.h: Likewise.
2714
2715 Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
2716
2717         * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
2718         shiftdi_operand;
2719         use ix86_expand_binary_operator
2720         (?sh??i_?): Disable for 64bit.
2721         * i386.h (PREDICATE_CODES): Add shiftdi_operand.
2722         * i386.c (shiftdi_operand): New predicate.
2723
2724         * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
2725         ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
2726         ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
2727         ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
2728         ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
2729         lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
2730         lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
2731         rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
2732         rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
2733         rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
2734         (rotldi3, rotrdi3): New expanders.
2735
2736 Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
2737
2738         * i386.md (movstrsi): Move offline.
2739         (movstrdi): New.
2740         (strmovdi_rex64): New.
2741         (strmov?i): Accept 64bit.
2742         (strmov?i_rex64): New.
2743         (strmov?i_rex_1): New.
2744         (strmov?i_1): Disable for 64bit.
2745         (rep_mov?i_rex64): New.
2746         (rep_mov?i): Disable for 64bit.
2747         (clrstrsi): Move offline.
2748         (strset?i_rex64): New.
2749         (strset?i: Accept 64bit.
2750         (rep_stos?i): Disable for 64bit.
2751         (rep_stos?i_rex64): New.
2752         (strset?i_rex_1): New.
2753         (strset?i_1): Disable for 64bit.
2754         (cmpstrsi): Accept 64bit.
2755         (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
2756         (cmpstrqi_nz_rex_1): New.
2757         (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
2758         (strlensi): Move offline.
2759         (strlendi): New.
2760         (strlenqi_1): Disable for 64bit; fix constraints.
2761         (strlenqi_rex_1): New.
2762         * i386.c (ix86_adjust_counter): New static function.
2763         (ix86_zero_extend_to_Pmode): Likewise.
2764         (ix86_expand_aligntest): Likweise.
2765         (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
2766         (ix86_expand_movstr): New global function.
2767         (ix86_expand_clrstr): New global function.
2768         (ix86_expand_strlen): New global function.
2769         * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
2770         ix86_expand_strlen): Declare.
2771         (ix86_expand_strlensi_unroll_1): Delete.
2772
2773 Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
2774
2775         * i386.md (cmpdi): Fix operand predicates.
2776         (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
2777          cmpdi_1_insn_rex64): New patterns.
2778         (adddi3): Turn to expander.
2779         (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
2780         (addsi3_carry_zext): New pattern.
2781         (adddi_?_rex64): New patterns and splitters.
2782         (addsi_?_zext): New patterns.
2783         (subsi3_carry_zext): New pattern.
2784         (subdi_?_rex64): New patterns and splitters.
2785         (iorsi_?_zext): New patterns.
2786         (iordi_?_rex64): New patterns and splitters.
2787         (iorsi_?_zext): New patterns.
2788         (iorsi_?_zext_imm): New patterns.
2789         (xorsi_?_zext): New patterns.
2790         (xordi_?_rex64): New patterns and splitters.
2791         (xorsi_?_zext): New patterns.
2792         (negdi*): New patterns.
2793         (one_cmpldi*): Likewise.
2794         (one_cmplsi*_zext, negsi*_zext): Likewise.
2795         (testqi_ext_3_rex64): New pattern.
2796
2797 Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
2798
2799         * i386-protos.h (ix86_split_long_move): Return void.
2800         * i386.c (ix86_split_to_parts): Handle 64bit target.
2801         (ix86_split_long_move): Likewise.
2802         * i386.md (all calls to ix86_split_long_move): Update.
2803
2804 2001-03-23  Richard Henderson  <rth@redhat.com>
2805
2806         * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
2807         to avoid shadowing arguments.
2808
2809 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
2810
2811         * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
2812         to variable names where DECL_NAME is different from
2813         DECL_ASSEMBLER_NAME.
2814
2815 2001-03-23  Jim Wilson  <wilson@redhat.com>
2816
2817         * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
2818         (assemble_alias): Call make_decl_rtl.
2819
2820 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
2821
2822         * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
2823
2824 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
2825
2826         * extend.texi: Document the "java_interface" attribute.
2827
2828 2001-03-22  Zack Weinberg  <zackw@stanford.edu>
2829
2830         * mkconfig.sh: Use a subshell with redirected stdout,
2831         instead of closing stdout and confusing commands that run
2832         afterward.  Throw away output of cmp.
2833
2834 2001-03-22  Gordon Sadler  <gbsadler1@lcisp.com>
2835
2836         * Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
2837
2838 Thu Mar 22 22:15:59 CET 2001  Jan Hubicka  <jh@suse.cz>
2839
2840         * i386.md (zero_extendsidi2_32): Break out from ...
2841         (zero_extendsidi2): ... here ; turn to expander.
2842         (zero_extendsidi2_rex64): New.
2843         (extendsidi2_32): Break out from ...
2844         (extendsidi2): ... here ; turn to expander.
2845         (extendsidi2_rex64): New.
2846         (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
2847         (trunc?f?f splitters): Add 64bit versions.
2848
2849 Thu Mar 22 21:41:16 CET 2001  Jan Hubicka  <jh@suse.cz>
2850
2851         * i386.md (pushsi, pushsi2_prologue): Disable.
2852         (pushsi2_rex64): New.
2853         (movabs?i_1_rex64, movabs?i_2_rex64): New.
2854         (movqi_ext_1): Disable for 64bit.
2855         (movqi_ext_1_rex64): New.
2856         (pushdi2_rex64): New pattern, peep2s and splitter.
2857         (pushdi2_prologue_rex64): New pattern.
2858         (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64):
2859         Likewise.
2860         (movdi splitters): Disable for 64bit.
2861         (movdi_1_rex64): New pattern, peep2s and splitters.
2862         (swapdi): New pattern.
2863         (pushsf): Disable for 64bit.
2864         (pushsf_rex64): New pattern and splitter.
2865         (pushdf_nointeger): Disable for 64bit.
2866         (pushdf_integer): Handle the 64bit case.
2867         (pushtf): Likewise; update splitters.
2868
2869 2001-03-22  Richard Henderson  <rth@redhat.com>
2870
2871         * mkconfig.sh: Include insn-flags.h.
2872         * Makefile.in (CONFIG_H): Include insn-flags.h.
2873         (lots of objects): Remove insn-codes.h and insn-flags.h.
2874
2875         * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
2876         integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
2877         regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
2878         avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
2879         dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
2880         i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
2881         m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
2882         mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
2883         pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
2884         v850/v850.c, vax/vax.c:
2885         Don't include insn-flags.h.
2886
2887         * diagnostic.c, expr.h, reload.c, toplev.c:
2888         Don't include insn-codes.h.
2889
2890         * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
2891         final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
2892         c4x/c4x.c, i960/i960.c, mips/mips.c:
2893         Don't include insn-codes.h or insn-flags.h.
2894
2895         * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
2896         or insn-flags.h in the generated code.
2897         * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
2898         (main): Forward declare struct rtx_def.
2899
2900 2001-03-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2901
2902         * invoke.texi (-ffast-math): Remove duplicate line about
2903         __FAST_MATH__.
2904
2905         * gcc.texi: Remove more obsolete documentation of bugs and
2906         installation problems.
2907
2908 2001-03-21  Kazu Hirata  <kazu@hxi.com>
2909
2910         * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative
2911         into two parts.
2912
2913 2001-03-20  Jason Merrill  <jason@redhat.com>
2914
2915         * collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
2916         not '.' or '$'.
2917         * tree.c (FILE_FUNCTION_FORMAT): Likewise.
2918         * varasm.c (CHKR_PREFIX): Likewise.
2919
2920 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2921
2922         * gcse.c (hash_scan_set): An expression is not anticipatible if it
2923         is part of a multi-SET insn.
2924
2925         * cse.c (find_comparison_args): Remove previous change.
2926         * ifcvt.c (noce_process_if_block): When moving an insn, remove any
2927         REG_EQUAL notes.
2928
2929         * config/i386/i386.md (conditional_trap): Remove warning.
2930
2931         * recog.c (push_operand): Fix error in last change that caused
2932         undefined symbol on many targets.
2933
2934         * sdbout.c: #include ggc.h.
2935         (sdbout_init): Move to end of file.
2936         Call ggc_add_tree_root for anonymous_types.
2937         (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
2938         (sdbout_one_type): Use DECL_NAME for field name.
2939         * Makefile.in (sdbout.o): Show includes ggc.h.
2940
2941 Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
2942
2943         * i386.c (override_options): Default ix86_regparm to REGPARM_MAX.
2944         (override_options): Use properlimits for preferred_stack_boundary.
2945         (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes
2946         on x86_64.
2947         (ext_register_operand): Accept DImode.
2948         (load_pic_register): Abort on 64bit.
2949         (gen_push): Use Pmode instead of SImode.
2950         (ix86_save_reg): Pic reg is never used on 64bit.
2951         (ix86_expand_prologue): Likewise.
2952         (ix86_emit_save_regs): Use Pmode instead of SImode.
2953         (legitimate_address_p): Check displacement for 64bit.
2954         (print_operand): Avoid outputting of (%rip) on 64bit.
2955         (print_operand_address): Output (%rip) where possible.
2956         (split_di): Abort on 64bit registers.
2957         (ix86_expand_branch): DImode comparison is simple for x86_64.
2958         (memory_address_length): Recognize memory addresses formed using
2959         PRE/POST modify.
2960         (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
2961         for x86_64.
2962         * i386.h (TARGET_USE_SAHF): Disable for 64bit.
2963
2964 Wed Mar 21 18:51:19 CET 2001  Jan Hubicka  <jh@suse.cz>
2965
2966         * recog.c (push_operand): Recognize new format of push instructions.
2967
2968 Wed Mar 21 10:53:57 CET 2001  Jan Hubicka  <jh@suse.cz>
2969
2970         * i386.md (pushqi1): New.
2971         * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand,
2972         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
2973         x86_64_immediate_operand, x86_64_immediate_operand,
2974         x86_64_zext_immediate_operand): Declare.
2975         * i386.c (x86_64_general_operand, x86_64_szext_general_operand,
2976         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
2977         x86_64_immediate_operand, x86_64_immediate_operand,
2978         x86_64_zext_immediate_operand): define.
2979         * i386.h (PREDICATE_CODES): Add new predicates.
2980
2981 Wed Mar 21 10:25:13 CET 2001  Jan Hubicka  <jh@suse.cz>
2982
2983         * i386.md (pophi1, popqi1, pushqi1): Remove.
2984
2985         * expr.c (emit_single_push_insn): New function.
2986         (move_by_pieces): Accept NULL as destination for push instructions.
2987         (gen_push_operand): Kill.
2988         (emit_push_insn): Pass NULL when pushing; avoid updating of
2989         stack_pointer_delta.
2990         * expr.h (gen_push_operand): Kill.
2991
2992 Tue Mar 20 20:15:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2993
2994         * rtl.texi (COMPARE): Clarify documentation and reference section
2995         on comparisons.
2996
2997 2001-03-20  Stan Shebs  <shebs@apple.com>
2998
2999         * objc/objc-act.c (get_static_reference): Use NULL_TREE.
3000         (get_object_reference): Ditto.
3001         (error_with_ivar): Use error_with_file_and_line.
3002         (warn_with_method): Use warning_with_file_and_line.
3003
3004 2001-03-20  Tom Tromey  <tromey@redhat.com>
3005
3006         * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi.
3007
3008 2001-03-20  Mark Mitchell  <mark@codesourcery.com>
3009
3010         * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for
3011         variables that are TREE_PUBLIC, even if not TREE_STATIC.
3012
3013 2001-03-20  DJ Delorie  <dj@redhat.com>
3014
3015         * Makefile.in (install-libgcc): Pass complete list of variables.
3016         (install-multilib): Ditto.
3017
3018 2001-03-20  David Billinghurst  <David.Billinghurst@riotinto.com>
3019
3020         * config/i386/cygwin.h: Declare ctor_section, dtor_section
3021         drectve_section, switch_to_section.
3022
3023         * winnt.c: Declare functions associated_type, gen_stdcall_suffix,
3024         i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport,
3025         i386_pe_mark_dllimport.
3026
3027 2001-03-20  David Billinghurst <David.Billinghurst@riotinto.com>
3028
3029         * config/i386/cygwin.h: Include <stdio.h> Declare and constify
3030         functions i386_pe_*.
3031
3032         * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify
3033         i386_pe_* functions with char * arguments.
3034
3035 2001-03-20  Alexandre Oliva  <aoliva@redhat.com>
3036
3037         * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load
3038         and store.
3039         (movsi_ie): Introduce fpul store.
3040
3041 2001-03-20  Alan Modra  <alan@linuxcare.com.au>
3042
3043         * Makefile.in (OBJS): Remove hashtab.o.
3044
3045 2001-03-19  Stan Shebs  <shebs@apple.com>
3046
3047         * objc/objc-act.c (maybe_objc_method_name): Remove, never called.
3048         * c-lang.c (maybe_objc_method_name): Ditto.
3049         * c-tree.h (maybe_objc_method_name): Remove decl.
3050
3051 2001-03-19  Tom Tromey  <tromey@redhat.com>
3052
3053         * gcc.c (init_gcc_specs): Fix comment.
3054
3055 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
3056
3057         Compute DECL_ASSEMBLER_NAME lazily.
3058         * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily.
3059         (DECL_ASSEMBLER_NAME_SET_P): New macro.
3060         (SET_DECL_ASSEMBLER_NAME): Likewise.
3061         (COPY_DECL_ASSEMBLER_NAME): Likewise.
3062         (set_decl_assembler_name): Declare.
3063         (lang_set_decl_assembler_name): Likewise.
3064         * tree.c (lang_set_decl_assembler_name): New variab.e
3065         (set_decl_assembler_name): New function.
3066         (init_obstacks): Set lang_set_decl_assembler_name.
3067         (build_decl): Don't set DECL_ASSEMBLER_NAME.
3068         * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME,
3069         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
3070         where it's not necessary.
3071         (builtin_function): Likewise.
3072         (finish_decl): Likewise.
3073         * dbxout.c (dbxout_type_methods): Likewise.
3074         * ggc-common.c (ggc_mark_trees): Likewise.
3075         * profile.c (output_func_start_profiler): Likewise.
3076         * varasm.c (make_decl_rtl): Likewise.
3077
3078         * cse.c (find_comparison_args): Update documentation.  Fix
3079         mishandling of COMPARE operations.
3080
3081         * tree.def (ABS_EXPR): Add documentation.
3082         * fold-const.c (fold): Improve folding of ABS_EXPRs.
3083
3084 2001-03-19  Zack Weinberg  <zackw@stanford.edu>
3085
3086         * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H).
3087
3088 2001-03-19  Jakub Jelinek  <jakub@redhat.com>
3089
3090         * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
3091         Remove ia32 linux PIC kludge and move it...
3092         * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
3093
3094 Mon Mar 19 18:53:54 CET 2001  Jan Hubicka  <jh@suse.cz>
3095
3096         * i386.md (absdf2 expander): Fix 64bit case.
3097
3098 2001-03-19  Brad Lucier  <lucier@math.purdue.edu>
3099
3100         * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H).
3101
3102 2001-03-16  Andrew Haley  <aph@cambridge.redhat.com>
3103
3104         * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
3105
3106 2001-03-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3107
3108         * README.X11: Remove obsolete file.
3109
3110 2001-03-18  Anthony Green  <green@redhat.com>
3111
3112         * config/pj/pj.h: Remove some trailing commas.
3113         (ASM_SPEC): Use -EB and -EL, not -mb and -ml.
3114
3115 2001-03-18  Richard Henderson  <rth@redhat.com>
3116
3117         * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ...
3118         * calls.c: ... here.
3119         * combine.c, expr.c, final.c, function.c toplev.c: Don't provide
3120         defaults for them here.
3121
3122 2001-03-17  Anthony Green  <green@redhat.com>
3123
3124         * config/pj/lib1funcs.S: Fix broken comment.
3125         * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal
3126         labels with '.'.
3127
3128 2001-03-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3129
3130         * gcc.texi: Remove obsolete information relating to build and
3131         installation problems with enquire or the Pyramid C compiler.
3132
3133 2001-03-17  Richard Henderson  <rth@redhat.com>
3134
3135         * dwarf2out.c (queue_reg_save): New.
3136         (flush_queued_reg_saves, clobbers_queued_reg_save): New.
3137         (dwarf2out_frame_debug_expr): Call queue_reg_save instead of
3138         dwarf2out_reg_save.
3139         (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed.
3140         (cfa, cfa_store, cfa_temp): Make static.
3141         * final.c (final_scan_insn): Always call dwarf2out_frame_debug.
3142
3143 2001-03-17  Richard Henderson  <rth@redhat.com>
3144
3145         * integrate.h (struct inline_remap): Add local_return_label.
3146         * integrate.c (expand_inline_function): Initialize it and emit
3147         it after copy_insn_notes.
3148         (copy_insn_list): Don't store local_return_label here.
3149         (copy_insn_notes): New function split out from copy_insn_list.
3150
3151 2001-03-17  Richard Henderson  <rth@redhat.com>
3152
3153         * dwarf2out.c (lookup_filename): Emit .file if the assembler
3154         is generating .debug_line.
3155         (dwarf2out_init): Add main_input_filename to the file table first.
3156         * configure.in (as_dwarf2_debug_line): Test with file number 1
3157         instead of file number 0.
3158
3159 Sat Mar 17 11:52:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3160
3161         * combine.c (undobuf): Remove field previous_undos; all refs deleted.
3162         (gen_rtx_combine): Deleted; all references changed as appropriate.
3163         (gen_unary): Deleted; all refs changed to call simplify_gen_unary.
3164
3165         * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P.
3166
3167 2001-03-17  David Billinghurst  <David.Billinghurst@riotinto.com>
3168
3169         * config/i386/xm-cygwin.h: Include <sys/cygwin.h.  Remove unused
3170         variable.
3171
3172 2001-03-16  Jim Wilson  <wilson@redhat.com>
3173
3174         * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero,
3175         then set it to LOC_REG (79) instead of aborting.
3176
3177 2001-03-16  Phil Edwards  <pme@sources.redhat.com>
3178
3179         * gccbug.in:  Remove high priority.
3180
3181 2001-03-16  Richard Henerson  <rth@redhat.com>
3182
3183         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od
3184         output with a space instead of deleting it.
3185         * configure: Regenerate.
3186
3187 2001-03-16  Zack Weinberg  <zackw@stanford.edu>
3188
3189         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which
3190         handles the gory details of converting an object file into
3191         something that's safe to grep.
3192         (gcc_AC_C_COMPILE_BIGENDIAN): Rename to
3193         gcc_AC_C_COMPILE_ENDIAN.  Use gcc_AC_EXAMINE_OBJECT.  Put
3194         newlines at either end of the string we're looking for.
3195         Make 'checking ...' message less stilted.
3196         (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT.  Handle
3197         ARM in-memory layout and its hypothetical converse.  Don't
3198         define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from
3199         HOST_WORDS_BIG_ENDIAN.
3200
3201         * configure.in: Adjust for renamed macro.  Move
3202         gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN.
3203         * configure, config.in: Regenerate.
3204
3205 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
3206
3207         * fixinc/Makefile.in: Set SHELL.
3208
3209 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
3210
3211         * fixinc/fixincl.c (fix_with_system): Quote file names before
3212         passing them to shell.
3213
3214 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
3215
3216         * Makefile.in: Use fix-header$(build_exeext) instead
3217         of fix-header.
3218
3219 2001-03-16  Richard Henderson  <rth@redhat.com>
3220
3221         * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes.
3222         (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New.
3223         (size_of_line_prolog): Remove.
3224         (output_line_info): Compute prologue size via label difference.
3225         (lookup_filename): Return "unspecified" for <internal> and <built-in>.
3226
3227         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the
3228         assembler error when redefining file numbers.
3229         * config.in, configure: Rebuild.
3230
3231         * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size.
3232         (dw2_asm_output_data_uleb128): Use space not tab after .uleb128.
3233         (dw2_asm_output_delta_uleb128): Likewise.
3234         (dw2_asm_output_delta_sleb128): Similarly.
3235         (dw2_asm_output_data_sleb128): Similarly.  Print number in decimal.
3236
3237 2001-03-16  Michael Meissner  <meissner@redhat.com>
3238
3239         * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids
3240         warnings.
3241         (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids
3242         warnings.
3243         (BITMASK_LOWER16): Replacement for 0x0000ffff.
3244
3245         * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16
3246         instead of 0xffff0000/0x0000ffff to avoid warnings about constants
3247         being unsigned in ISO C and signed in traditional.
3248         (expand_prologue): Ditto.
3249         (RA_MASK): Use BITMASK_HIGH to avoid warnings.
3250
3251         * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid
3252         warnings.
3253         (divsi3,divdi3): Ditto.
3254         (modsi3,moddi3): Ditto.
3255         (fix_truncdfsi2,fix_truncdfdi2): Ditto.
3256         (fix_truncsfsi2,fix_truncsfdi2): Ditto.
3257         (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid
3258         warnings.
3259
3260 Fri Mar 16 14:47:57 CET 2001  Jan Hubicka  <jh@suse.cz>
3261
3262         * i386.c (ix86_expand_fp_movcc): Do not attempt to construct
3263         SSE based conditional moves on LTGT/UNEQ conditions;
3264         Canonicalize EQ to NE.
3265         * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode.
3266         (sse_mov?fcc_ne): New.
3267
3268         * i386-protos.h (sign_extended_value, zero_extended_value): Declare.
3269
3270 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
3271
3272         * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC
3273         register may be dead.
3274
3275 2001-03-16  Brad Lucier  <lucier@math.purdue.edu>
3276
3277         * Makefile.in (hash.o): Depend on CONFIG_H.
3278
3279 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
3280
3281         * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET.
3282
3283 2001-03-15  Richard Henderson  <rth@redhat.com>
3284
3285         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New.
3286         (ASM_OUTPUT_DWARF_PCREL): New.
3287         * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove.
3288
3289 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
3290
3291         * cppfiles.c (stack_include_file): Use MAX of sysp.
3292
3293 2001-03-15  Steve Ellcey  <sje@cup.hp.com>
3294
3295         * config.gcc (ia64*-*-hpux*): New case.
3296         * config/ia64/hpux.h: New file for HP-UX support.
3297         * config/ia64/t-hpux: New file for HP-UX support.
3298
3299 2001-03-16  Bruce Korb  <bkorb@gnu.org>, Alexandre Oliva  <aoliva@redhat.com>
3300
3301         * fixinc/inclhack.def (irix_stdio_va_list): New.
3302         * fixinc/fixincl.x: Rebuilt.
3303
3304 2001-03-15  Richard Henderson  <rth@redhat.com>
3305
3306         * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET
3307         if provided by the target.
3308         (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL.
3309         (dw2_asm_output_addr): New.
3310         * dwarf2asm.h (dw2_asm_output_addr): Declare.
3311         * dwarf2out.c (output_cfi): Use it for program addresses.
3312         (output_call_frame_info, output_die): Likewise.
3313         (output_aranges, output_line_info): Likewise.
3314
3315 2001-03-15  Bruce Korb  <bkorb@gnu.org>
3316
3317         * gcc.c(main): make more rigorous
3318         * collect2.c(main): guard against ignoring SIGCHLD
3319         * protoize.c(main): ditto
3320         * gcc/fixinc/fixincl.c(initialize): ditto
3321
3322 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
3323
3324         * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL.
3325         (sdbout_parms): Likewise.
3326
3327 Thu Mar 15 12:57:14 2001  Jeffrey A Law  (law@cygnus.com)
3328
3329         * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not
3330         "widen" a destination that is already wider than a word.  Also do
3331         not widen if LOAD_EXTEND_OP is NIL for the given mode.
3332
3333 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
3334
3335         * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids.
3336
3337 Thu Mar 15 11:30:31 EST 2001  John Wehle  (john@feith.com)
3338
3339         * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo.
3340
3341 Thu Mar 15 11:24:29 EST 2001  John Wehle  (john@feith.com)
3342
3343         * i960.h (i960_maxbitalignment,
3344         i960_last_maxbitalignment): Declare.
3345         * i960.c (i960_maxbitalignment,
3346         i960_last_maxbitalignment): Make global.
3347         (process_pragma): Delete.
3348         (i960_pr_align, i960_pr_noalign): Move from here ...
3349         * i960-c.c: ... to this new file.
3350         * t-960bare (i960-c.o): New rule.
3351         * t-vxworks960 (i960-c.o): Likewise.
3352         * config.gcc (i960-*-*): Define c_target_objs and
3353         cxx_target_objs.
3354
3355 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
3356
3357         * cselib.c (hash_rtx): For REG and MEM, just use value of expression
3358         without adding in rtx code and mode.
3359
3360         * alias.c (init_alias_analysis): Don't use any rtx whose value
3361         varies as a known value.
3362         Delete a superfluous test.
3363
3364         * config/ia64/ia64.c (maybe_rotate): New function, broken out of
3365         ia64_sched_reorder.
3366         (ia64_sched_reorder): Call maybe_rotate; also rotate after
3367         scheduling a stop bit.
3368         (ia64_emit_nops): Correctly handle ASMs.
3369
3370 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
3371
3372         * varasm.c (assemble_variable): Use DECL_RTL_SET_P.
3373
3374 2001-03-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3375
3376         * cpp.texi: Update documentation for -include and -imacros.
3377         * cppfiles.c (struct include_file): Remove "defined" memeber.
3378         (find_or_create_entry): Make a copy of the file name, and
3379         simplify it.
3380         (open_file): Update to ensure we use the simplified filename.
3381         (stack_include_file): Don't set search_from.
3382         (cpp_included): Don't simplify the path name here.
3383         (find_include_file): New prototype.  Call search_from to
3384         get the start of the "" include chain.  Don't simplify the
3385         filenames here.
3386         (_cpp_execute_include): New prototype.  Move diagnostics to
3387         do_include_common.  Update.
3388         (_cpp_pop_file_buffer): Don't set defined.
3389         (search_from): New prototype.  Use the preprocessor's cwd
3390         for files included from the command line.
3391         (read_name_map): Don't simplify the pathname here.
3392         * cpphash.h (enum include_type): New.
3393         (struct buffer): Delete search from.  New search_cached.
3394         (_cpp_execute_include): Update prototype.
3395         * cppinit.c (do_includes): Use _cpp_execute_include.
3396         * cpplib.c (do_include_common): New function.
3397         (do_include, do_include_next, do_import): Use it.
3398
3399 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
3400
3401         * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the
3402         contents of the RTL, to determine the name of the object.
3403
3404 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
3405
3406         * tree.h (DECL_RTL): Allocate RTL lazily.
3407         (SET_DECL_RTL): New macro.
3408         (DECL_RTL_SET_P): Likewise.
3409         (COPY_DECL_RTL): Likewise.
3410         (DECL_RTL_IF_SET): Likewise.
3411         * varasm.c (make_decl_rtl): Add assertions about the kind of
3412         declaration we are processing.
3413         * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
3414         (start_decl): Likewise.
3415         (finish_decl): Likewise.
3416         * c-semantics.c (emit_local_var): Likewise.
3417         * calls.c (expand_call): Likewise.
3418         * dbxout.c (dbxout_symbol): Likewise.
3419         * emit-rtl.c (unshare_all_rtl): Likewise.
3420         (unshare_all_decls): Likewise.
3421         (reset_used_decls): Likewise.
3422         * expr.c (store_constructor): Likewise.
3423         (safe_from_p): Likewise.
3424         (expand_expr): Likewise.
3425         * function.c (put_var_into_stack): Likewise.
3426         (instantiate_decls_1): Likewise.
3427         (assign_parms): Likewise.
3428         (expand_function_start): Likewise.
3429         (expand_function_end): Likewise.
3430         * ggc-common.c (gcc_mark_trees): Likewise.
3431         * integrate.c (function_cannot_inline_p): Likewise.
3432         (copy_decl_for_inlining): Likewise.
3433         (expand_inline_function): Likewise.
3434         (integrate_parm_decls): Likewise.
3435         (integrate_decl_tree): Likewise.
3436         * print-tree.c (print_node): Likewise.
3437         * reg-stack.c (stack_result): Likewise.
3438         * stmt.c (label_rtx): Likewise.
3439         (expand_return): Likewise.
3440         (expand_decl): Likewise.
3441         (expand_decl_cleanup): Likewise.
3442         (expand_anon_union_decl): Likewise.
3443         * toplev.c (check_global_declarations): Likewise.
3444         (rest_of_decl_compilation): Likewise.
3445         * tree.c (simple_cst_equal): Likewise.
3446         * objc/objc-act.c (generate_static_references): Likewise.
3447
3448 2001-03-14  Zack Weinberg  <zackw@stanford.edu>
3449
3450         * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN,
3451         gcc_AC_C_FLOAT_FORMAT): New macros.
3452         * configure.in: Add AC_PROG_CPP after CC tests;
3453         gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof
3454         tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT.
3455         * configure, config.in: Regenerate.
3456
3457         * config/a29k/xm-a29k.h, config/arc/xm-arc.h,
3458         config/arm/xm-arm.h, config/c4x/xm-c4x.h,
3459         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
3460         config/i370/xm-linux.h, config/i370/xm-oe.h,
3461         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
3462         config/m68k/xm-m68k.h, config/mips/xm-mips.h,
3463         config/pa/xm-linux.h, config/pa/xm-pa.h,
3464         config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h,
3465         config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h,
3466         config/sparc/xm-sparc.h, config/vax/xm-vax.h,
3467         config/we32k/xm-we32k.h: Delete.
3468
3469         * config/i370/xm-mvs.h, config/m88k/m88k.h,
3470         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
3471         config/vax/xm-vms.h: Don't define any of:
3472         HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN
3473
3474         * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here.
3475
3476         * config.gcc: Remove references to deleted files.
3477         (i370-*-opened*): Use i370/xm-mvs.h (which now defines only
3478         FATAL_EXIT_CODE, which is the same between oe and mvs).
3479
3480 2001-03-14  DJ Delorie  <dj@redhat.com>
3481             Vladimir Makarov  <vmakarov@redhat.com>
3482
3483         * config/i960/i960.c (i960_function_prologue): Compute size of
3484         frame according to number of registers actually saved there.
3485
3486 2001-03-14  Richard Henderson  <rth@redhat.com>
3487
3488         * expr.c (emit_move_insn_1): Fix else if around #endif.
3489
3490 Wed Mar 14 22:39:12 CET 2001  Jan Hubicka  <jh@suse.cz>
3491                               Vojtech Pavlik
3492
3493         * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z'
3494         constraints.
3495
3496 Wed Mar 14 22:26:10 CET 2001  Jan Hubicka  <jh@suse.cz>
3497
3498         * i386.c (ix86_cmodel_string, ix86_cmodel): Define.
3499         (override_options): Parse cmodel string.
3500         (x86_64_sign_extended_value, x86_64_zero_extended_value): New.
3501         * i386.h (TARGET_OPTIONS): Add "cmodel".
3502         (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'.
3503         (enum cmodel): New.
3504         (ix86_cmodel_string, ix86_cmodel): Declare.
3505
3506 Wed Mar 14 22:26:54 CET 2001  Jan Hubicka  <jh@suse.cz>
3507
3508         Spot by Matt Kraai:
3509         * i386.h (GENERAL_REG_P): Add missing REG_P.
3510
3511 2001-03-14  Laurynas Biveinis  <lauras@softhome.net>
3512
3513         * configure.in: Use $gcc_cv_as instead of $as.
3514         * configure: Regenerated.
3515
3516 2001-03-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3517
3518         * cppfiles.c (stack_include_file): Only increase the include
3519         count if we actually process the file properly, as opposed
3520         to treating it as length zero.  Only call read_include_file
3521         if not DO_NOT_REREAD.  Handle the -H include file output
3522         here.
3523         (read_include_file): Remove now redundant DO_NOT_REREAD check.
3524         (cpp_included, find_include_file): Simplify pathnames after
3525         remapping them.  If remapping, don't use the remapped file
3526         name's buffer as our scratch buffer.
3527         (cpp_pop_file_buffer): Replace the multiple include macro
3528         only if it isn't yet set.
3529         (read_name_map): Simplify remapped names when reading in.
3530         (remap_filename): Move code to code path that uses it.
3531         (_cpp_simplify_pathname): Return the input pointer.
3532         * cpphash.h (_cpp_simplify_pathname): Update prototype.
3533
3534 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
3535
3536         * expr.c (expand_expr): Revove bogus conditional.
3537
3538 Wed Mar 14 19:29:50 CET 2001  Jan Hubicka  <jh@suse.cz>
3539
3540         * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef.
3541
3542 2001-03-14  Jakub Jelinek  <jakub@redhat.com>
3543
3544         * reg-stack.c (stack_result): Unconditionally use
3545         FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.
3546
3547 Wed Mar 14 16:36:25 CET 2001  Jan Hubicka  <jh@suse.cz>
3548
3549         * expr.c (emit_move_insn_1):  Split push of complex value when
3550         no suitable push instruction exist.
3551
3552         * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P
3553         instead of QI_REG_P.
3554
3555 Tue Mar 13 22:22:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3556
3557         * alias.c (handled_component_p, can_address_p): New functions.
3558         (get_alias_set): Use them.
3559
3560 2001-03-13  Jim Wilson  <wilson@redhat.com>
3561
3562         * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed
3563         from 80 in try_locals code.
3564         (ia64_expand_prologue): Add comment pointing to find_gr_spill change.
3565
3566 2001-03-13  Zack Weinberg  <zackw@stanford.edu>
3567
3568         * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT,
3569         gcc_AC_C_LONG_LONG): New.
3570         * configure.in: Use them.  Probe the size of short, int, long,
3571         and long long/__int64 if we have them.  Move all the AC_C_*
3572         checks together, except gcc_AC_C_CHAR_BIT which has to go
3573         after AC_CHECK_HEADERS(limits.h).
3574         Take hwint.h out of host_xm_file and build_xm_file.
3575
3576         * hwint.h: Unconditionally define HOST_BITS_PER_CHAR,
3577         HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG,
3578         and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT.
3579         Move the HOST_WIDEST_INT setup logic here from system.h.
3580         Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not
3581         defined.
3582         * system.h: Include hwint.h after limits.h.  HOST_WIDEST_INT
3583         is now handled by hwint.h.
3584
3585         * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h,
3586         config/c4x/xm-c4x.h, config/i370/xm-oe.h,
3587         config/ia64/xm-ia64.h: Don't define any of:
3588         HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT,
3589         HOST_BITS_PER_LONGLONG.
3590
3591         * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h,
3592         config/h8300/xm-h8300.h, config/mips/iris6.h,
3593         config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h,
3594         config/sparc/xm-sp64.h: Delete.
3595         * config.gcc: Remove references to deleted files.
3596
3597         * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define
3598         HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT.
3599         * config/i370/xm-linux.h: Clarify floating-point situation in
3600         a comment.
3601
3602 2001-03-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3603
3604         * cppfiles.c (NO_INCLUDE_PATH): New macro.
3605         (find_include_file): Decide here which part of the include
3606         chain to start the search.  Complain about an empty include
3607         chain in all cases apart from an abolsute file name.
3608         (_cpp_execute_include): Don't choose the search chain here.
3609         Don't call handle_missing_include in the case of an empty
3610         include chain.
3611         (_cpp_compare_file_date): Don't choose the search chain here.
3612         * cpplib.c (do_include_next): Move the in-main-file diagnostic
3613         here from _cpp_execute_include.  Behave like #include if
3614         we're in the main file.
3615
3616 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3617
3618         * system.h (malloc, realloc, calloc, strdup): Only poison these
3619         tokens when IN_GCC is defined.
3620
3621 Tue Mar 13 14:38:44 CET 2001  Jan Hubicka  <jh@suse.cz>
3622
3623         * i386.md (abs?f expander): Support SSE case.
3624         (abd?f_if): Add new "USE"; add splitters.
3625
3626 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3627
3628         * cpp.texi (poison): Explain the macro expansion exception.
3629
3630 2001-03-13  Jakub Jelinek  <jakub@redhat.com>
3631
3632         * expr.c (store_expr): Add dont_store_target.  If temp is already in
3633         target before copying to reg, don't store it into target again.
3634
3635 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3636
3637         * cppinternals.texi: Update for file handling.
3638
3639 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
3640
3641         * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
3642         2001-02-24 which broke building the Java library.
3643         * function.c (identify_blocks): Likewise.
3644         (all_blocks): Likewise.
3645         * integrate.c (integrate_decl_tree): Likewise.
3646         * print-tree.c (print_node): Likewise.
3647         * tree.h (BLOCK_NUMBER): Likewise.
3648         (struct tree_block): Likewise.
3649
3650 2001-03-12  David Edelsohn  <edelsohn@gnu.org>
3651
3652         * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
3653         __WCHAR_TYPE__ definition.
3654         (WCHAR_TYPE_SIZE): #undef before #define.
3655
3656 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3657
3658         * cppfiles.c: Update comments.
3659         (destroy_include_file_node): Rename destroy_node.
3660         (find_or_create_entry): New function.
3661         (open_file, _cpp_fake_include): Use it.
3662         (handle_missing_header): New function, broken out of
3663         _cpp_execute include.  Don't segfault if there is no
3664         system or quoted path.
3665         (_cpp_execute_include): Use handle_missing_header.
3666
3667 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
3668
3669         * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's
3670         2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5.
3671
3672 Mon Mar 12 14:05:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3673
3674         * flow.c (insn_dead_p): Don't consider two memrefs equivalent
3675         unless anti_dependence says they are.
3676         * alias.c (objects_must_conflict): If neither has a type specified,
3677         they must conflict.
3678
3679 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3680             David Billinghurst <David.Billinghurst@riotinto.com>
3681
3682         * config/mips/iris5.h:  Change WCHAR_TYPE to int.
3683
3684 Mon Mar 12 16:32:21 CET 2001  Jan Hubicka  <jh@suse.cz>
3685
3686         * i386.md (trunctfdf2_2): Rename missnamed pattern.
3687         (*_one_bit): Remove type on the match_operand in attributes.
3688
3689 Mon Mar 12 16:27:56 CET 2001  Jan Hubicka  <jh@suse.cz>
3690
3691         * i386.c: Commit forgotten hunk in previous patch.
3692         (regclass_map): Add extended registers.
3693         (dbx_register_map): Add missing frame register.
3694
3695 Mon Mar 12 15:41:08 CET 2001  Jan Hubicka  <jh@suse.cz>
3696
3697         * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
3698
3699         * i386.md (x86_sahf_1): Disable for 64bit.
3700         (popsi*, pophi*): Likewise.
3701         (pushqi, pushhi): Likewise.
3702         (movdi, pushdi): Likewise.
3703         (zero extend DImode splitter): Likewise.
3704         (adddi, minusdi splitter): Likewise.
3705         (umulsidi): Likewise.
3706         (umulsi): New.
3707         (mulsidi): Disable for 64bit
3708         (lshift:DI/ashift:DI): Disable for 64bit.
3709         (loop patterns): Likewise.
3710         (call_pop, call_value_pop expanders and patterns): Likewise.
3711         (prologue_get_pc): Likewise.
3712         (leave): Likewise.
3713         (fcmovDI pattern and splitter): Likewise.
3714         (movdfcc_1_rex64): New.
3715
3716 Mon Mar 12 15:16:36 CET 2001  Jan Hubicka  <jh@suse.cz>
3717
3718         * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64.
3719         (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64.
3720         (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64.
3721         (STATIC_CHAIN_REGNUM): Set to r10 for x86_64.
3722         (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64.
3723         (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64.
3724         (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes.
3725         (PUSH_ROUNDING): x86_64 rounds to 64bits.
3726         (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE.
3727         (REGPARM_MAX): Set to 6 for x86_64.
3728         (SSE_REGPARM_MAX): Set to 16 for x86_64.
3729         * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose
3730         registers.
3731
3732         * (patterns that does use upper halves): Update constraints
3733         'q' to 'Q' and 'r' to 'R'.
3734         (cmpqi_ext_1): Disable for 64bit.
3735         (cmpqi_ext_3_insn): Likewise.
3736         (movqi_extzv_1): Likewsie.
3737         (addqi_ext_1): Liekwsie
3738         (testqi_ext_1): Liekwsie
3739         (andqi_ext_1): Liekwsie
3740         (xorqi_ext_1): Liekwsie
3741         (cmpqi_ext_1_rex64): New.
3742         (cmpqi_ext_3_insn_rex64): Likewise.
3743         (movqi_extzv_1_rex64): Likewsie.
3744         (addqi_ext_1_rex64): Liekwsie
3745         (testqi_ext_1_rex64): Liekwsie
3746         (andqi_ext_1_rex64): Liekwsie
3747         (xorqi_ext_1_rex64): Liekwsie
3748
3749 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
3750
3751         * configure.in: Move check for unsigned enumerated bitfields
3752         to macro in aclocal.m4.  Disable it for now.
3753         * configure, config.in: Regenerate.
3754         * system.h: Don't do anything with ONLY_INT_FIELDS.  Use the
3755         unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC.
3756         * varasm.c (struct rtx_const): Use ENUM_BITFIELD().  Move enum
3757         kind above its first use.
3758
3759         * config/xm-interix.h, config/alpha/xm-alpha.h,
3760         config/i370/xm-linux.h, config/i386/xm-beos.h,
3761         config/i386/xm-mingw32.h, config/mips/xm-mips.h,
3762         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
3763         config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h,
3764         Don't define ONLY_INT_FIELDS under any circumstances.
3765
3766         * config/pa/xm-pa.h: Don't define __BSD_NET2__.
3767
3768         * config/pa/xm-pahpux.h, config/pa/xm-papro.h,
3769         config/sparc/xm-sysv4.h: Delete - now identical with some
3770         other xm header.
3771         * config.gcc (hppa targets): Replace xm-pahpux.h and
3772         xm-papro.h with implicit xm-pa.h.
3773         (sparc targets): Replace xm-sysv4.h with implicit or explicit
3774         xm-sparc.h.
3775
3776 2001-03-12  Aldy Hernandez  <aldyh@redhat.com>
3777
3778         * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set
3779         before reload_cse_noop_set_p.
3780
3781 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
3782
3783         * config.gcc: Where xm-host.h used to include another
3784         xm-host.h, list the nested header directly in xm_file.  Remove
3785         references to deleted files.  Can now use sparc/xm-sp64.h for
3786         sparcv9-*-solaris*.
3787
3788         * config/xm-linux.h, config/arm/xm-linux.h,
3789         config/i386/xm-dos.h, config/i386/xm-gnu.h,
3790         config/i386/xm-linux.h, config/i386/xm-openbsd.h,
3791         config/i860/xm-fx2800.h, config/m68k/xm-atari.h,
3792         config/m68k/xm-linux.h, config/m68k/xm-sun3.h,
3793         config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h:
3794         Delete.
3795
3796         * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h.
3797         * config/mips/xm-iris5.h: Don't include mips/xm-mips.h.  Don't
3798         bother to wrap #undef in #ifdef.
3799         * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h:
3800         Don't include xm-linux.h.
3801         * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h.
3802
3803         * configure.in: Wrap regexps using [] in changequote block.
3804         Use expr : not echo | grep.  Simplify regexps.
3805         * configure: Regenerate.
3806
3807         56 xm-files remain, 22 xm-arch.
3808
3809 2001-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3810
3811         * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF.
3812         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
3813         (local_index, local_rindex): Delete, use strchr/strrchr instead.
3814         (copy_object): Fix format specifier vs argument mismatch.
3815
3816         * mips-tdump.c: Make local functions static.
3817         (rindex): Don't #undef.
3818         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
3819         (fatal, fancy_abort): Delete.
3820         (read_seek): Avoid signed/unsigned compare.
3821
3822 Sun Mar 11 17:01:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3823
3824         * combine.c (try_combine): Fix error in change to try original
3825         register.
3826         (gen_rtx_combine): Do same as gen_rtx for now.
3827
3828 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
3829
3830         * configure.in: AC_SUBST xm_defines.
3831         * configure: Regenerate.
3832         * Makefile.in: Set DEFINES=$(xm_defines) when building
3833         tconfig.h.
3834
3835 2001-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3836
3837         * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete.
3838         (cpp_included, find_include_file): Update.
3839         (_cpp_compare_file_date): Make else unconditional.
3840
3841 2001-03-10  kaz Kojima <kkojima@rr.iij4u.or.jp>
3842
3843         * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined.
3844
3845 2001-03-10  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3846
3847         * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics.
3848         * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w.
3849
3850 Sat Mar 10 22:42:05 2001  Alexandre Oliva  <aoliva@redhat.com>
3851
3852         * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node
3853         if it's a record type.
3854
3855 Sat Mar 10 17:52:54 2001  Christopher Faylor <cgf@cygnus.com>
3856
3857         * config/i386/cygwin.h: Make ../w32api a system directory.  Reorganize
3858         mingw includes slightly.
3859
3860 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3861
3862         * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex):
3863         #undef token before poisoning it.
3864
3865 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3866
3867         * alpha.c (check_float_value): Use memcpy, not bcopy.
3868
3869         * m32r.c (m32r_sched_reorder): Likewise.
3870
3871         * vax.c (check_float_value): Likewise.
3872
3873 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3874
3875         * toplev.c (file_name_nondirectory): Remove.
3876         * toplev.h: Similarly.
3877         * dwarf2out.c (compute_section_prefix): Use lbasename instead
3878         of file_name_nondirectory.
3879
3880 Sat Mar 10 10:36:45 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3881
3882         * mips-tdump.c (read_seek): Call xmalloc, not malloc.
3883         * mips-tfile.c: Don't #undef rindex; not used.
3884
3885 Sat Mar 10 14:34:59 CET 2001  Jan Hubicka  <jh@suse.cz>
3886
3887         * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits.
3888         (dbx64_register_map): Declare.
3889         (RETURN_ADDR_RTX): Fix for 64bit.
3890         (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit.
3891         (INCOMING_FRAME_SP_OFFSET): Set to 8.
3892         * i386.c (dbx64_register_map): New global array.
3893         * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h,
3894         linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map
3895         for 64bits.
3896
3897 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3898
3899         * cppfiles.c (search_from): Use lbasename.
3900         * mkdeps.c (deps_add_default_target): Use lbasename.
3901
3902 2001-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3903
3904         * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc &
3905         xcalloc in lieu of malloc, realloc & calloc.
3906
3907         * gencheck.c (xmalloc): Use really_call_malloc, not malloc.
3908
3909         * gengenrtl.c (xmalloc): Likewise.
3910
3911         * gensupport.c (xcalloc, xrealloc, xmalloc): Use the
3912         really_call_* memory allocation routines.
3913
3914         * stmt.c (check_for_full_enumeration_handling): Use
3915         really_call_calloc, not calloc.
3916
3917         * system.h (really_call_malloc, really_call_calloc,
3918         really_call_realloc): Define.
3919         (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison.
3920
3921 Fri Mar  9 18:39:19 2001  Jeffrey A Law  (law@cygnus.com)
3922
3923         * pa.md (builtin_longjmp): Rework slightly to work for PA64 too.
3924
3925 2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>
3926
3927         * configure: Rebuilt.
3928         * configure.in: Only use `lang_requires' for languages athat are
3929         actually enabled.
3930
3931 2001-03-09  Joseph S. Myers  <jsm28@cam.ac.uk>
3932
3933         * invoke.texi: Fix typo.
3934         * gcc.1: Regenerate.
3935
3936 2001-03-09  Zack Weinberg  <zackw@stanford.edu>
3937
3938         * configure.in: Prune nonexistent files from build_xm_file,
3939         xm_file, and host_xm_file lists.  Warn unless they're
3940         $cpu/xm-$cpu.h.
3941         Don't generate *config.h here.
3942         AC_SUBST all variables needed to generate *config.h.
3943         * configure: Regenerate.
3944         * mkconfig.sh: New helper script, from code removed from
3945         configure.in.
3946         * Makefile.in: Zap all MALLOC variables - no longer used
3947         anywhere, and malloc.c doesn't exist.
3948         Substitute in variables needed to generate *config.h.
3949         Stop lying about the dependencies contained in CONFIG_H and
3950         GCONFIG_H.
3951         (HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
3952         (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
3953         cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
3954         (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
3955         $(TM_P_H), etc. as appropriate.
3956
3957         * config.gcc: Zap references to deleted files.
3958         * ggc-none.c: Don't include rtl.h or tm_p.h.
3959
3960         * config/i386/xm-beos.h, config/i386/xm-dgux.h,
3961         config/i386/xm-djgpp.h, config/i386/xm-dos.h,
3962         config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
3963         config/i386/xm-linux.h, config/i386/xm-linux.h,
3964         config/i386/xm-next.h, config/i386/xm-openbsd.h,
3965         config/i386/xm-sun.h, config/i386/xm-sysv3.h:
3966         Don't include i386/xm-i386.h.
3967
3968         * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
3969         config/i386/xm-i386.h, config/i860/xm-i860.h,
3970         config/i960/xm-i960.h, config/mcore/xm-mcore.h,
3971         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
3972         config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
3973         Delete (empty except comments, #includes of other deleted
3974         files, and macros used nowhere).
3975
3976 Fri Mar  9 20:05:27 CET 2001  Jan Hubicka  <jh@suse.cz>
3977
3978         * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp
3979         independent on TARGET_FLAGS.
3980
3981 Fri Mar  9 19:52:52 CET 2001  Jan Hubicka  <jh@suse.cz>
3982
3983         * i386.h (FIRST_PSEUDO_REGISTER): Set to 53.
3984
3985         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add
3986         extended ones.
3987         (CONDITIONAL_REGISTER_USAGE): Set proper values according to
3988         TARGET_64BIT.
3989         (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG,
3990         LAST_REX_SSE_REG): define.
3991         (enum reg_class): Add 'LEGACY_REGS'
3992         (REG_CLASS_CONTENTS): Likewise; add extended registers.
3993         (SSE_REGNO_P): Recognize extended registers.
3994         (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New.
3995         (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'.
3996         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P,
3997         REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers.
3998         (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P,
3999          REG_OK_FOR_STRREG_P): Remove.
4000         (HI_REGISTER_NAMES): Add extended registers.
4001         (ADDITIONAL_REGISTER_NAMES): Likewise.
4002         (QI_REGISTER_NAMES): Add 8bit extended registers.
4003         (DEBUG_REG): Support extended registers.
4004         * i386.c (regclass_map): Add extended registers.
4005         (dbx_register-map): Likewise.
4006         (svr4_dbx_register_map): Likewise.
4007         (print_reg): Support extended registers.
4008         (print_operand): Support 64bit operands.
4009
4010 Fri Mar  9 19:37:46 CET 2001  Jan Hubicka  <jh@suse.cz>
4011
4012         * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64
4013         (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
4014          FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
4015          DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants.
4016         (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY,
4017          STACK_BOUNDARY): Set properly for 64bits.
4018         (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants.
4019         (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD.
4020         (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits.
4021         (MOVE_MAX): Set to 16.
4022         (MOVE_MAX_PIECES): 8 for 64bit.
4023         (Pmode): Set to SImode.
4024
4025 Fri Mar  9 09:00:36 2001  Mike Stump  <mrs@wrs.com>
4026
4027         * cselib.c (hash_rtx): Ensure that hash isn't zero upon return.
4028
4029 Fri Mar  9 17:38:08 CET 2001  Jan Hubicka  <jh@suse.cz>
4030
4031         * i386.h (mask_64bit): New constant.
4032         (target_64bit): New macro.
4033         (target_options): Add '64'/'32'
4034         (target_default): Define.
4035         * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h
4036         isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h
4037         unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT.
4038
4039 Thu Mar  8 23:36:56 2001  Jeffrey A Law  (law@cygnus.com)
4040
4041         * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable.
4042
4043 Thu Mar  8 23:29:37 2001  John Wehle  (john@feith.com)
4044
4045         * rtlanal.c (rtx_varies_p): Check operand 0 of a
4046         LO_SUM unless for_alias is set.
4047
4048 2001-03-08  Stan Shebs  <shebs@apple.com>
4049
4050         * objc/objc-act.c: Fix old typos in comments, add comments for
4051         various functions.
4052         (hash_init): Fix file name in error message.
4053         (hash_enter): Ditto.
4054         (hash_add_attr): Ditto.
4055         (continue_class): Ditto.
4056
4057 2001-03-08  Bruce Korb  <bkorb@gnu.org>
4058
4059         gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that
4060         wait4() can receive the signal.
4061
4062 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4063
4064         * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML
4065         entities.
4066         * fixinc/fixincl.x: Regenerate.
4067
4068 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4069
4070         * fixinc/inclhack.def (AAA_standards): Undo <standards.h> breakage
4071         on Tru64 UNIX.
4072         * fixinc/fixincl.x: Regenerate.
4073
4074 2001-03-08  Richard Henderson  <rth@redhat.com>
4075
4076         * configure.in (HAVE_AS_LEB128): New assembler check.
4077         * configure, config.in: Rebuilt.
4078
4079 Thu Mar  8 19:54:04 CET 2001  Jan Hubicka  <jh@suse.cz>
4080
4081         * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for
4082         TFmode too.
4083
4084 2001-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4085
4086         * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete
4087         references to the MAXPATHLEN macro.
4088
4089         * config/alpha/xm-alpha.h, config/arm/xm-arm.h,
4090         config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to
4091         the POSIX macro.
4092
4093         * config/i386/xm-gnu.h, config/xm-gnu.h,
4094         config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h,
4095         config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h,
4096         config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty
4097         and/or unused files.
4098
4099         * config.gcc: Define POSIX in xm_defines as appropriate in lieu of
4100         doing so in various xm-*.h files.
4101
4102 Thu Mar  8 06:32:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4103
4104         * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.
4105
4106 2001-03-08  Alexandre Oliva  <aoliva@redhat.com>
4107
4108         * configure.in (enable_shared): Support per-package shared-library
4109         enabling.
4110         * configure: Rebuilt.
4111
4112 2001-03-07  David Edelsohn  <edelsohn@gnu.org>
4113
4114         * rs6000.md (cr logic): Add original POWER mnemonic alternative
4115         for crnot.  Set operands[5] in splitter.
4116
4117 2001-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4118
4119         * config/i370/xm-mvs.h, config/i370/xm-oe.h,
4120         config/i386/xm-beos.h, config/i386/xm-mingw32.h,
4121         config/m88k/xm-m88k.h, config/mips/xm-iris6.h,
4122         config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h,
4123         config/pa/xm-pahpux.h, config/rs6000/xm-beos.h,
4124         config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h,
4125         config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references
4126         to the USG macro.
4127
4128         * config/vax/xm-vaxv.h, config/a29k/xm-unix.h,
4129         config/i370/xm-i370.h, config/i386/xm-dgux.h,
4130         config/i386/xm-sun.h, config/i386/xm-sysv3.h,
4131         config/m68k/xm-tower.h, config/m68k/xm-aux.h,
4132         config/m68k/xm-hp320.h, config/m68k/xm-amix.h,
4133         config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h,
4134         config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h,
4135         config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h,
4136         config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h,
4137         config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h:
4138         Delete unused and/or empty files.
4139
4140         * config.gcc: Define USG in xm_defines as appropriate.  Define
4141         POSIX in lieu of xm-svr4.h.  Delete all references to the SVR3
4142         macro.  Remove deleted xm-* files from $xm_files variable.
4143
4144 2001-03-07  Tom Tromey  <tromey@redhat.com>
4145
4146         * configure: Rebuilt.
4147         * configure.in: Allow config-lang.in to set `lang_requires' to list
4148         of other required languages.
4149
4150 2001-03-07  Andrew MacLeod  <amacleod@redhat.com>
4151
4152         * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn
4153         after its emitted.
4154         (output_prologue): Use xmalloc not oballoc.
4155         (output_epilog): Free a29k_first_epilogue_insn when finished.
4156         * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand.
4157
4158 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
4159
4160         * builtins.c (expand_builtin_mathfn): Check
4161         flag_unsafe_math_optimizations, not flag_fast_math.
4162         (expand_builtin): Likewise
4163         * combine.c (combine_simplify_rtx): Likewise.
4164         (simplify_if_then_else): Likewise.
4165         * cse.c (fold_rtx): Likewise.
4166         * flags.h: Remove flag_fast_math.  Add
4167         flag_unsafe_math_optimizations and flag_trapping_math.
4168         * fold-const.c (negate_expr): Check
4169         flag_unsafe_math_optimizations, not flag_fast_math.
4170         (invert_truthvalue): Likewise.
4171         (fold): Likewise.  Before associating operands, check that
4172         code == MULT_EXPR, not code != MULT_EXPR.
4173         * ifcvt.c (noce_try_minmax): Check
4174         flag_unsafe_math_optimizations, not flag_fast_math.
4175         (noce_operand_ok): Check flag_trapping_math, not flag_fast_math.
4176         * invoke.texi: Document -funsafe-math-optimizations and
4177         -fno-trapping-math.  Change documentation for -ffast-math.
4178         * jump.c (reversed_comparison_code_parts): Likewise.
4179         (rtx_equal_for_thread_p): Likewise.
4180         * optabs.c (emit_conditional_move): Likewise.
4181         * simplify-rtx.c (simplify_binary_operation): Likewise.
4182         (simplify_relational_operation): Likewise.
4183         (simplify_ternary_operation): Likewise.
4184         * toplev.c: Remove flag_fast_math.  Add flag_trapping_math and
4185         flag_unsafe_math_optimizations.  Remove fast-math entry from f_options.
4186         Add trapping-math and unsafe-math-optimizations entries to f_options.
4187         (set_fast_math_flags): New, sets flags for -ffast-math.
4188         (set_no_fast_math_flags): New, sets flags for -fno-fast-math.
4189         (decode_f_option): Add code to handle -ffast-math and -fno-fast-math.
4190         * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags.
4191
4192         * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise.
4193         (alpha_emit_conditional_move): Initialize local_fast_math to
4194         flag_unsafe_math_optimizations, not flat_fast_math.
4195         * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags
4196         instead of setting flag_fast_math to 1.
4197         * config/convex/convex.md: Check flag_unsafe_math_optimizations,
4198         not flag_fast_math.
4199         * config/i386/i386.c (override_options): Likewise
4200         * config/i386/i386.md: Likewise.
4201         * config/m68k/m68k.md: Likewise.
4202         * config/mips/mips.md: Likewise.
4203         * config/rs6000/rs6000.c (validate_condition_mode): Likewise.
4204         (rs6000_generate_compare): Likewise.
4205
4206 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
4207
4208         * Makefile.in: Set RANLIB to @RANLIB@.
4209         Remove RANLIB_TEST.
4210
4211 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
4212
4213         * fixinc/inclhack.def (djgpp_wchar_h): New test.
4214         * fixinc/fixincl.x: Regenerated.
4215
4216 2001-03-07  Richard Henderson  <rth@redhat.com>
4217
4218         * config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
4219
4220 2001-03-07  Richard Henderson  <rth@redhat.com>
4221
4222         * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting
4223         of block notes and exception handling notes.
4224
4225         * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized.
4226         * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ...
4227         (compile_file): ... here.
4228
4229 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4230
4231         * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H.
4232
4233         * fixinc/gnu-regex.c: Don't include auto-host.h since we get
4234         config.h now.  Include libiberty.h to handle alloca.
4235
4236 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
4237
4238         * c-parse.in (yylexname): New function, split out of _yylex.
4239         (objc_rid_sans_at): New table.
4240         (init_reswords): Initialize it.
4241         (_yylex): Give labels clearer names.  Handle CPP_ATSIGN by
4242         retrieving the next token and checking it for significance as
4243         an ObjC keyword or string constant.
4244
4245         * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'.
4246         * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING.
4247
4248         * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references
4249         to CPP_OSTRING.
4250
4251 2001-03-06  Stephen L Moshier  <moshier@mediaone.net>
4252
4253         * config/m68k/m68k.c (const_uint32_operand): Accept any
4254         const_int on a 32-bit host.
4255
4256 2001-03-06  Nicola Pero  <n.pero@mi.flashnet.it>
4257
4258         * objc/objc-act.c (init_objc): Set save_lang_status,
4259         restore_lang_status, and mark_lang_status.
4260
4261 2001-03-06  Krister Walfridsson  <cato@df.lth.se>
4262
4263         * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call.
4264
4265 2001-03-06  Neil Booth  <neil@daikokuya.demon.co.uk>
4266
4267         * cppinternals.texi: Update.
4268
4269 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4270
4271         * config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
4272         config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h,
4273         config/c4x/xm-c4x.h, config/clipper/xm-clix.h,
4274         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
4275         config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h,
4276         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
4277         config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h,
4278         config/i386/xm-i386.h, config/i860/xm-i860.h,
4279         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
4280         config/m32r/xm-m32r.h, config/m68k/xm-m68k.h,
4281         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
4282         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
4283         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
4284         config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
4285         config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h,
4286         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
4287         config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h,
4288         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
4289         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
4290         config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h,
4291         config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which
4292         match the defaults provided in hwint.h.
4293
4294         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
4295         config/sparc/xm-lynx.h, config/xm-std32.h: Delete files.
4296
4297         * config.gcc (xm_file): Don't set to files which are deleted.
4298
4299         * hwint.h: Provide default values for HOST_BITS_PER_*.  No longer
4300         guard this file against these macros being undefined.
4301
4302 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
4303
4304         * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL
4305         and DECL_DEFER_OUTPUT on the decl we create, before calling
4306         rest_of_decl_compilation.
4307
4308 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
4309
4310         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE
4311         AC_FUNC_ALLOCA.
4312         * configure, config.in: Regenerate.
4313         * config.gcc: Remove references to deleted files.
4314
4315         * genattr.c, genattrtab.c, genextract.c, genoutput.c,
4316         genrecog.c, rtl.c: Do not use alloca anywhere.
4317
4318         * Makefile.in, build-make, system.h, config/x-interix,
4319         config/x-svr4, config/xm-interix.h, config/xm-openbsd.h,
4320         config/alpha/xm-alpha.h, config/alpha/xm-vms.h,
4321         config/arc/xm-arc.h, config/arm/xm-arm.h,
4322         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
4323         config/h8300/xm-h8300.h, config/i370/x-oe,
4324         config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos,
4325         config/i386/x-ncr3000, config/i386/x-sco5,
4326         config/i386/xm-dgux.h, config/i860/x-sysv4,
4327         config/i960/xm-i960.h, config/m32r/xm-m32r.h,
4328         config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320,
4329         config/m68k/x-hp320g, config/m69k/x-mot3300,
4330         config/m68k/x-mot3300-gas, config/m68k/xm-amix.h,
4331         config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h,
4332         config/m68k/xm-mot3300.h, config/m88k/x-dolph,
4333         config/m88k/x-sysv4, config/m88k/x-tekXD88,
4334         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
4335         config/mips/x-iris, config/mips/x-iris3,
4336         config/mips/x-sni-svr4, config/mips/x-sysv,
4337         config/mips/xm-iris6.h, config/mips/xm-mips.h,
4338         config/mips/xm-nws3250v4.h, config/pa/x-hpux,
4339         config/pa/x-pa-mpeix, config/pa/xm-pa.h,
4340         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
4341         config/pa/xm-papro.h, config/romp/xm-romp.h,
4342         config/rs6000/x-aix31, config/rs6000/x-aix41,
4343         config/rs6000/x-beos, config/rs6000/x-lynx,
4344         config/rs6000/x-mach, config/rs6000/x-rs6000,
4345         config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h,
4346         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
4347         config/sparc/x-sysv4, config/sparc/xm-linux.h,
4348         config/sparc/xm-pbd.h, config/sparc/xm-sparc.h,
4349         config/vax/xm-vms.h: Eradicate all references to alloca and
4350         related stuff.
4351
4352         * config/xm-alloca.h, config/clipper/x-clix,
4353         config/i386/xm-sysv4.h, config/i860/x-fx2800,
4354         config/i860/x-sysv3, config/m88k/x-sysv3,
4355         config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete
4356         (contained only alloca related hacks).
4357
4358         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define
4359         USE_C_ALLOCA.
4360
4361 2001-03-05  Brad Lucier  <lucier@math.purdue.edu>
4362
4363         * invoke.texi: Document __FAST_MATH__.
4364
4365 2001-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4366
4367         * crtstuff.c: Restore include of auto-host.h.
4368
4369 2001-03-05  Fergus Henderson  <fjh@cs.mu.oz.au>
4370
4371         Put main() in a separate file, so that the language
4372         front-end can use a different main().
4373
4374         * main.c: New.
4375         * toplev.c: (main): Rename as toplev_main.
4376         * toplev.h: Declare toplev_main.
4377         * Makefile.in (OBJS): add toplev.o.
4378           (BACKEND): remove toplev.o, add main.o.
4379
4380 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4381
4382         * cppfiles.c (search_from): Special case the empty string.
4383
4384 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4385
4386         * cppfiles.c (_cpp_execute_include): Don't make a null-terminated
4387         copy of the filename.  Don't use CPP_PREV_BUFFER.  Don't call
4388         strlen or strcpy; we already know the length.
4389         (_cpp_compare_file_date): Similarly.
4390         * cpphash.h (struct cpp_reader): Delete done_initialising.
4391         (CPP_PREV_BUFFER): Delete.
4392         * cppinit.c (cpp_start_read): Don't set done_initialising.
4393         * cpplex.c (parse_string): Guarantee null-termination.
4394         (_cpp_equiv_toklists): Remove.
4395         * cpplib.c (glue_header_name): Null-terminate.
4396         (do_line): Don't leak memory.
4397         * cpplib.h (BT_WEAK): Delete.
4398         * cppmain.c (cb_ident): Strings are now null-terminated.
4399
4400 2001-03-04  Laurynas Biveinis  <lauras@softhome.net>
4401
4402         * gcc.c (convert_filename): Append executable suffix
4403         if NO_AUTO_EXE_SUFFIX is not defined.
4404         * gcc.texi: Document NO_AUTO_EXE_SUFFIX.
4405         * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX.
4406
4407 2001-03-03  David O'Brien  <obrien@FreeBSD.org>
4408
4409         from 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4410         * c-parse.gperf, c-gperf.h: Delete.
4411         (c-gperf.h was accidently re-added to the CVS repo in the rev
4412         1.16 commit by tromey)
4413
4414 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4415
4416         * cpplex.c (_cpp_lex_token): Don't warn about directives in
4417         macro arguments when looking for the '('.
4418         * cppmacro.c (funlike_invocation_p): Set parsing_args to
4419         2 when really parsing arguments; 1 when looking for '('.
4420         Always restore the lexer position.
4421
4422 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4423
4424         * longlong.h (umul_ppmm): Don't use a multiline string.
4425
4426 2001-03-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4427
4428         * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef.
4429         * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of
4430         t_bool in declaration because pcc can't combine volatile with typedef
4431         types.
4432
4433 Sat Mar  3 19:47:13 CET 2001  Jan Hubicka  <jh@suse.cz>
4434
4435         * i386.c (ix86_expand_fp_compare): Delay creating of scratch register
4436         until when it is really needed.
4437         (ix86_expand_compare): Update call of ix86_expand_fp_compare.
4438         * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator
4439         * i386.md (float?i?f splitter): Don't force source operand to memory
4440         for SSE.
4441         (sse_movdfcc): Fix constraint.
4442         (sse_movdfcc splitter): Handle properly the second alternative.
4443
4444 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4445
4446         * cpplex.c (parse_string): Unconditionally pedwarn.
4447
4448 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4449
4450         * cpp.texi: Update.
4451         * cppexp.c (parse_number): Update.
4452         * cpplex.c (parse_string): Pedwarn if multiline string does not
4453         result from a system header's macro.
4454         * cpplib.h (sys_objmacro_p): Rename sys_macro_p.
4455         * cppmacro.c (sys_objmacro_p): Rename sys_macro_p.  Return true
4456         for function-like macros too.
4457         * c-lex.c (lex_number): Update.
4458
4459 2001-03-03  Richard Henderson  <rth@redhat.com>
4460
4461         * dwarf2out.c (output_call_frame_info): Fix augmentation length.
4462
4463 Sat Mar  3 04:17:17 2001  J"orn Rennecke <amylaar@redhat.com>
4464
4465         * combine.c (try_combine): If split with mode-changed scratch
4466         register didn't work, try the original mode.
4467
4468 Sat Mar  3 03:46:47 2001  J"orn Rennecke <amylaar@redhat.com>
4469
4470         * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
4471         * config/c4x/c4x.h: Likewise.
4472         * stor-layout.c (compute_record_mode): Likewise.
4473         (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK.
4474
4475 2001-03-02  Zack Weinberg  <zackw@stanford.edu>
4476
4477         * configure.in: Kill tm.h.  Include the files in the $tm_file
4478         list in all three of config.h, hconfig.h, tconfig.h, after the
4479         relevant set of xm_files.  Put TARGET_CPU_DEFAULT in all
4480         three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
4481         * configure: Regenerate.
4482         * Makefile.in (clean): Don't delete tm.h.
4483
4484         * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
4485         defined, set them from EXIT_SUCCESS and EXIT_FAILURE.  If
4486         those are not defined, set SEC and FEC to 0 and 1.
4487         * gcc.texi: Update to match.
4488
4489         * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
4490         * config/fp-bit.c, config/m68k/aux-crt2.asm,
4491         config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
4492         Include tconfig.h, not tm.h.
4493
4494         * config/xm-lynx.h, config/xm-std32.h,
4495         config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
4496         config/alpha/xm-alpha.h, config/arc/xm-arc.h,
4497         config/avr/xm-avr.h, config/c4x/xm-c4x.h,
4498         config/clipper/xm-clix.h, config/convex/xm-convex.h,
4499         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
4500         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
4501         config/h8300/xm-h8300.h, config/i370/xm-linux.h,
4502         config/i386/xm-i386.h, config/i860/xm-i860.h,
4503         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
4504         config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
4505         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
4506         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
4507         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
4508         config/pa/xm-linux.h, config/pa/xm-pa.h,
4509         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
4510         config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
4511         config/pj/xm-pj.h, config/romp/xm-romp.h,
4512         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
4513         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
4514         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
4515         config/v850/xm-v850.h, config/vax/xm-vax.h,
4516         config/we32k/xm-we32k.h:
4517         Don't include tm.h.
4518         Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
4519
4520         * config/i370/xm-i370.h, config/i370/xm-mvs.h,
4521         config/i370/xm-oe.h: Don't include tm.h.  Don't define
4522         SUCCESS_EXIT_CODE.
4523         * config/vax/xm-vms.h: Don't include tm.h.
4524
4525         * config/xm-lynx.h, config/avr/xm-avr.h,
4526         config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
4527         Delete; made empty by above changes.
4528         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
4529         config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
4530         Don't include config/xm-lynx.h or tm.h.
4531
4532         * config/xm-gnu.h: Don't include fcntl.h.
4533         * config/sparc/xm-lynx.h: Don't include sys/types.h and
4534         sys/wait.h.
4535         * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
4536
4537 2001-03-02  Richard Henderson  <rth@redhat.com>
4538
4539         * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP,
4540         UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP.
4541
4542 2001-03-02  Richard Henderson  <rth@redhat.com>
4543
4544         * Makefile.in (OBJS): Add dwarf2asm.o.
4545         * dwarf2asm.c, dwarf2asm.h: New files.
4546         * dwarf2out.c (*): Use them.
4547         (size_of_uleb128, size_of_sleb128): Remove.
4548         (output_uleb128, output_sleb128): Remove.
4549         (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove.
4550         (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove.
4551         (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove.
4552         (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New.
4553         (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove.
4554         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove.
4555         (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove.
4556         (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove.
4557         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove.
4558         (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
4559         (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove.
4560         (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove.
4561         (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove.
4562         (dwarf2out_frame_debug): Remove unused variables.
4563         (output_loc_operands): Don't abort on 8 byte constants if
4564         host integers are wide enough.
4565         (output_symbolic_ref): Remove.
4566         (size_of_die): Don't assume 4 byte host integers.
4567         (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin
4568         and end labels.
4569         (add_const_value_attribute) [CONST_INT]: Verify we're not doing
4570         something stupid with HOST_WIDE_INT to long truncation.
4571         [CONST_DOUBLE]: Likewise.
4572
4573         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove.
4574         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
4575         * config/arm/unknown-elf.h: Likewise.
4576         * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New.
4577         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New.
4578         (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove.
4579         (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove.
4580         (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove.
4581         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove.
4582         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove.
4583         (ASM_OUTPUT_DWARF_OFFSET): Remove.
4584         * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove.
4585         * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
4586         (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove.
4587         (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove.
4588
4589 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4590
4591         * cselib.c (hash_rtx): Cast enums to unsigned int.
4592
4593 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4594
4595         * print-rtl.c (print_rtx): Cast enums to int for comparison.
4596         * c-decl.c (grokdeclarator): Cast enums to int for comparison and
4597         shifts.
4598         * c-format.c (C_STD_VER): Cast to int for comparisons.
4599         (check_function_format): Cast various enums to int for &.
4600         (maybe_read_dollar_number): Likewise.
4601         (check_format_info): Likewise.
4602         (check_format_info_main): Likewise.
4603         * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
4604         (safe_from_p): Likewise.
4605         * varasm.c (const_hash): Cast enum to int for %.
4606         * emit-rtl.c (init_emit_once): Use int loop variable to work around
4607         pcc enum problems with < and ++ operators.
4608         * regclass.c (init_reg_sets_1): Cast enums for comparison.
4609         (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
4610         (regclass_init): Change enum class to int to iterate over reg_classes.
4611         * genrecog.c (merge_trees): Cast enums for comparison.
4612         * rtl.h (GET_CODE): Cast to enum rtx_code.
4613         (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
4614         (GET_MODE): Cast to enum machine_mode.
4615         (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
4616         (GET_NOTE_INSN_NAME): Cast enum to int.
4617         * tree.h (TREE_CODE): Cast to enum tree_code.
4618         (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
4619         * timevar.c (timevar_print): Change loop variable id from enum to
4620         unsigned int.
4621         * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
4622         * config/i386/i386.md: Use PUT_MODE for mode assignment.
4623         * toplev.c (compile_file): Cast enum DFI to int.
4624         (decode_d_option): Likewise.
4625
4626 Fri Mar  2 12:18:13 2001  Christopher Faylor <cgf@cygnus.com>
4627
4628         * cppinit.c (append_include_chain): Mark "after" include file name list
4629         as a system directory.
4630         * cpp.texi: Document new behavior.
4631
4632 Fri Mar  2 11:59:43 CET 2001  Jan Hubicka  <jh@suse.cz>
4633
4634         * ifcvt.c (noce_operand_ok): Handle properly unarry operations.
4635
4636 2001-03-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4637
4638         * cppfiles.c (struct include_file): Update.
4639         (stack_include_file): Use search_from.
4640         (cpp_included, find_include_file): Update.
4641         (cpp_execute_include): Update.  ptr->name may not be
4642         null terminated.  Use the new search_from member variable
4643         of cpp_buffer.
4644         (_cpp_compare_file_date): Similarly.
4645         (search_from): New function, similiar to actual_directory.
4646         (actual_directory): Delete.
4647         (remap_filename): Update.  loc->name may not be null terminated.
4648         (struct file_name_list): Rename search_path.  Update.
4649         * cpphash.h (struct cpp_buffer): Delete actual_dir.  New members
4650         search_from and dir.
4651         (struct cpp_reader): Remove actual_dirs.
4652         * cppinit.c (struct cpp_pending): Update for renamed objects.
4653         (append_include_chain, remove_dup_dir, remove_dup_dirs,
4654         merge_include_chains, cpp_destroy, cpp_start_read): Similarly.
4655         * cpplib.h (struct cpp_options): Similarly.
4656
4657 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
4658
4659         * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h,
4660         config/a29k/xm-unix.h, config/alpha/xm-alpha.h,
4661         config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h,
4662         config/clipper/xm-clix.h, config/convex/xm-convex.h,
4663         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
4664         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
4665         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
4666         config/i370/xm-linux.h, config/i370/xm-mvs.h,
4667         config/i370/xm-oe.h, config/i386/xm-aix.h,
4668         config/i386/xm-i386.h, config/i386/xm-osf.h,
4669         config/i860/xm-i860.h, config/i960/xm-i960.h,
4670         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
4671         config/m68k/xm-m68k.h, config/m88k/xm-m88k.h,
4672         config/mcore/xm-mcore.h, config/mips/xm-mips.h,
4673         config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h,
4674         config/ns32k/xm-ns32k.h, config/pa/xm-linux.h,
4675         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
4676         config/pa/xm-pahpux.h, config/pa/xm-papro.h,
4677         config/pj/xm-pj.h, config/romp/xm-romp.h,
4678         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
4679         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
4680         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
4681         config/v850/xm-v850.h, config/vax/xm-vax.h,
4682         config/vax/xm-vms.h, config/we32k/xm-we32k.h:
4683         Do not define TRUE or FALSE.
4684
4685         * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made
4686         empty by above change.
4687         * config.gcc: Remove references to these files.
4688
4689         * configure.in: Detect stdbool.h.
4690         * configure, config.in: Regenerate.
4691         * system.h: Include stddef.h here if available.
4692         Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__.
4693         Then set up a sensible boolean type at the very end.
4694
4695         * combine.c, cse.c, expr.c, fold-const.c, gensupport.c,
4696         config/mcore/mcore.c: Rename variables named 'true' and/or 'false'.
4697
4698         * hash.h: Delete 'boolean' typedef and related #undefs.
4699
4700         * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace
4701         all uses of 'boolean' with 'bool'.
4702
4703 2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4704
4705         * cpplib.c (_cpp_init_stacks): Cast enum for comparison.
4706         * cppexp.c (lex): Cast enums for comparison.
4707         * cppinit.c (parse_option): Cast enum for comparison.
4708         * cpplex.c (cpp_spell_token): Cast enums to int for minus.
4709         (cpp_output_token): Likewise.
4710         (cpp_can_paste): Cast enums for comparsion and plus/minus.
4711         (cpp_avoid_paste): Cast enums for minus and comparison.
4712
4713 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
4714
4715         * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec
4716         field to all array elements.
4717
4718 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
4719
4720         * cpphash.h (struct cpp_reader): Add print_version field.
4721         * cppinit.c (cpp_handle_option): For -v, -version, and --version,
4722         just set print_version and other flags as appropriate.
4723         (cpp_post_options): Print version here if print_version is set.
4724
4725         * toplev.c (exit_after_options): New flag.
4726         (independent_decode_option): Don't exit here; just set
4727         exit_after_options.
4728         (main): Exit after calling lang_hooks.post_options if
4729         exit_after_options is true.
4730
4731         * cppinit.c (append_include_chain): Drop never-used case QUOTE.
4732         (merge_include_chains): Adjust comment to match code.
4733
4734 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
4735
4736         * stringpool.c (set_identifier): New function.
4737         * tree.h: Prototype it.
4738
4739         * c-parse.in: Kill D_YES. If compiled for objc, call
4740         save_and_forget_protocol_qualifiers from init_reswords.
4741         * objc/objc-act.c (remember_protocol_qualifiers,
4742         forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
4743         Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
4744         vice versa.
4745         (save_and_forget_protocol_qualifiers): New function.
4746         * c-lex.h: Prototype save_and_forget_protocol_qualifiers.
4747
4748 2001-03-01  Diego Novillo  <dnovillo@redhat.com>
4749
4750         * c-semantics.c (prune_unused_decls): Return error_mark_node
4751         instead of (tree) 1 to stop traversing the tree chain.
4752
4753 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
4754
4755         Fix a problem introduced by Kenner's Feb 18 change.
4756         * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and
4757         flag_cse_skip_blocks only temporarily, not for ever.
4758
4759 Thu Mar  1 09:49:58 2001  Jeffrey A Law  (law@cygnus.com)
4760
4761         * config/pa/som.h  (ASM_IDENTIFY_GCC): Define.
4762         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise.
4763
4764         * pa.c (emit_move_sequence): Verify operand0 is a hard register
4765         before determining its register class.
4766
4767 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
4768
4769         * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming
4770         from reg 4 if current_function_calls_setjmp.
4771         (gen_nop_type): New function.
4772         (ia64_emit_nops): New function.
4773         (ia64_reorg): Call it.
4774         (ia64_sched_reorder): Move code that rotates bundles up a bit.
4775
4776         * reload1.c (eliminate_regs_in_insn): Restrict the special case
4777         code not to try to optimize adds with anything but a REG destination.
4778
4779         * sched-int.h (struct haifa_insn_data): Add new member priority_known.
4780         (INSN_PRIORITY_KNOWN): New accessor macro.
4781         * haifa-sched.c (priority): Use it instead of testing priority against
4782         zero.
4783
4784 2001-02-28  DJ Delorie  <dj@redhat.com>
4785
4786         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes,
4787         since that doesn't work the way gcc wants on a generic m68k.
4788
4789 2001-02-28  Richard Henderson  <rth@redhat.com>
4790
4791         * caller-save.c (save_call_clobbered_regs): Fix typo in
4792         comparison last change.
4793
4794 Wed Feb 28 19:31:42 CET 2001  Jan Hubicka  <jh@suse.cz>
4795
4796         * i386.c (pentium4_cost): New.
4797         (m_PENT4): New macro.
4798         (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf
4799         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8
4800         x86_integer_DFmode_moves, x86_partial_reg_dependency,
4801         x86_memory_mismatch_stall): Add Pentium4
4802         (x86_use_q_reg, x86_use_any_reg): Kill.
4803         (override_options): Add pentium4.
4804         (incdec_operand): Return 0 for pentium4.
4805         (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON.
4806         * i386.h (x86_use_q_reg, x86_use_any_reg): Kill.
4807         (TARGET_PENTIUM4): Define.
4808         (enum processor_type): Add PROCESSOR_PENTIUM4.
4809         (CPP_CPU_DEFAULT_SPEC): Add pentium4 support.
4810         * i386.md (attribute "cpu"): Add pentium4.
4811         * invoke.texi (march): Add pentium4.
4812
4813 Wed Feb 28 19:28:06 CET 2001  Jan Hubicka  <jh@suse.cz>
4814
4815         * i386.md (sse_mov?fcc*): New patterns and splitters.
4816         * i386.c (ix86_expand_movcc): Work post-reload; recognize
4817         the SSE based conditional moves.
4818
4819 Wed Feb 28 19:18:23 CET 2001  Jan Hubicka  <jh@suse.cz>
4820
4821         * i386.md (attribute mode): Add "TI".
4822         (movsf_1): Add pxor support; remove constant propagation splitter.
4823         (movdf_integer): Likewise.
4824         (movdf_nointeger): Likewise.
4825         (movxf constant prop splitter): Handle all modes; update for SSE.
4826         * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants.
4827         * i386.c (standard_80387_constant_p): Rewrite.
4828         (standard_sse_constant_p): New.
4829         * i386-protos.h (standard_sse_constant_p): New.
4830
4831 Wed Feb 28 19:05:37 CET 2001  Jan Hubicka  <jh@suse.cz>
4832
4833         * i386.md (sse_setccsf, sse_setccdf): New.
4834         (sse_cmp* patterns): Use '%D' instead of outputtting condition
4835         flag directly.
4836         * i386.c (sse_comparison_operator): Accept the supported unordered
4837         comparses; be ready for fast_math.
4838         (print_operand): Support 'D'.
4839
4840 Wed Feb 28 18:54:51 CET 2001  Jan Hubicka  <jh@suse.cz>
4841
4842         * jump.c (reversed_comparison_code): Kill.
4843
4844 Wed Feb 28 18:50:15 CET 2001  Jan Hubicka  <jh@suse.cz>
4845
4846         * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally
4847         for STACK_REGS
4848
4849 Wed Feb 28 18:47:37 CET 2001  Jan Hubicka  <jh@suse.cz>
4850
4851         * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions;
4852         add missing '%' in constraints.
4853
4854 Wed Feb 28 17:24:24 CET 2001  Jan Hubicka  <jh@suse.cz>
4855
4856         * c-common.c (build_common_tree_nodes): Build intTI_type_nodes
4857         for HOST_BITS_PER_WIDE_INT == 32 too.
4858
4859 Wed Feb 28 17:22:35 CET 2001  Jan Hubicka  <jh@suse.cz>
4860
4861         * caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
4862         NREGS.
4863         (insert_save, insert_restore): New parameter save_mode.
4864         (init_caller_save): Update initialization of reg_save_code
4865         and reg_restore_code.
4866         (save_call_clobbered_regs):  Compute save_modes and update calls to
4867         reg_save_code and reg_restore_code.
4868         (insert_restore):  Unsignetize numbers; use save_modes to choose mode
4869         of spill; update use of reg_restore_code.
4870         (insert_save):  Likewise.
4871         * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
4872         * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
4873         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
4874
4875 Wed Feb 28 17:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
4876
4877         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants,
4878         noce_try_store_flag_inc, noce_try_store_flag_mask,
4879         noce_try_cmove_arith):
4880         Use reversed_comparison_code instead of reverse_comparison and
4881         can_reverse_comparison_p.
4882
4883 Wed Feb 28 17:17:29 CET 2001  Jan Hubicka  <jh@suse.cz>
4884
4885         * jump.c (reversed_comparison_code_parts): Allow reversal of
4886         unordered compares in -ffast-math mode; reverse ordered compares
4887         for FP even w/o -ffast-math.
4888
4889 2001-02-27  Richard Henderson  <rth@redhat.com>
4890
4891         * print-rtl.c (print_rtx) [i]: Don't print field five on
4892         NOTEs other than NOTE_INSN_DELETED_LABEL.
4893
4894 2001-02-27  Zack Weinberg  <zackw@stanford.edu>
4895
4896         * mips/xm-iris4.h: Delete #if 0 block (there since before 1997).
4897         * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno.
4898
4899 2001-02-27  Diego Novillo  <dnovillo@redhat.com>
4900
4901         * c-common.c (walk_stmt_tree): Visit the chain of the current tree
4902         even if walk_subtrees is 0.
4903         * c-semantics.c (prune_unused_decls): Return a non-null value to
4904         stop traversing the tree chain.
4905
4906 2001-02-27  DJ Delorie  <dj@redhat.com>
4907
4908         * config/m68k/m68k.c (output_function_prologue): Save the new CFA
4909         register, *then* define it as the new CFA.
4910
4911 Tue Feb 27 16:49:13 2001  Jeffrey A Law  (law@cygnus.com)
4912
4913         * pa.c (override_options): Promote -fpic to -fPIC.
4914         (legitimize_pic_address): Simplify due to removal of
4915         small PIC as a code generation option.
4916         (secondary_reload_class): Similarly.
4917         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly.
4918         (PRINT_OPERAND_ADDRESS): Similarly.
4919         * pa.md (various patterns): Similarly.
4920         (small pic lo_sum pattern): Remove.
4921
4922 Tue Feb 27 16:01:13 CET 2001  Jan Hubicka  <jh@suse.cz>
4923                               Fergus Henderson
4924
4925         * md.texi (min, max): Document
4926
4927 Tue Feb 27 15:51:35 CET 2001  Jan Hubicka  <jh@suse.cz>
4928
4929         * i386.md (movsf, movdf): Use movaps for reg-reg moves if
4930         TARGET_PARTIAL_REG_DEPENDENCY.
4931         (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
4932
4933 Tue Feb 27 15:36:48 CET 2001  Jan Hubicka  <jh@suse.cz>
4934
4935         * i386.md (mins*, maxs*): New patterns, expanders and splitters.
4936
4937 2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
4938
4939         * mips.c (mips_make_temp_file): Fix thinko in last change.
4940
4941 2001-02-26  Jason Eckhardt  <jle@redhat.com>
4942
4943         * combine.c (known_cond): Do not reverse the condition when
4944         SMAX/UMAX is being considered and the condition is for equality
4945         or inequality.
4946
4947         * testsuite/gcc.c-torture/execute/20010221-1.c: New test.
4948
4949 2001-02-26  Philip Blundell  <philb@gnu.org>
4950
4951         * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and
4952         "armv2-*-linux".
4953         * config/arm/linux-elf.h: Remove historical relics related to
4954         above configurations.
4955         * config/arm/linux-oldld.h: Delete.
4956         * config/arm/linux-elf26.h: Delete.
4957
4958 2001-02-26  Jason Merrill  <jason@redhat.com>
4959
4960         * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope
4961         definitions.
4962         * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to
4963         recognize a tentative definition.  Lose obsolete code.
4964
4965         * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT
4966         variables unless necessary, either.
4967
4968 2001-02-25  Richard Henderson  <rth@redhat.com>
4969
4970         * ifcvt.c (struct noce_if_info): Add test_bb.
4971         (noce_get_alt_condition): New.
4972         (noce_try_minmax, noce_try_abs): New.
4973         (noce_operand_ok): New.
4974         (noce_process_if_block): Use them.
4975         * rtlanal.c (may_trap_p): NEG and ABS can never trap.
4976
4977 Sun Feb 25 14:26:17 2001  Christopher Faylor <cgf@cygnus.com>
4978
4979         * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api
4980         include.
4981
4982 2001-02-25  Zack Weinberg  <zackw@stanford.edu>
4983
4984         * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
4985         * config/mips/mips.c (mips_make_temp_file): Set temp_filename
4986         properly.
4987         (mips_asm_file_end): Free temp_filename here.
4988
4989 Sun Feb 25 08:34:23 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4990
4991         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl.
4992         * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo.
4993
4994         * config/i386/i386.md (movstrsi): Handle FAIL case.
4995
4996 2001-02-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4997
4998         * cppinit.c (builtin_array): Update.
4999         (init_builtins): Flag builtins to warn if redefined or
5000         undefined.  Define __GXX_WEAK as a normal macro.
5001         * cpplib.c (do_undef): Warn if flagged NODE_WARN.
5002         * cpplib.h (NODE_WARN): New flag.
5003         * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__.
5004         Handle __STDC__ as a builtin only on Solaris.
5005         (warn_of_redefinition): Renamed from check_macro_definition.
5006         Reverse sense of test.  Always warn if NODE_WARN.
5007         (_cpp_create_definition): Use warn_of_redefinition.  Flag
5008         any macro beginning with "__STDC_" to require a mandatory
5009         warning if redefined or undefined.
5010
5011 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
5012
5013         * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h,
5014         i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h,
5015         i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h,
5016         i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h,
5017         m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h,
5018         mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h:
5019         Don't define any of:
5020         USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H,
5021         P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS,
5022         NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex,
5023         index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK,
5024         STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN.
5025
5026         * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h,
5027         fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro
5028         definitions.
5029
5030         * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h:
5031         Delete now-empty file.
5032
5033         * alpha/vms.h: Define NEED_ATEXIT here...
5034         * alpha/xm-vms.h: ...not here.
5035
5036         * i386/cygwin.h: Don't define PARAMS.
5037         * mips/mips.c: Don't prototype mktemp.  Don't define
5038         P_tmpdir.  Use make_temp_file to create temporary files.
5039         Don't be clever and delete temporary files early.
5040         * config.gcc: Drop references to deleted files.  Don't define
5041         FULL_PROTOTYPES.
5042         * gcc.texi: Don't mention USE_PROTOTYPES.
5043
5044 Sat Feb 24 20:25:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5045
5046         * config/i386/i386.c (ix86_set_move_mem_attrs): New function.
5047         (ix86_set_move_mem_attrs_1): Likewise.
5048         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration.
5049         * config/i386/i386.md (movstrsi): Call it.
5050
5051 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
5052
5053         * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd,
5054         x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv,
5055         ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas,
5056         rs6000/x-aix41-gld.  These are nonexistent, empty, or obsolete.
5057
5058         (i750a-*-*): Error here if hosting on i750a.
5059         (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely.
5060
5061         * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h:
5062         Remove (empty modulo comments).
5063
5064         * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h,
5065         alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h,
5066         i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h,
5067         i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs,
5068         mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas,
5069         rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete)
5070
5071         * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h:
5072         Remove reference to winnt.h in comment.
5073         * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null.
5074
5075 2001-02-24  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5076
5077         * loop.c (check_dbra_loop): A biv has uses besides counting if it is
5078         used to set another biv.
5079
5080 Sat Feb 24 06:45:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5081
5082         * tree.h (BLOCK_DEAD): New macro.
5083         (struct tree_block): New flag, dead_flag.
5084         * print-tree.c (print_node, case 'b'): Print missing fields.
5085         * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD.
5086         * function.c (identify_blocks): Enable test for misplaced notes.
5087         (all_blocks): Skip BLOCK_DEAD blocks.
5088         * integrate.c (integrate_decl_tree): Likewise.
5089
5090         * errors.c (internal_error, trim_filename): New functions.
5091         (fancy_abort): Call internal_error.
5092         * errors.h (internal_error, trim_filename): New declarations.
5093
5094 2001-02-24  Alexandre Oliva  <aoliva@redhat.com>
5095
5096         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted
5097         2000-08-26's patch.
5098         (EXTRA_CONSTRAINT): Formatting changes.
5099
5100 2001-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5101
5102         * rtl.c (rtl_check_failed_code2): Fix typo in last change.
5103
5104 2001-02-23  Per Bothner  <per@bothner.com>
5105
5106         * gcc.c (record_temp_file, pfatal_with_name, error):  Make non-static,
5107         so they can be called from java/jvspec.c.
5108         * gcc.h (record_temp_file, pfatal_with_name, error):  Declare.
5109
5110 Sat Feb 24 03:32:50 CET 2001  Jan Hubicka  <jh@suse.cz>
5111
5112         * i386.c (ix86_frame): New structure.
5113         (ix86_compute_frame_size): Kill.
5114         (ix86_compute_frame_layout): New.
5115         (ix86_save_reg): New.
5116         (ix86_can_use_return_insn_p): Use frame layout stuff.
5117         (ix86_expand_prologue): Likewise.
5118         (ix86_expand_epilogue): Likewise.
5119         (ix86_initial_elimination_offset): Likewise.
5120         (ix86_nsaved_regs): Use ix86_save_reg.
5121         (ix86_emit_save_regs): Likewise.
5122
5123 Sat Feb 24 03:30:38 CET 2001  Jan Hubicka  <jh@suse.cz>
5124
5125         * flow.c (find_sub_basic_blocks): New function.
5126         (split_block): Be ready for basic block introduced by CODE_LABEL.
5127         (commit_one_edge_insertion): Call find_sub_basic_block.
5128
5129         * flow.c (make_edges): Add edge from entry for blocks starting with
5130         label having ALTERNATE_NAME
5131
5132 Sat Feb 24 03:19:42 CET 2001  Jan Hubicka  <jh@suse.cz>
5133
5134         * function.c (epilogue_done): Be ready for first basic block not
5135         containing PROLOGUE_END note.
5136         (reposition_prologue_and_epilogue_notes): Avoid placing
5137         PROLOGUE_END note between BASIC_BLOCK.
5138
5139 Sat Feb 24 03:17:09 CET 2001  Jan Hubicka  <jh@suse.cz>
5140
5141         * loop.c (canonicalize_condition): Move to reversed_comparison_code.
5142
5143 2001-02-21  DJ Delorie  <dj@redhat.com>
5144
5145         * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
5146         check for current_function_has_nonlocal_goto from 1999-11-12.
5147
5148 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5149
5150         * diagnostic.c (trim_filename): No longer static.
5151         * toplev.h (trim_filename): Declare.
5152         * rtl.c (rtl_check_failed_bounds): Call internal_error.
5153         (rtl_check_failed_type1, rtl_check_failed_type2): Likewise.
5154         (rtl_check_failed_code1, rtl_check_failed_code2): Likewise.
5155         (rtvec_check_failed_bounds): Likewise.
5156         * tree.c (tree_check_failed, tree_class_check_failed): Likewise.
5157
5158         * convert.c (convert_to_integer): Don't do unsigned unless result or
5159         both inputs are unsigned.
5160
5161         * fold-const.c (fold_convert): Don't call size_int_type_wide if
5162         input overflows.
5163
5164         * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
5165
5166         * varasm.c (output_constant): Recompute CODE after lang-specific fn.
5167
5168 2001-02-23  Jeffrey Oldham  <oldham@codesourcery.com>
5169
5170         * Makefile.in (resource.o): Add params.h dependence.
5171         * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter.
5172         * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise.
5173         * resource.c: Add dependence on params.h.
5174         (current_live_regs): Fix explanatory comment.
5175         (find_basic_block): Add new parameter to permit limiting search
5176         for a BARRIER.
5177         (mark_target_live_regs): Add new argument to find_basic_block call.
5178         (incr_ticks_for_insn): Likewise.
5179
5180 2001-02-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5181
5182         * diagnostic.c (output_to_stream): Rename to
5183         output_buffer_to_stream. Loses the stream parameter.
5184         (init_output_buffer): Set diagnosic_buffer's stream.
5185         (flush_diagnostic_buffer): Adjust.
5186         (default_print_error_function): Likewise.
5187         (finish_diagnostic): Likewise.
5188         (verbatim): Likewise.
5189
5190         * diagnostic.h (struct output_buffer): Add `stream' field.
5191         (output_buffer_attached_stream): New macro.
5192
5193 2001-02-23  Jakub Jelinek  <jakub@redhat.com>
5194
5195         * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR,
5196         check if either operand is divisible by C.
5197         (multiple_of_p): Handle LSHIFT_EXPR with small constant shift.
5198         If type is signed, consider negative numbers as well.
5199
5200 2001-02-22  Richard Henderson  <rth@redhat.com>
5201
5202         * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to
5203         reach .text instead of gp-relative relocs.
5204         * config/ia64/crtend.asm (.init): Likewise.
5205
5206 2001-02-22  Andreas Jaeger  <aj@suse.de>
5207
5208         * extend.texi (C++ Attributes): Fix typo.
5209
5210 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
5211
5212         * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage
5213         functions, drop current_function_args_info.words test.
5214         (ia64_compute_frame_size): Mark syscall_linkage functions as
5215         using eight input registers.
5216
5217 2001-02-21  Loren J. Rittle  <ljrittle@acm.org>
5218         Bruce Korb  <bkorb@gnu.org>
5219
5220         * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix
5221         * fixinc/README: Document how to convert sed substitutions
5222         to format style c_fix-es.
5223         * fixinc/fixincl.x: regen
5224
5225 2001-02-21  Jeffrey D. Oldham  <oldham@codesourcery.com>
5226
5227         * gcc.c: Add comment explaining how to add a command-line option.
5228         Add title to specs language comment.
5229
5230 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
5231
5232         * gcc.c (cc1_options): Add "-param".
5233         (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise.
5234         (option_map): Likewise.
5235         * toplev.c (display_help): Add entry for "--param".
5236         (independent_decode_option): Fix typographical error.
5237
5238 Wed Feb 21 18:57:28 CET 2001  Catherine Moore  <clm@redhat.com>
5239                               Bernd Schmidt  <bernds@redhat.com>
5240                               Jan Hubicka  <jh@suse.cz>
5241
5242         * i386.c (function_arg_advance):  Pass SSE arguments in registers.
5243         (function_arg): Likewise.
5244
5245 Wed Feb 21 18:12:41 CET 2001  Jan Hubicka  <jh@suse.cz>
5246
5247         * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec.
5248
5249 2001-02-21  Kazu Hirata  <kazu@hxi.com>
5250
5251         * config/h8300/h8300.md (iorsi3): Do not output an extra newline
5252         character.
5253         (xorsi3): Likewise.
5254
5255 Wed Feb 21 17:35:24 CET 2001  Jan Hubicka  <jh@suse.cz>
5256
5257         * flow.c (init_propagate_block_info): Canon address and use single_set
5258         for killing dead memory stores.
5259
5260 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
5261
5262         * Makefile.in (reorg.o): Add params.h dependence.
5263         * params.def: Fix typographical error in comment.
5264         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
5265         * params.h: Modify introductory comment.
5266         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
5267         * reorg.c: Add dependence on params.h.
5268         (redundant_insn): Add parameterized throttle for search.
5269         (fill_simple_delay_slots): Add a comment explaining a variable.
5270         Move conditional out of loop, simplifying code.
5271         (fill_eager_delay_slots): Fix typographical error in comment.
5272
5273 2001-02-20  Aldy Hernandez  <aldyh@redhat.com>
5274
5275         * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation.
5276
5277         * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro.
5278         (REVERSE_CONDEXEC_PREDICATES_P): Define macro.
5279
5280 2001-02-21  Jason Merrill  <jason@redhat.com>
5281
5282         * tree.h (DECL_UNINLINABLE): Move from C++ frontend.
5283         (struct tree_decl): Add uninlinable bitfield.
5284         * c-decl.c (duplicate_decls): Set it.
5285         * integrate.c (function_cannot_inline_p): Check it.
5286
5287         * dwarf2out.c (add_name_and_src_coords_attributes): Don't add
5288         DW_AT_MIPS_linkage_name to abstract methods.
5289         (dwarf2out_abstract_function): Emit class context before calling
5290         set_decl_abstract_flags.  Don't clear DECL_ABSTRACT.
5291         (gen_subprogram_die): Remove obsolete code.
5292         (gen_member_die): Don't include clones in the member list.
5293         (gen_decl_die): Emit abstract info for clone origin.
5294         * dwarfout.c (output_type): Don't include clones in the member list.
5295         * dbxout.c (dbxout_type_methods): Ignore abstract methods.
5296         * toplev.c (note_deferral_of_defined_inline_function): Don't clear
5297         DECL_ABSTRACT on a function that already has it set.
5298
5299         * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL.
5300         (get_subprogram_die): Pass it in.
5301
5302 2001-02-21  Richard Earnshaw  <rearnsha@arm.com>
5303
5304         * flow.c (mark_set_1): Make not_dead unsigned long.  For
5305         non-pseudos, use it as a bitmask of the hard regs that
5306         don't die.
5307
5308 2001-02-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5309
5310         * cppfiles.c: Update comments.
5311         (_cpp_read_file): Don't check for NULL filenames any more.
5312         * cppinit.c (cpp_start_read): Don't do canonicalization of
5313         in_fname and out_fname.  Use the passed file name exclusively.
5314         (_cpp_handle_options): Don't treat "-" as a command line option,
5315         but as a normal filename.
5316         (_cpp_post_options): Canonicalize in_fname and out_fname.
5317         * cppmain.c (printer_init): Don't check out_fname for NULL.
5318         * c-lex.c (orig_filename): Rename cpp_filename for clarity.
5319         (init_c_lex): Update, and use "" to represent stdin to CPP.
5320         (yyparse): Update.
5321
5322 2001-02-20  Will Cohen  <wcohen@redhat.com>
5323
5324         * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
5325         * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
5326         (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
5327         fixunstfsi_libfunc.
5328
5329 2001-02-20  Stan Shebs  <shebs@apple.com>
5330
5331         * config/rs6000/rs6000.c (output_cbranch): Output branches
5332         on separate lines instead of using ';' to separate.
5333
5334 2001-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5335
5336         * cppinit.c (set_lang):  Move builtin handling to...
5337         (init_builtins): ...here.
5338         (_cpp_create_reader): Move call to set_lang.
5339
5340 2001-02-20  Mark Mitchell  <mark@codesourcery.com>
5341
5342         * stmt.c (expand_return): If an attempt is made to return the
5343         error_mar_node, treat the return like a return without a value.
5344
5345 2001-02-19  Zack Weinberg  <zackw@stanford.edu>
5346
5347         * sibcall.c (skip_copy_to_return_value): Call
5348         identify_call_return_value here, and return orig_insn if it
5349         returns zero.  Hardret and softret arguments now unnecessary.
5350         (call_ends_block_p): Don't call identify_call_return_value here.
5351
5352         * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or
5353         's' slots in RTXen.
5354         * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function.
5355         * ggc.h (ggc_mark_if_gcable): Delete prototype.
5356
5357 Mon Feb 19 20:30:16 2001  Jeffrey A Law  (law@cygnus.com)
5358
5359         * pa.c (move_operand): Accept code to load the address of a
5360         symbol out of the DLT as a valid move operand.
5361         (print_operand, case 'A'): New to handle generating a DLT
5362         reference for a LO_SUM expression.
5363         * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references.
5364         * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references.
5365
5366 2001-02-19  Joseph S. Myers  <jsm28@cam.ac.uk>
5367
5368         * README, cpp.texi, gcc.texi, version.c: Update version number to
5369         3.1.
5370         * cpp.1, gcov.1, gcc.1: Regenerate.
5371
5372 2001-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5373
5374         * cppfiles.c (stack_include_file): Generate dependencies
5375         here, and manage include_count here too.
5376         (PRINT_THIS_DEP): Delete.
5377         (_cpp_execute_include): Do not generate dependencies here,
5378         apart from the case of a missing header.  Do not manage
5379         include_count.
5380         (_cpp_read_file): Leave dependency generation to
5381         stack_include_file.
5382
5383 Mon Feb 19 10:17:47 2001  Jeffrey A Law  (law@cygnus.com)
5384
5385         * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to
5386         target_cpu_default.  Remove dead assignment to
5387         target_cpu_default.
5388
5389 Mon Feb 19 16:47:39 CET 2001  Jan Hubicka  <jh@suse.cz>
5390
5391         * regclass.c (contains_reg_of_mode): Make global.
5392         (init_reg_sets): Remove contains_reg_of_mode; take into account
5393         CLASS_MAX_NREGS when looking for the proper mode.
5394         (dump_regclass): Dump only classes considered for the pseudo.
5395         (regclass): Use contains_reg_of_mode.
5396
5397 Mon Feb 19 16:45:42 CET 2001  Jan Hubicka  <jh@suse.cz>
5398
5399         * gcc.c (do_spec_1): 'n' for printing notices.
5400         * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated.
5401
5402 Mon Feb 19 15:51:30 CET 2001  Jan Hubicka  <jh@suse.cz>
5403
5404         * reg-stack.c (next_flags_user): Use current_block->end
5405         (swap_rtx_condition): Look for next user if flags don't die;
5406         give up on CALL_INSNs; use current_block->end.
5407
5408 Mon Feb 19 08:27:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5409
5410         * sibcall.c (call_ends_block_p): New function.
5411         (optimize_sibling_and_tail_recursive_call): Use it.
5412
5413 2001-02-18  Kazu Hirata  <kazu@hxi.com>
5414
5415         * config/h8300/h8300.md: Update copyright.
5416         (andsi3): Do not output an extra newline character.
5417
5418 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5419
5420         * toplev.c (note_deferral_of_defined_inlined_function): Argument
5421         FNDECL may be unused.
5422
5423         * toplev.c (rest_of_compilation): Don't have CSE skip blocks or
5424         follow jumps after first run.
5425         If -fexpensive-optimizations rerun CSE after GCSE and iterate until
5426         it doesn't change any jumps.
5427
5428 Sun Feb 18 17:05:50 2001  Jeffrey A Law  (law@cygnus.com)
5429
5430         * Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
5431         ($HOST_PREFIX_1)rtlanal.o: Remove rules for building
5432         (mostlyclean): Corresponding changes.
5433         * rtlanal.c (hard-reg-set.h): Include.
5434         (rtx_unstable_p): Do not treat the argument pointer specially
5435         if it is not a fixed register.
5436         (rtx_varies_p, rtx_addr_can_trap_p): Similarly.
5437
5438 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5439
5440         * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare
5441         against last real insn in basic block.
5442         Rework to avoid gotos.
5443
5444         * Makefile.in (gcse.o): Now includes ggc.h.
5445         * gcse.c: Include ggc.h.
5446         (want_to_gcse_p): Verify expression can be in SET as valid insn.
5447         (try_replace_reg): Remove warning of uninitialize variable.
5448         (process_insert_insn): Call invalid_insn_p to validate insn.
5449         * recog.c (insn_invalid_p): Now global.
5450         See if can make valid by adding CLOBBERs of SCRATCH only and do if so.
5451         * recog.h (insn_invalid_p): New declaration.
5452
5453         * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap.
5454
5455         * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
5456         assignments from FP constants since 'Y' output code can't handle it.
5457         (eligible_for_sibcall_delay): Likewise.
5458
5459         * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
5460         Call fancy_abort directly, passing args.
5461         (print_rtl_and_abort): Now a macro, like fancy_abort.
5462
5463         * final.c (output_operand_lossage): Use internal_error, not error.
5464
5465 2001-02-18  Shane Nay  <shane@agendacomputing.com>
5466
5467         * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to
5468         structure shift insns.
5469
5470 2001-02-18  Mark Mitchell  <mark@codesourcery.com>
5471
5472         * invoke.texi (-fsquangle): Remove documentation.
5473         (-fname-mangling-version): Likewise.
5474
5475 2001-02-18  Lars Brinkhoff  <lars@nocrew.org>
5476
5477         * optabs.c (expand_abs): Remove reference to
5478         HAVE_contitional_arithmetic.
5479         * combine.c (simplify_set): Likewise.
5480
5481 2001-02-18  Richard Henderson  <rth@redhat.com>
5482
5483         * ifcvt.c (dead_or_predicable): Don't move code if eh regions
5484         would be disrupted.
5485
5486 2001-02-18  Richard Henderson  <rth@redhat.com>
5487
5488         * config/ns32k/ns32k.h (ADJSP): Upcase arguments.
5489
5490         * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name.
5491
5492         * reload1.c (reload_cse_simplify_set): Fix typo.
5493
5494 Sun Feb 18 09:30:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5495
5496         * diagnostic.c (_fatal_insn): Decrement errorcount.
5497
5498         * invoke.texi (-I): Add note avoiding use for system header files.
5499
5500         * rtl.h (add_clobbers): Remove duplicate declaration.
5501         * recog.h (added_clobbers_hard_reg_p): New declaration.
5502         * genemit.c (struct clobber_pat): New field has_hard_reg.
5503         (gen_insn): Record if added clobbers clobber hard reg.
5504         (gen_split): Avoid unused warning if number of operands is 0.
5505         (output_added_clobbers_hard_reg_p): New function.
5506         (main): Call it.
5507
5508 2001-02-18  Alan Modra <alan@linuxcare.com.au>
5509
5510         * pa.c (hppa_expand_prologue): Simplify code storing return
5511         pointer.  For large (>=8k) frames with a post_store, adjust stack
5512         pointer by 8k-64 first rather than by 64.  When testing with
5513         VAL_14_BITS_P, always use the actual value rather than the value
5514         negated.  Add blockage to prevent scheduling of spills before
5515         stack frame has been created.
5516         (hppa_expand_epilogue): Simplify code loading return pointer.
5517         Allow a slightly larger range for merge_sp_adjust_with_load case.
5518         When testing with VAL_14_BITS_P, always use the actual value.
5519
5520         * pa.c (pa_adjust_insn_length): Check that block move
5521         pattern is a set before looking at operands.
5522
5523 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
5524
5525         * fold-const.c (fold_binary_op_with_conditional_arg): New
5526         function, split out from ...
5527         (fold): ... here.
5528         * tree.def (COND_EXPR): Document the use of VOID_TYPE for
5529         conditional arms that throw exceptions.
5530
5531         * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not
5532         looking at a BLOCK.
5533
5534 2001-02-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5535
5536         * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test,
5537         define HAVE_DECL_* to 1 to mask potential backup declarations.
5538         * configure: Regenerated.
5539
5540 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
5541
5542         * invoke.texi (-Woverloaded-virtual): Clarify documentation.
5543
5544 2001-02-17  Richard Henderson  <rth@redhat.com>
5545
5546         * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP
5547         when replacing a memory load with a register.
5548
5549 Sat Feb 17 14:48:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5550                           Jan Hubicka  <jh@suse.cz>
5551
5552         * recog.c (validate_replace_src_1): New.
5553         (validate_replace_src_data): Likewise.
5554         (validate_replace_src): Use note_uses.
5555         * rtl.h (note_uses): Declare.
5556         * rtlanal.c (note_uses): New.
5557
5558 Sat Feb 17 10:52:34 CET 2001  Jan Hubicka  <jh@suse.cz>
5559
5560         * reg-stack.c (stack_def): Make field reg unsigned.
5561         (remove_regno_note): Unsignetize parameter.
5562
5563 2001-02-16  Jes Sorensen  <jes@linuxcare.com>
5564
5565         * ia64.c (errata_emit_nops): Add VOIDmode as second argument to
5566         shladd_operand() call.
5567
5568 2001-02-16  Bruce Korb  <bkorb@gnu.org>
5569             Rodney Brown  <RodneyBrown@mynd.com>
5570
5571         * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7.
5572         * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching
5573         machine restrictions
5574         * fixinc/fixincl.x: regen
5575
5576 Fri Feb 16 12:41:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5577
5578         * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
5579         Don't CSE a nop.
5580         (hash_scan_insn): Clean up calls to hash_scan_set.
5581         (compute_kill_rd): REGNO now unsigned.
5582         (try_replace_reg): Rework to use simplify_replace_rtx.
5583         (cprop_jump, cprop_cc0_jump): Likewise.
5584         (cprop_insn): Call find_reg_equal_equiv_note.
5585         Reflect changes to cprop_jump and cprop_cc0_jump.
5586
5587         * recog.c (validate_replace_src): Replace in operands of
5588         ZERO_EXTRACT in SET_DEST.
5589
5590         * cse.c (new_label_ref): New variable.
5591         (insert): Set it instead of recorded_label_ref.
5592         (cse_basic_block): Set recorded_label_ref if new_label_ref use, has
5593         CODE_LABEL for this function, and not already in REG_LABEL note.
5594
5595 2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
5596
5597         * resource.c (mark_referenced_resources): Fix typo in introductory
5598         comment.
5599         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in
5600         string constant.
5601
5602 2001-02-16  Jason Merrill  <jason@redhat.com>
5603
5604         * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is
5605         NULL.
5606         (gen_subprogram_die): Don't abort on seeing a second definition if
5607         the previous one was abstract.  Don't replace an abstract instance
5608         in the lookup table.
5609
5610         * dwarf2out.c (dwarf2out_abstract_function): Rename from
5611         gen_abstract_function.
5612         * dwarf2out.h: Declare it.
5613         * toplev.c (note_outlining_of_inline_function): New fn.
5614         * toplev.h: Declare it.
5615         * integrate.c (output_inline_function): Call it.
5616         * c-decl.c (duplicate_decls): Call it when redefining an extern
5617         inline.  Don't inline the new defn.
5618
5619         * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
5620
5621 2001-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5622
5623         * .gdbinit: Rename to gdbinit.in.
5624         * gdbinit.in: New file,
5625         * configure.in: Generate .gdbinit from gdbinit.in.
5626         * configure: Regenerated.
5627         * Makefile.in (distclean): Always remove .gdbinit.
5628
5629 2001-02-16  Jakub Jelinek  <jakub@redhat.com>
5630
5631         * objc/objc-act.c (start_class): Register implemented_classes with
5632         GC.
5633
5634 2001-02-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5635
5636         * cppfiles.c (_cpp_make_system_header): Generate a file
5637         change callback.
5638
5639 2001-02-15  Jim Meyering  <meyering@lucent.com>
5640
5641         * Makefile.in (install-common): Don't depend on installdirs here.
5642         Instead, make each of the lang.install-common targets (e.g.,
5643         c++.install-common in cp/Make-lang.in) depend on it.
5644         (install-driver): Depend on installdirs.
5645
5646 Thu Feb 15 21:30:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5647
5648         * flow.c (tidy_fallthru_edge): Never end block on line number NOTE.
5649
5650         * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we
5651         do in memory.
5652
5653 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
5654
5655         * invoke.texi (--param): Document.
5656
5657 Thu Feb 15 15:16:38 2001  Alexandre Oliva  <aoliva@redhat.com>
5658
5659         * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define.
5660
5661 Thu Feb 15 10:52:31 CET 2001  Jan Hubicka  <jh@suse.cz>
5662
5663         * i386.md (extendsfdf2_2): Fix constraints.
5664
5665 Thu Feb 15 09:46:21 CET 2001  Jan Hubicka  <jh@suse.cz>
5666
5667         * i386.md (fop_df_3 splitter): Fix operand number.
5668
5669 Wed Feb 14 12:37:37 CET 2001  Jan Hubicka  <jh@suse.cz>
5670
5671         * invoke.texi (-mreg-alloc): Nuke.
5672         * i386.c (ix86_reg_alloc_order, regs_allocated,
5673         order_regs_for_local_alloc): Nuke.
5674         (override_options): Kill reg_alloc code.
5675         * i386.h (TARGET_OPTIONS): Kill reg-alloc.
5676         (REG_ALLOC_ORDER): SSE goes before I387.
5677         (ORDER_REGS_FOR_LOCAL_ALLOC): Kill.
5678         (ix86_reg_alloc_order): Likewise.
5679         * i386-protos.h (ix86_reg_alloc_order): Kill.
5680
5681 2001-02-14  Richard Henderson  <rth@redhat.com>
5682
5683         * toplev.c (f_options): Clarify -fschedule-insns2 documentation.
5684
5685 Wed Feb 14 11:59:58 CET 2001  Jan Hubicka  <jh@suse.cz>
5686
5687         * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes
5688
5689 Wed Feb 14 11:12:38 CET 2001  Jan Hubicka  <jh@suse.cz>
5690
5691         * i386-protos.h (ix86_memory_move_cost): Move offline.
5692         * i386.c (ix86_register_move_cost): Compute properly cost of
5693         SSE, MMX and i387 instructions.
5694         (*_cost): Add costs of SSE/MMX moves.
5695         (ix86_memory_move_cost): Move offline from ....; Likewise.
5696         * i386.h (MEMORY_MOVE_COST): .... here;
5697         (struct processor costs): Add new fields to represent costs
5698         of SSE/MMX moves.
5699
5700 Wed Feb 14 10:08:26 CET 2001  Jan Hubicka  <jh@suse.cz>
5701
5702         * regclass.c (init_reg_sets_1): Reinstall the optimization of
5703         move_cost together with Matt Kraai's fix.
5704
5705 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
5706
5707         * Makefile.in (OBJS): Add params.o.
5708
5709 2001-02-14  Richard Henderson  <rth@redhat.com>
5710             DJ Delorie  <dj@redhat.com>
5711
5712         * jump.c (jump_optimize_1): When we delete a conditional jump
5713         preceeding a non-conditional jump to effectively the same place,
5714         make sure that the combined jump skips any clobber insns between
5715         the two labels.
5716
5717 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
5718
5719         * gcc.c (do_spec_1): Fix off-by-one error for '%M' case.
5720
5721 2001-02-14  Mark Mitchell  <mark@codesourcery.com>
5722
5723         * Makefile.in (toplev.o): Depend on params.h.
5724         (intergate.o): Likewise.
5725         (params.o): New target.
5726         * flags.h (inline_max_insns): Remove.
5727         * integrate.c: Include params.h.
5728         Use MAX_INLINE_INSNS instead of inline_max_insns.
5729         * params.c: New file.
5730         * params.h: Likewise.
5731         * params.def: Likewise.
5732         * toplev.c: Include params.h.
5733         (lang_independent_params): New variable.
5734         (decode_f_option): Use the param machinery instead of setting
5735         max_inline_insns.
5736         (independent_decode_option): Handle "--param name=value".
5737         (main): Register language-independent parameters.
5738
5739 Wed Feb 14 11:13:45 CET 2001  Jan Hubicka  <jh@suse.cz>
5740
5741         * i386.md (pushsf, pushdf_nointeger): Fix constraint.
5742
5743 2001-02-14  Richard Henderson  <rth@redhat.com>
5744
5745         * regclass.c (init_reg_sets_1): Revert last two changes.
5746
5747 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
5748
5749         * stor-layout.c (is_pending_size, put_pending_size): New functions.
5750         (variable_size): Call put_pending_size.
5751         * tree.h (is_pending_size, put_pending_size): Add prototypes.
5752         * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending
5753         sizes list, put newly created SAVE_EXPR there as well.
5754
5755 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
5756
5757         * config/ia64/ia64.c (last_group): Only 2 entries are needed.
5758         (errata_find_address_regs): load_group has only 2 entries.
5759         (errata_emit_nops): Likewise.  shladd is not problematic.
5760         Clear last_group if nop was emitted.
5761         (fixup_errata): load_group has only 2 entries.
5762         Optimize.
5763
5764 2001-02-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5765
5766         * c-lex.c (lex_number): Only warn traditionally for U suffix
5767         outside system macros.
5768         * cppexp.c (parse_number): Similarly.
5769         * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New.
5770         * cppmacro.c (struct cpp_macro): New member node.
5771         (parse_args): Only warn about missing rest args if not
5772         a system macro.
5773         (funlike_invocation_p): Similarly for uninvoked funlike macros.
5774         (cpp_sys_objmacro_p): New.
5775         (_cpp_create_definition): Store the node with the macro defn.
5776         Remember if the macro is defined in a system header.
5777
5778 2001-02-13  DJ Delorie  <dj@redhat.com>
5779
5780         * configure.in (check_languages): determine languages to check
5781         * Makefile.in (check-c++): alias for check-g++
5782         (check-f77): alias for check-g77
5783         (CHECK_TARGETS): depend on configured languages
5784
5785 Wed Feb 14 01:13:59 CET 2001  Jan Hubicka  <jh@suse.cz>
5786
5787         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
5788         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
5789         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
5790         (sqrtextendsfdf2): Disable for SSE2.
5791
5792 Wed Feb 14 00:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
5793
5794         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
5795         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
5796         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
5797         (sqrtextendsfdf2): Disable for SSE2.
5798
5799 Wed Feb 14 00:11:20 CET 2001  Jan Hubicka  <jh@suse.cz>
5800
5801         * i386.md (movsfcc_1): Support integer cmove instruction.
5802         (movdfcc_1): Likewise; new splitter.
5803
5804 Tue Feb 13 23:19:27 CET 2001  Jan Hubicka  <jh@suse.cz>
5805
5806         * i386.c (output_fp_compare): Support SSE.
5807         (prepare_fp_compare_args): SSE comparisons always support memory.
5808         * i386.h (TARGET_CMOVE): SSE imply cmove.
5809         * i386.md (cmp?f2): Enable for SSE too.
5810         (cmpfp_i*): Support SSE.
5811         (cmpfp_i_sse): New.
5812         (cmpfp_i_sse_only): New.
5813         (s*, b* fp expanters): Enable for SSE too.
5814         (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only):
5815         New patterns.
5816
5817 Tue Feb 13 23:05:42 CET 2001  Jan Hubicka  <jh@suse.cz>
5818
5819         * regclass.c (init_reg_sets_1): Silence warning.
5820
5821 Tue Feb 13 22:03:07 CET 2001  Jan Hubicka  <jh@suse.cz>
5822
5823         * i386.md (sqrt?f2): Change to expander.
5824         (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New.
5825
5826 Tue Feb 13 15:42:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5827
5828         * rtlanal.c (find_reg_equal_equiv_note): New function.
5829         * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns.
5830         (simplify_gen_relational, simplify_replace_rtx): Likewise.
5831         * rtl.h: Add declarations for above functions.
5832
5833 Tue Feb 13 21:09:11 CET 2001  Jan Hubicka  <jh@suse.cz>
5834
5835         * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
5836         conditionals.
5837         * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
5838         * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
5839         * flow.c (mark_regs_live_at_end): Likewise.
5840         (calculate_global_regs_live): Likewise.
5841         * gcse.c (compute_hash_table): Likewise.
5842         (compute_kill_rd): Likewise.
5843         * resource.c (mark_target_live_regs): Likewise.
5844         * rtl.h (INVALID_REGNUM): New macro.
5845
5846 Tue Feb 13 20:59:22 CET 2001  Jan Hubicka  <jh@suse.cz>
5847
5848         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch.
5849
5850 Tue Feb 13 16:32:20 CET 2001  Jan Hubicka  <jh@suse.cz>
5851
5852         * i386.md (fixsfsi2, fixdfdi2): Force operand to register
5853         for SSE.
5854
5855 Tue Feb 13 14:53:16 CET 2001  Jan Hubicka  <jh@suse.cz>
5856
5857         * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2)
5858         too.
5859         (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE.
5860         (fop_sf_comm_sse, fop_df_comm_sse): New patterns.
5861         (fop_sf_1_sse, fop_df_1_sse): New patterns
5862         (fop_*): Disable float_extend and float patterns for SSE compilation.
5863         * i386.c (output_387_binary_op): Support SSE.
5864
5865 Tue Feb 13 14:16:34 CET 2001  Jan Hubicka  <jh@suse.cz>
5866
5867         * i386.md (dummy_extendsfdf2): Support SSE2
5868         (extendsfdf2): Enable if 80387 or SSE2.
5869         (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble
5870         and no MIX_I387_SSE2
5871         (extendsfdf2_1_sse_only): New pattern.
5872         (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version
5873         of SSE.
5874         (truncdfsf2_1): Support SSE.
5875         (truncdfsf2_2): Support SSE.
5876         (truncdfsf2_2_1_sse): New pattern.
5877         (fixtruncsfsi2): Always use SSE if available.
5878         (fix_truncsfsi_sse): New pattern.
5879         (fix_truncdfsi_sse): New pattern.
5880         (floatsis?f2): Support SSE.
5881         (floatsidf2_i387): New pattern.
5882         (floatsidf2_sse): Likewise.
5883
5884 Tue Feb 13 07:52:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5885
5886         * configure.in: Use "have_gnat" variable, not "gnat".
5887         * configure: Regenerated.
5888
5889         * config/sparc/sparc.c (function_value): Treat all non-record
5890         aggregate types like used to treat UNION_TYPE.
5891
5892 Tue Feb 13 13:31:33 CET 2001  Jan Hubicka  <jh@suse.cz>
5893
5894         * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG
5895         * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber
5896         (MASK_SSE2): New.
5897         (MASK_MIX_SSE_I387): New.
5898         (TARGET_SSE): SSE2 imply SSE.
5899         (TARGET_SSE2, TARGET_MIX_SSE_I387): New.
5900         (TARGET_SWITCHES): Add "sse2", "mix-sse-i387".
5901         (enum reg_class): Add new classes.
5902         (REG_CLASS_NAMES): Likewise.
5903         (REG_CLASS_CONTENTS): Likewise.
5904         (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros.
5905         (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is
5906         supported. Add 'Y' to be SSE_REGS when SSE2 is supported.
5907         (CLASS_MAX_NREGS): Use new macros.
5908         (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED.
5909         * i386.md (pushsf, movsf): Support SSE.
5910         (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update
5911         splitters to use ANY_FP_REGNO_P.
5912         (movdf_nointeger, movdf_integer): Likewise.
5913
5914 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
5915
5916         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro.
5917         (try_combine): Use it.
5918
5919 Tue Feb 13 11:37:06 CET 2001  Jan Hubicka  <jh@suse.cz>
5920
5921         * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P,
5922         MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros.
5923         (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline.
5924         (REGISTER_MOVE_COST): Likewise.
5925         * i386-protos.h (ix86_secondary_memory_needed,
5926         ix86_preferred_reload_class, ix86_register_move_cost): Declare.
5927         * i386.c (ix86_secondary_memory_needed,
5928         ix86_preferred_reload_class, ix86_register_move_cost): New function.
5929
5930 Die Feb 13 11:04:25 CET 2001  Jan Hubicka  <jh@suse.cz>
5931
5932         * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New.
5933         (HARD_REGNO_MODE_OK): Move offline to ....
5934         * i386.c (ix86_hard_regno_mode_ok) ... here;
5935         refuse all incorrect modes.
5936         * i386-protos.h (ix86_hard_regno_mode_ok): Declare.
5937
5938 2001-02-13  Richard Henderson  <rth@redhat.com>
5939
5940         * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
5941         entire operator; replicate that and match_dup the operands.
5942         (cmp_ccx_arith_op_set): Likewise.
5943         (cmp_cc_arith_op_not_set): Likewise.
5944         (cmp_ccx_arith_op_not_set): Likewise.
5945
5946 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
5947
5948         * explow.c (trunc_int_for_mode): Sign-extend value to mode.
5949
5950 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
5951
5952         * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
5953         (TARGET_NO_BITFIELD_WORD): New macro.
5954         (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options.
5955         (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD.
5956
5957 Mon Feb 12 18:13:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5958
5959         * cselib.c: New file, from simplify-rtx.c.
5960         * simplify-rtx.c: Remove cselib parts.
5961         * Makefile.in: Add cselib.o.
5962
5963 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
5964
5965         * config/rs6000/rs6000.c (rs6000_float_const): Remove warning.
5966         (setup_incoming_varargs): Remove warning.
5967
5968         * config/rs6000/rs6000.c (validate_condition_mode): When
5969         flag_fast_math, allow floating-point conditionals to be reversed.
5970         (rs6000_generate_compare): When flag_fast_math, don't generate
5971         cror operations for FP conditionals.
5972
5973         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
5974         -mcall-i960.
5975         (ASM_SPEC): Likewise.
5976         (CC1_ENDIAN_LITTLE_SPEC): Likewise.
5977         (CC1_SPEC): Likewise.
5978         (LINK_TARGET_SPEC): Likewise.
5979         (CPP_ENDIAN_SPEC): Likewise.
5980         * Makefile.in (check-consistency): New target.
5981
5982 2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
5983
5984         * c-decl.c (grokdeclarator): In C99 mode, give the more specific
5985         "return type defaults" warning for functions with return type
5986         defaulting to int.
5987         * c-lang.c (c_init): In C99 mode, enable warnings for implicit
5988         function declarations by default rather than only when pedantic.
5989
5990 Mon Feb 12 17:28:48 CET 2001  Jan Hubicka  <jh@suse.cz>
5991
5992         * regclass.c (init_reg_sets_1): Optimize calculation of move_cost
5993         arrays.
5994
5995 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
5996
5997         * extend.texi (Deprecated): Deprecate new initializer lists.
5998
5999 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6000
6001         * mkdeps.c (deps_add_default_target): Robustify. Add
6002         basename component only.
6003         * cpp.texi (-M): Describe how default target is generated.
6004         * invoke.texi (-M): Likewise.
6005
6006 2001-02-12  Kazu Hirata  <kazu@hxi.com>
6007
6008         * toplev.c (push_float_handler): Remove.
6009         (pop_float_handler): Remove.
6010         * toplev.h: Remove prototypes for the above functions.
6011
6012 2001-02-12  Jakub Jelinek  <jakub@redhat.com>
6013
6014         * c-common.c (constant_fits_type_p): New function.
6015         (convert_and_check): Use it.
6016
6017 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
6018
6019         * Makefile.in (GXX_ABI_FLAG): Don't define.
6020         * configure.in (--enable-new-gxx-abi): Remove option.
6021         * config.in: Regenerated.
6022         * configure: Likewise.
6023
6024 2001-02-12  Alexandre Oliva  <aoliva@redhat.com>
6025
6026         * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular
6027         basic block.
6028         (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a
6029         regular basic block, and arrange for all edges into it to switch
6030         to normal mode.
6031
6032 2001-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6033
6034         * Makefile.in (distclean): Do not remove .gdbinit.
6035
6036 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
6037
6038         * Makefile.in (gcc.o): Fix typos.
6039         (protize.o): Likewise.
6040         (unprotoize.o): Likewise.
6041
6042 2001-02-11  Richard Henderson  <rth@redhat.com>
6043
6044         * tree.c (build1): Check for null operand in last change.
6045
6046 2001-02-11  Richard Henderson  <rth@redhat.com>
6047
6048         * fold-const.c (split_tree): Don't assume a constant isn't splittable.
6049         (fold): Don't assume a constant isn't foldable.
6050         * tree.c (build): Set TREE_CONSTANT for an expression with no
6051         side-effects and constant operands.
6052         (build1): Likewise.
6053
6054 2001-02-10  Richard Henderson  <rth@redhat.com>
6055
6056         * jump.c (squeeze_notes): Revert 2000-05-12 change.
6057
6058 2001-02-10  Anthony Green  <green@redhat.com>
6059
6060         * cpp.texi (Standard Predefined): Add documentation for
6061         __OPTIMIZE_SIZE__.
6062
6063         * c-common.c (combine_strings): Improve warning message.
6064
6065 2001-02-10  Geoffrey Keating  <geoffk@redhat.com>
6066
6067         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for
6068         --oformat.
6069         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise.
6070
6071 Fri Feb  9 15:05:27 2001  Christopher Faylor <cgf@cygnus.com>
6072
6073         * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for
6074         CYGWIN_CROSS_DIR.
6075
6076 2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
6077
6078         * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set
6079         fp_mode attribute.
6080
6081 2001-02-09  Nick Clifton  <nickc@redhat.com>
6082
6083         * config/arm/arm.md: Change output contraint on post inc
6084         load/store multiple patterns to be a read/write contraint.
6085
6086 2001-02-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6087
6088         * gcc.c (cpp_options): Delete .d files on error.  Don't delete
6089         .o files when using the -M options.
6090
6091 2001-02-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6092             David Edelsohn  <edelsohn@gnu.org>
6093
6094         * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to
6095         handle DImode constants.  Use one TOC entry for SImode and smaller
6096         constants, aligned properly.
6097
6098 2001-02-08  Jason Merrill  <jason@redhat.com>
6099
6100         * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend
6101         about the SP adjustment for saving the static chain pointer.
6102         * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified
6103         offset when setting a temporary CFA register.
6104
6105 2001-02-08  Chandrakala Chavva  <cchavva@redhat.com>
6106
6107         * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*,
6108         powerpc-*-chorusos* .
6109         * config/rs6000/chorus.h : New file.
6110         * config/i386/chorus.h : New file.
6111         * config/sparc/chorus.h : New file.
6112         * config/sparc/t-chorus-elf : New file.
6113
6114 2001-02-08  David Edelsohn  <edelsohn@gnu.org>
6115
6116         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ...
6117         * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here.
6118         * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it.
6119         (__WCHAR_TYPE__): Correct macro name.
6120
6121 2001-02-08  Richard Henderson  <rth@redhat.com>
6122
6123         * config/i386/i386.c (ix86_frame_pointer_required): New.
6124         (ix86_setup_frame_addresses): New.
6125         (struct machine_funciton): Add accesses_prev_frame.
6126         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call
6127         ix86_frame_pointer_required.
6128         (SUBTARGET_FRAME_POINTER_REQUIRED): New.
6129         (SETUP_FRAME_ADDRESSES): New.
6130         * config/i386/i386-protos.h: Update.
6131         * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename
6132         from FRAME_POINTER_REQUIRED.
6133         * config/i386/svr3gas.h: Likewise.
6134         * config/i386/sysv3.h: Likewise.
6135         * config/i386/v3gas.h: Likewise.
6136
6137 2001-02-08  Richard Henderson  <rth@redhat.com>
6138
6139         * config/sparc/sparc.c (function_arg_record_value_3): Fix
6140         calculation of the number of integer registers required.
6141         (function_arg_record_value): Likewise.
6142
6143 2001-02-08  Jason Merrill  <jason@redhat.com>
6144
6145         * diagnostic.c (internal_error): Say "confused" after 1 error, not
6146         two.  Print file and line with "confused" message.
6147
6148         * dwarf2out.c (dwarf2out_line): Include filename in -dA output.
6149
6150 Thu Feb  8 11:21:28 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6151
6152         * rtlanal.c (remove_node_from_expr_list): Correctly update PREV.
6153
6154 2001-02-08  Bernd Schmidt  <bernds@redhat.com>
6155
6156         * final.c (cleanup_subreg_operands): The address of a MEM can
6157         contain SUBREGs.
6158
6159         * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p
6160         for asms, too.
6161
6162 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6163
6164         * gcc.texi (Incompatibilities): Update documentation of
6165         preprocessing numbers.
6166
6167 2001-02-07  Jakub Jelinek  <jakub@redhat.com>
6168
6169         * c-decl.c (finish_enum): Revert part of 2000-01-05 change.
6170
6171 2001-02-07  Mark Mitchell  <mark@codesourcery.com>
6172
6173         * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it.
6174
6175         * defaults.h (CPLUSPLUS_CPP_SPEC): New macro.
6176         * gcc.c (struct compiler): Add cpp_spec field.
6177         (input_file_compiler): New variable.
6178         (do_spec_1): Allow a particular compiler to handle `%C'
6179         specially.
6180         (main): Store the current compiler in input_file_compiler.
6181         * tm.texi (CPLUSPLUS_CPP_SPEC): Document.
6182
6183 2001-02-07  Zack Weinberg  <zack@wolery.stanford.edu>
6184
6185         * cpphash.h (struct spec_nodes): Add n_true and n_false.
6186         * cppinit.c (cpp_create_reader): Initialize them.
6187         (append_include_chain): cxx_aware arg might be unused.
6188         * cppexp.c (lex): In C++ mode, recognize 'true' and 'false'
6189         keywords and give them their phase 7 meaning.  Pedwarn about
6190         this unless '__bool_true_false_are_defined' is defined.
6191
6192 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6193
6194         * lcm.c (optimize_mode_switching): Emit mode_set before the
6195         JUMP_INSN of an abnormal edge.
6196
6197 2001-02-07  Bernd Schmidt  <bernds@redhat.com>
6198
6199         * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as
6200         a scheduling barrier at the end.
6201
6202         * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document.
6203
6204 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6205
6206         * config/sh/sh.md (reload_outsf): Removed.
6207         (movsf_ie): Introduce constraints for FPUL loads and stores.
6208         (reload_insf): Broaden the output constraint.
6209
6210         * config/elfos.h (INT_ASM_OP): Don't define it if it's already
6211         defined.
6212         * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
6213         ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.
6214
6215 2001-02-06  Chandrakala Chavva  <cchavva@redhat.com>
6216
6217         * final.c: Revert my previous changes.
6218         * output.h: Make profile_label_no extern.
6219         * config/rs6000/rs6000.c (output_profile_hook): Use standard functions
6220         for generating label.
6221
6222 2001-02-06  Laurynas Biveinis  <lauras@softhome.net>
6223
6224         * config/i386/djgpp.h: Add comments about standard paths.
6225         (MD_EXEC_PREFIX): Undefine before defining.
6226         (MD_STARTFILE_PREFIX): New.
6227
6228 2001-01-30  Bruce Korb  <bkorb@gnu.org>
6229
6230         fixinc/fixincl.c(process):  Emit error message only if appropriate :)
6231         (load_file): do not rely on load_file_data() to close file pointer
6232         fixinc/fixlib.c(load_file_data): do not close passed in file pointer
6233         fixinc/inclhack.def(irix_limits_const): add test_text
6234
6235 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6236
6237         * cppexp.c (parse_defined): Improve diagnostics for invalid
6238         syntax.
6239
6240 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6241
6242         * cppmacro.c (cpp_get_token): Avoid pasting after a builtin.
6243
6244 2001-02-06  Mark Mitchell  <mark@codesourcery.com>
6245
6246         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define.
6247         * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare.
6248         * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro.
6249         (rs6000_output_symbol_ref): New function.
6250         (output_toc): Use VTABLE_NAME_P.
6251
6252 Tue Feb  6 07:54:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6253
6254         * print-tree.c (print_node, case PARM_DECL):
6255         Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN.
6256
6257         * stor-layout.c (reference_types_internal): New variable.
6258         (internal_reference_types): New function.
6259         (layout_type, case REFERENCE_TYPE): Make Pmode if internal.
6260         * tree.h (internal_reference_types): New declaration.
6261
6262         * cse.c (find_best_addr): Fix typo in computing cost.
6263
6264 Mon Feb  5 21:56:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6265
6266         * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned
6267         and this is the sum of a pointer and a constant, we know the result
6268         did not overflow.
6269         (num_sign_bit_copies, case PLUS): Likewise.
6270         * explow.c (convert_memory_address): Remove opposite SUBREG.
6271         * function.c (instantiate_new_reg): New function (from common code).
6272         (instantiate_virtual_regs_1): Call it.
6273         For PLUS, handle if (plus (subreg (virt-reg) (const_int))
6274         if pointers sign- or zero-extend.
6275         * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND):
6276         If pointers extend unsigned, use inside of SUBREG.
6277         (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend.
6278
6279 2001-02-05  Benjamin Kosnik  <bkoz@redhat.com>
6280
6281         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target
6282         subdir of gcc_gxx_include_dir.
6283         (gcc_gxx_target_include_dir): Remove.
6284
6285 2001-02-05  Jeffrey Oldham  <oldham@codesourcery.com>
6286
6287         * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments.
6288         (dwarf2out_frame_debug_expr): Revise introductory comments to add
6289         a high-level description.
6290
6291 2001-02-05  Chandrakala Chavva  <cchavva@redhat.com>
6292
6293         * final.c: Move the declaration of profile_label_no to ...
6294         * output.h: ... here.
6295         * function.c (expand_function_start): Call PROFILE_HOOK.
6296         * config/rs6000/aix.h: Define PROFILE_HOOK.
6297         * config/rs6000/rs6000-protos.h: output_profile_hook new.
6298         * config/rs6000/rs6000.c (output_profile_hook): Define.
6299         (output_prolog): Do nothing for ABI_AIX as it is taken care by
6300         output_profile_hook.
6301         tm.texi : Explain new macro PROFILE_HOOK.
6302
6303 2001-02-06  Hans-Peter Nilsson  <hp@axis.com>
6304
6305         * extend.texi (Extended Asm): Do not say that semicolon is always
6306         a valid line-breaking character for GNU assemblers.  Use
6307         newline-tab as the most commonly supported syntax.  Use
6308         newline-tab rather than semicolon in multi-insn examples.
6309
6310 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6311
6312         * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias).
6313
6314 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6315             David Edelsohn  <edelsohn@gnu.org>
6316
6317         * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC
6318         code for AIX, even without flag_pic.
6319
6320 2001-02-05  Jakub Jelinek  <jakub@redhat.com>
6321
6322         * c-typeck.c (common_type): push and pop binding level around
6323         calling common_type on function parameters.
6324
6325 Mon Feb  5 14:30:37 2001  Christopher Faylor <cgf@cygnus.com>
6326
6327         * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter.
6328
6329 Mon Feb  5 11:23:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6330
6331         * config/mips/mips.c (override_options): Fix typo in last change.
6332         (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name.
6333         (mips_asm_file_end): Likewise; also pass more args to fatal_io_error.
6334
6335 2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
6336
6337         * invoke.texi (-fdump-class-layout): Document.
6338         (-fdump-translation-unit): Use `=' as filename separator.
6339
6340 2001-02-05  Mark Mitchell  <mark@codesourcery.com>
6341
6342         * Makefile.in (s-mlib): Don't build multilibs if
6343         --disable-multilib.
6344         (DRIVER_DEFINES): Adjust accordingly.
6345         (gcc.o): Likewise.
6346         (protoize.o): Likewise.
6347         (unprotoize.o): Likewise.
6348         * configure.in: Recognize --enable-multilib.
6349
6350 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
6351
6352         * Makefile.in (DRIVER_DEFINES): Fix quoting.
6353
6354         * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3.
6355         * configure.in: Remove --enable-libstdcxx_v3 support.
6356         * configure: Regenerated.
6357
6358 Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6359
6360         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
6361         Call abort instead of fatal.
6362         (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal.
6363         * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise.
6364         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise.
6365         (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise.
6366         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
6367         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise.
6368
6369         * diagnostic.h (set_internal_error_function): Renamed.
6370         * toplev.h (internal_error): Renamed from fatal.
6371         (pfatal_with_name): Deleted.
6372         (fatal_io_error): Now has printf-style arguments.
6373         * diagnostic.c (pfatal_with_name): Deleted.
6374         (fatal_io_error): Rework to have args in printf-style.
6375         (set_internal_error_function): Renamed from set_fatal_function.
6376         (internal_error): Renamed from fatal.
6377         (error_recursion, fancy_abort): Call internal_error instead of fatal.
6378         * dwarf2out.c (get_cfa_from_loc_descr): Likewise.
6379         * emit-rtl.c (gen_realpart, gen_imagpart): Likewise.
6380         * expr.c (check_max_integer_computation_mode, expand_expr): Likewise.
6381         * flow.c (verify_flow_info): Likewise.
6382         * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise.
6383         * config/mips/mips.c (save_restore_insns): Likewise.
6384
6385         * except.c (duplicate_eh_handlers): Call abort instead of fatal.
6386         * flow.c (verify_flow_info): Likewise.
6387         * config/arm/arm.c (thumb_load_double_from_address): Likewise.
6388         * config/avr/avr.c (pttreg_to_str, unique_section): Likewise.
6389         (avr_normalize_condition): Likewise.
6390         * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise.
6391         * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
6392         (limit_reload_class, double_reg_to_memory): Likewise.
6393         (print_operand_address, emit_1600_code_shift): Likewise.
6394         (gen_tst_reg, gen_compare_reg): Likewise.
6395         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise.
6396         * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare):
6397         Deleted.
6398         * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it.
6399
6400         * c-parse.in (methoddef): Call fatal_error instead of fatal.
6401         * objc/objc-act.c (build_ivar_chain): Likewise.
6402         * dwarfout.c (dwarfout_init): Call fatal_io_error instead of
6403         pfatal_with_name.
6404         * graph.c (clean_graph_dump_file): Likewise.
6405         * profile.c (init_branch_prob): Likewise.
6406         * objc/objc-act.c (objc_init): Likewise.
6407
6408         * config/arm/arm.c (arm_override_options): Make errors non-fatal.
6409         * config/avr/avr.c (avr_override_options): Likewise.
6410         * config/c4x/c4x.c (c4x_expand_prologue): Likewise.
6411         * config/dsp16xx/dsp16xx.c (function_prologue): Likewise.
6412         * config/h8300/h8300.c (h8300_init_once): Likewise.
6413         * config/mips/mips.c (override_options): Likewise.
6414         * config/i386/i386.c (override_options): Likewise, rework.
6415         * config/m68k/m68k.c (override_options): Likewise.
6416
6417         * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage
6418         instead of fatal.
6419         * config/mips/mips.c (print_operand): Likewise.
6420         * hash.c (hash_allocate): Don't check for failure returns from
6421         obstack functions that can't fail.
6422         (hash_table_init_n, hash_table_init): Likewise; also now return void.
6423         * hash.h (hash_table_init_n, hash_table_init): Now return void.
6424         * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call.
6425         (get_object_reference): Likewise.
6426
6427 2001-02-04  Nick Clifton  <nickc@redhat.com>
6428
6429         * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e,
6430         StrongARM1110, 10TDMI, and 1020T.
6431
6432 2001-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6433
6434         * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif.
6435
6436 2001-02-04  Alexandre Oliva  <aoliva@redhat.com>
6437
6438         * config/sh/sh.md (movdf load split): Pass register number to
6439         FP_OR_XD_REGISTER_P.
6440
6441 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
6442
6443         * cppinit.c (BC): New macro.
6444         (builtin_array): Add __GXX_WEAK__.
6445         * cpplib.h (builtin_type): Add BT_WEAK.
6446         * cppmacro.c (builtin_macro): Handle BT_WEAK.
6447         * defaults.h (SUPPORTS_ONE_ONLY): Define.
6448         * varasm.c (SUPPORTS_ONE_ONLY): Do not define.
6449
6450 2001-02-03  Jakub Jelinek  <jakub@redhat.com>
6451
6452         * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C.
6453
6454 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6455
6456         * cpphash.h: Rename _ALIGN POOL_ALIGN.
6457         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
6458
6459 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6460
6461         * cpphash.h: Rename ALIGN _ALIGN.
6462         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
6463
6464 Fri Feb  2 23:15:29 2001  Christopher Faylor <cgf@cygnus.com>
6465
6466         * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross
6467         compilation environment.
6468         * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow
6469         control over location of cygwin includes and libs.
6470
6471 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
6472
6473         * c4x.h (HARD_REGNO_CALL_PART_CLOBBERED): Fix typo.
6474
6475 2001-02-02  lars brinkhoff  <lars@nocrew.org>
6476
6477         * md.texi (Standard Names): remove reference to spur.md.
6478
6479 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
6480
6481         * c4x.h (IS_INT_CALL_SAVED_REG, IS_FLOAT_CALL_SAVED_REG): Define.
6482         (HARD_REGNO_CALL_PART_CLOBBERED): Use IS_FLOAT_CALL_SAVED_REG.
6483         (INITIAL_FRAME_POINTER_OFFSET, INITIAL_ELIMINATION_OFFSET): Likewise.
6484         * c4x.c (c4x_hard_regno_rename_ok): Use IS_XXX_CALL_SAVED_REG.
6485         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
6486
6487 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6488
6489         * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand,
6490         c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register
6491         number before reload.
6492         (c4x_adjust_cost): Return zero before reload.
6493         * c4x.md (load_immed_address+1, load_immed_address+2): Do not
6494         split before reload.
6495
6496 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6497
6498         * c4x.c (c4x_hard_regno_rename_ok): New.
6499         * c4x-protos.h (c4x_hard_regno_rename_ok): New.
6500         * c4x.h (HARD_REGNO_RENAME_OK): Define.
6501
6502 Fri Feb  2 20:03:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6503
6504         * diagnostic.h: Add missing "extern" in all declarations.
6505
6506 2001-02-02  Alex Samuel  <samuel@codesourcery.com>
6507
6508         * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically
6509         as for gcc_gxx_include_dir.
6510
6511 2001-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6512
6513         * cpp.texi, invoke.texi: Update -Wtraditional documentation.
6514
6515 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
6516
6517         * config/sh/sh.c (output_far_jump): Don't use braf on SH1.  Emit
6518         label before alignment to be used as the braf base address.
6519         * config/sh/sh.md (length): Use longer lengths for SH1 PIC far
6520         branches.
6521         (casesi_jump_2): Require at least TARGET_SH2.
6522
6523         * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent
6524         truncation to 32-bit doubles on -m3e and -m4-single-only.
6525
6526 2001-02-02  Mark Mitchell  <mark@codesourcery.com>
6527
6528         * gcc.c (init_gcc_specs): New function.  Make -shared-libgcc
6529         the default when building a shared object.
6530         (init_spec): Use it.
6531         * testsuite/lib/g++.exp: Include the directory where libgcc
6532         is located to the LD_LIBRARY_PATH list.
6533         * invoke.texi (-shared-libgcc): Document the cases in which
6534         GCC defaults to using the shared libgcc.
6535
6536 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
6537
6538         * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume
6539         unsigned is wide enough.
6540         (BITS_PER_SI): New.
6541         * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI.
6542         (si_to_float): Likewise.
6543         (float_to_si, float_to_usi): Use BITS_PER_SI.
6544
6545 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
6546
6547         * dwarf2out.c: Added explanation of abbreviations.
6548         (def_cfa_1): Added comments listing DWARF2 instructions.
6549         (cfa_temp_reg): Removed in favor of cfa_temp.
6550         (cfa_temp_value): Removed in favor of cfa_temp.
6551         (cfa_temp): New global variable.
6552         (dwarf2out_frame_debug_expr): Added extensive introductory
6553         comments explaining the function's transformations.  Revised to
6554         use cfa_temp.  Added some rtx checking.  Generalize IOR case.
6555         (dwarf2out_frame_debug): Revised to use cfa_temp.
6556         (output_aranges): Cast as "unsigned" to avoid warning.
6557         * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better
6558         explain which instructions must be marked.
6559
6560 2001-02-01  Richard Henderson  <rth@redhat.com>
6561
6562         * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
6563         new instruction.
6564
6565 2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
6566
6567         * config/sh/crt1.asm (main_k): Modified so that start calls
6568         ___setup_argv_and_call_main.
6569
6570 2001-02-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6571
6572         * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader.
6573         * cpplex.c (_cpp_lex_token): New token picks up the saved flags,
6574         and AVOID_LPASTE is cleared on meeting an unescaped newline.
6575         * cppmacro.c (builtin_macro): Set builtin flags here.
6576         (paste_all_tokens): Preserve AVOID_LPASTE on pasted token.
6577         (replace_args): Clarify intent.
6578         (cpp_get_token): Macro expansion tokens get the saved flags.
6579         Update.
6580         * cppmain.c (scan_buffer): Remove now-redundant print.printed
6581         check.
6582
6583 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
6584
6585         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of
6586         2001-Jan-29.
6587
6588 Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6589
6590         * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space
6591         returns Pmode pseudo, but we need ptr_mode.
6592         * explow.c (allocate_dynamic_stack_space): Use plus_constant.
6593         Remove bogus conversions; use HOST_WIDE_INT for size.
6594         Don't use TARGET if wrong mode.
6595
6596         * config/i386/i386.c (ix86_compute_frame_size): Allow
6597         stack_alignment_needed to be non-default even if size is zero.
6598
6599 2001-01-31  Alan Modra <alan@linuxcare.com.au>
6600
6601         * pa.c (hppa_init_pic_save): New function.
6602         * pa.h (hppa_init_pic_save): Declare.
6603         * pa.md (call, call_value, sibcall, sibcall_value): Use
6604         the above instead of duplicated code.
6605
6606         * pa.c (hppa_encode_label): Correct size of alloca buffer
6607         so we don't overrun it.  Correct leading `*' case.
6608         * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't
6609         need to handle `*@'.
6610         (FUNCTION_NAME_P): Likewise.
6611
6612 2001-01-31  Richard Henderson  <rth@redhat.com>
6613
6614         * config.gcc (alpha-osf5): Use float-i128.h.
6615
6616         * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define.
6617         * config/float-i32.h: Likewise.
6618         * config/float-i64.h: Likewise.
6619         * config/float-sh.h: Likewise.
6620         * config/float-sparc.h: Likewise.
6621
6622 2001-01-31  DJ Delorie  <dj@redhat.com>
6623
6624         * expmed.c (extract_bit_field): allow non-integral modes if we
6625         want to extract a whole register from itself.
6626
6627 2001-01-31  Jakub Jelinek  <jakub@redhat.com>
6628
6629         * c-typeck.c (set_init_index): If first is equal to last, assume as
6630         if it was not a range at all.
6631
6632 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
6633
6634         * config/fp-bit.c: Include tm.h.
6635         (float_to_si): Don't assume SImode is 32-bits wide.
6636         (float_to_usi): Likewise.
6637
6638 2001-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
6639
6640         * c-parse.in (structsp): Pedwarn when "enum foo" refers to an
6641         incomplete type.
6642         (typename): Call pending_xref_error after parsing typed_typespecs.
6643         * c-decl.c (lookup_tag): Give error immediately rather than
6644         leaving it pending if the tag of the wrong type is in the same
6645         binding level.
6646         (xref_tag): Don't pedwarn for forward declarations of enum types
6647         here.
6648         * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union
6649         and enum tags.
6650
6651 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
6652
6653         * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo.
6654
6655 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6656
6657         * cpplib.c (T_ELIF): Move to STDC89, not that it matters.
6658         (_cpp_handle_directive): Suggest not using #elif with -Wtraditional.
6659
6660 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6661
6662         * cpphash.h (struct cpp_reader): New saved_flags.
6663         * cppmacro.c (cpp_get_token): Use saved_flags to remember
6664         to avoid a paste after a pasted token.
6665
6666 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
6667
6668         * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.
6669         * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use
6670         Wtype_MIN instead of LONG_MIN.
6671
6672 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
6673
6674         * fixinc/fixincl.tpl: Add 2001 to copyright.  Change name of
6675         README file.
6676         * fixinc/fixincl.x: Regenerated.
6677         * fixinc/inclhack.def (irix_limits_const): New definition to
6678         convert "const" to "__const" in limits.h.
6679
6680 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
6681
6682         * fixinc/genfixes (AG): Fix "autogen4" thinko.
6683
6684 2001-01-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6685
6686         * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED
6687         when register dies in the insn.
6688
6689 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
6690
6691         * diagnostic.c (fatal): Fix word wrap.
6692
6693 2001-01-30  Alexandre Oliva  <aoliva@redhat.com>
6694
6695         * combine.c (try_combine): Fix SUBREG setting for
6696         HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD.
6697
6698 2001-01-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6699
6700         * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN
6701         comparison codes.
6702
6703 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
6704
6705         * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
6706         is not NULL.
6707         * toplev.c (decode_W_option): Update warn_larger_than
6708         unconditionally for each processed switch.
6709
6710 2001-01-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6711
6712         * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx
6713         to NULL_RTX.
6714         (hppa_expand_prologue): Delete code to save pic offset table register
6715         in the function prologue.
6716         * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment.
6717         * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset
6718         table register at the beginning of the function after the prologue.
6719
6720 2001-01-29  lars brinkhoff  <lars@nocrew.org>
6721
6722         * tm.texi (PUSH_ROUNDING): Remove duplicate lines.
6723
6724 2001-01-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6725             Jeff Law <law@redhat.com>
6726
6727         * pa.md (return): Revise comment for trivial return.
6728         (return_internal): Non-trivial return pattern for non-PIC code.
6729         (return_internal_pic): Non-trivial return pattern for PIC code.
6730         It uses the PIC register to ensure it is restored after
6731         function calls.
6732         (epilogue): Generate appropriate return for PIC and non-PIC code.
6733
6734 Mon Jan 29 23:53:14 2001  Christopher Faylor <cgf@cygnus.com>
6735
6736         * config/i386/cygwin.h: Fix -mno-cygwin search path for link.
6737
6738 2001-01-29  DJ Delorie  <dj@redhat.com>
6739
6740         * combine.c (if_then_else_cond): Pass the correct mode to
6741         operand_subword() for constants.
6742
6743 Mon Jan 29 20:38:19 2001  Christopher Faylor <cgf@cygnus.com>
6744
6745         * config/i386/cygwin.h: Add w32api to include search.  Search different
6746         directories in a cross-build environment.
6747
6748 2001-11-29  Tim Josling  <tej@melbpc.org.au>
6749
6750         * tree.h (TYPE_STUB_DECL): Add documentation.
6751
6752 2001-11-29  Laurynas Biveinis  <lauras@softhome.net>
6753
6754         * sdbout.c (sdbout_one_type): Skip types with indeterminate size.
6755         (sdbout_field_types): Likwise.  Fix use of host_integerp.
6756
6757 2001-01-29  Thomas Pfaff  <tpfaff@gmx.net>
6758
6759         * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in
6760         cygwin.h.
6761
6762 2001-01-29  Jeffrey Oldham  <oldham@codesourcery.com>
6763
6764         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition
6765         to use flag_gnu_linker.
6766
6767 2001-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6768
6769         * cpplib.c (T_BAD_DIRECTIVE): Remove.
6770         (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1.
6771
6772 2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
6773
6774         * tree.c, tree.h (build_parse_node): Remove; was identical to
6775         build_nt.
6776         * c-lang.c (start_cdtor), objc/objc-act.c
6777         (build_module_descriptor): Use build_nt instead of
6778         build_parse_node.
6779
6780 2001-01-29  Jakub Jelinek  <jakub@redhat.com>
6781
6782         * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI).
6783         (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does
6784         not have any upper bits set.
6785
6786 2001-01-29  Phil Edwards  <pme@sources.redhat.com>
6787
6788         * COPYING.LIB:  Update to LGPL 2.1 from the FSF.
6789
6790 2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6791
6792         * stmt.c (estimate_case_costs): Use integer_minus_one_node.
6793
6794         * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node.
6795
6796         * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE.
6797         (integer_minus_one_node): Define.
6798
6799 2001-01-28  Alexandre Oliva  <aoliva@redhat.com>
6800
6801         * Makefile.in (bootstrap2-lean): Fix typo.
6802
6803 2001-01-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6804
6805         * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash)
6806         : Don't set fe_value.
6807         * cpplib.h (AVOID_LPASTE): New flag.
6808         (struct cpp_hashnode): Remove fe_value.
6809         * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number.
6810         * cppmacro.c (builtin_macro): Don't set flags here.
6811         (replace_args): Set AVOID_LPASTE flag on first token of an
6812         argument, and the token following it.
6813         (cpp_get_token): Set AVOID_LPASTE flag on first token of a
6814         macro expansion, and on the token following it.  Do it for
6815         builtins too.
6816         * cppmain.c (scan_buffer): Avoid pasting only flagged tokens.
6817
6818 2001-01-27  Richard Henderson  <rth@redhat.com>
6819
6820         * config/alpha/t-ieee: Remove multilibbing.
6821         (TARGET_LIBGCC2_CFLAGS): Add -mieee.
6822
6823 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6824
6825         * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.
6826
6827         * Makefile.in: Remove all dependencies on defaults.h.
6828         * builtins.c: Don't include defaults.h.
6829         * c-common.c: Likewise.
6830         * c-decl.c: Likewise.
6831         * c-pragma.c: Likewise.
6832         * c-typeck.c: Likewise.
6833         * combine.c: Likewise.
6834         * i386.c: Likewise.
6835         * frame-ia64.c: Likewise.
6836         * cppexp.c: Likewise.
6837         * crtstuff.c: Likewise.
6838         * dbxout.c: Likewise.
6839         * dwarf2out.c: Likewise.
6840         * dwarfout.c: Likewise.
6841         * emit-rtl.c: Likewise.
6842         * except.c: Likewise.
6843         * expr.c: Likewise.
6844         * final.c: Likewise.
6845         * frame-dwarf2.c: Likewise.
6846         * libgcc2.c: Likewise.
6847         * optabs.c: Likewise.
6848         * profile.c: Likewise.
6849         * sdbout.c: Likewise.
6850         * toplev.c: Likewise.
6851         * tradcif.y: Likewise.
6852         * tree.c: Likewise.
6853         * varasm.c: Likewise.
6854
6855 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6856
6857         * builtins.c (expand_builtin_fputs): Use size_one_node when
6858         transforming into fwrite.
6859
6860 2001-01-27  Joseph S. Myers  <jsm28@cam.ac.uk>
6861
6862         * extend.texi (Attribute Syntax): New section.
6863
6864 2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
6865
6866         * fixproto: Correctly install synthesised unistd.h and stdlib.h when
6867         they didn't need fixing.
6868
6869 2001-01-27  Janis Johnson <janis@us.ibm.com>
6870
6871         * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h
6872         if appropriate.
6873         * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and
6874         to remove macro definitions that are duplicated from elfos.h.
6875
6876 2001-01-27  Richard Henderson  <rth@redhat.com>
6877
6878         * config/i386/sco5gas.h: Move ...
6879         * config/usegas.h: ... here.
6880         * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update.
6881
6882 2001-01-27  Jakub Jelinek  <jakub@redhat.com>
6883
6884         * c-typeck.c (struct constructor_stack): Add range_stack member.
6885         (really_start_incremental_init): Clear it.
6886         (push_init_level): Save constructor_range_stack and clear it if
6887         pushing explicit braces.
6888         (pop_init_level): abort if constructor_range_stack is non-zero at
6889         explicit closing brace.  Restore saved constructor_range_stack if
6890         not implicit.
6891
6892 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
6893
6894         * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded
6895         into register was forced into memory.
6896
6897 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
6898
6899         * Makefile.in: Remove uses of + before $(MAKE).
6900
6901 2001-01-26  Richard Henderson  <rth@redhat.com>
6902
6903         * stmt.c (cost_table): Remove.
6904         (COST_TABLE, cost_table_initialized): New.
6905         (estimate_case_costs): Use the later instead of the former.
6906         (balance_case_nodes): Likewise.
6907
6908 2001-01-26  Richard Henderson  <rth@redhat.com>
6909
6910         * alias.c (objects_must_conflict_p): Read-only slots may not
6911         conflict despite having the same type.
6912
6913 2001-01-27  Michael Hayes  <mhayes@redhat.com>
6914
6915         * loop.c (loop_giv_reduce_benefit): Copy mode size into
6916         int variable.
6917         (check_ext_dependant_givs): Initialise u_start_val and
6918         u_end_val.
6919         (load_mems): Make last_max_reg unsigned.
6920         (try_swap_copy_prop): Use INSN_P and initialise set.
6921
6922 Fri Jan 26 23:22:58 2001  Denis Chertykov  <denisc@overta.ru>
6923
6924         * README.AVR : Removed.
6925
6926 Fri Jan 26 11:37:26 2001  Jeffrey A Law  (law@cygnus.com)
6927
6928         * pa-64.h (text_section): Remove declaration.
6929
6930         * pa.md (return_internal): Remove mode on PIC register use.
6931
6932 2001-01-25  lars brinkhoff  <lars@nocrew.org>
6933
6934         * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN,
6935         ASM_CLOSE_PAREN): fix typos.
6936
6937 2001-01-25  Mark Mitchell  <mark@codesourcery.com>
6938
6939         * acconfig.h: Define `const' to the empty string if neither
6940         __STDC__ nor __cplusplus is defined.
6941         * config.in: Regenerated.
6942
6943 2001-01-25  David Edelsohn  <edelsohn@gnu.org>
6944
6945         * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h.
6946         * collect2.c (main): Delete importf.  Add ".obj" file extension.
6947         (GCC_CHECK_HDR): Handle AIX V5 new magic number.
6948         (aix_std_libs): Add additional AIX libraries to skip.
6949         * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number.
6950         * config/rs6000/aix51.h: New file.
6951
6952 2001-01-25  Michael Hayes  <mhayes@redhat.com>
6953
6954         * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New.
6955         (loop_insn_emit_before): No longer static.
6956         (move_movables): Replace emit_insn_after with loop_insn_emit_after.
6957         (loop_givs_rescan, load_mems): Likewise.
6958         (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before.
6959         (maybe_eliminate_biv_1):
6960         (move_movables): Replace emit_call_insn_before with
6961         loop_call_insn_hoist.
6962         * loop.h (loop_insn_emit_before): Add.
6963         * unroll.c (copy_loop_body): Replace emit_insn_before with
6964         loop_insn_emit_before.
6965
6966 2001-01-25  Neil Booth  <neil@daikokuya.demon.co.uk>
6967
6968         * diagnostic.c (fatal): Request preprocessed source.
6969
6970 Thu Jan 25 02:01:16 2001  J"orn Rennecke <amylaar@redhat.com>
6971
6972         * c-decl.c (duplicate_decls): If different_binding_level is nonzero,
6973         olddecl has argument types and newdecl has none, use the argument
6974         types from olddecl.
6975
6976 2001-01-24  Ulrich Drepper  <drepper@redhat.com>
6977
6978         * dwarf2out.c (prefix_of): New function.  Determine longest common
6979         prefix of the two arguments.  The units are whole path components.
6980         (output_file_names): When adding a new directory find the one entry
6981         with the longest common prefix already in the list.  Artificially
6982         generate entry if there is none for this prefix.
6983         Fix test to check whether the zeroth directory entry is used.
6984
6985 Wed Jan 24 23:51:55 2001  J"orn Rennecke <amylaar@redhat.com>
6986
6987         * reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
6988         Changed all callers.  Take it into account when deciding if a
6989         previously loaded value matches.
6990
6991 2001-01-24  Richard Henderson  <rth@redhat.com>
6992
6993         * reload.c (find_reloads_subreg_address): Fail the substitution
6994         if the resulting address is insufficiently aligned.
6995
6996 2001-01-24  DJ Delorie  <dj@redhat.com>
6997
6998         * combine.c (combine_simplify_rtx): If the modes are all VOIDmode,
6999         check the original operand's mode also.
7000         * simplify-rtx.c (simplify_ternary_operation): Ditto.
7001
7002 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7003
7004         * c-parse.in (cast_expr): Move compound literals from here ...
7005         (primary): ... to here.  Use standard terminology "compound
7006         literal" instead of "constructor expression".
7007
7008 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7009
7010         * gcc.1, cpp.1: Regenerate.
7011
7012 2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
7013
7014         * calls.c (emit_library_call_value_1): Memory slot for
7015         pass-by-reference argument should have the mode of the argument,
7016         not of the pointer to it.
7017
7018 2001-01-24  Tom Tromey  <tromey@redhat.com>
7019
7020         * gcc.texi (G++ and GCC): Mention gcj manual.
7021         (Standards): Link to section of manual mentioning gcj/Java
7022         compatibility.
7023
7024 2001-01-24  Jakub Jelinek  <jakub@redhat.com>
7025
7026         * cppfiles.c (_cpp_read_file): Add to dependencies if requested.
7027         * cppinit.c (cpp_start_read): Remove deps_add_dep call.
7028         * tradcpp.c (main): Add -imacros or -include'd dependencies
7029         for -M*.
7030         * cpp.texi (-M, -MM): Document -M -include behaviour.
7031
7032 2001-01-24  Roger Collins <roger@ProProject.com>
7033
7034         * config/i386/xm-i386.h: Make __i386__ a boolean macro.
7035
7036 2001-01-24  Will Cohen  <wcohen@redhat.com>
7037
7038         * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account
7039         whether registers are 32 bits or 64 bits in size.
7040
7041 2001-01-24  Ben Elliston  <bje@redhat.com>
7042
7043         * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg.
7044
7045 2001-01-24  Richard Henderson  <rth@redhat.com>
7046
7047         * config/alpha/alpha.md (builtin_longjmp_internal): New.
7048         (builtin_longjmp): Use it instead of emit_indirect_jump.
7049
7050 2001-01-23  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7051
7052         * bb-reorder.c (make_reorder_chain_1): Handle case where
7053         jump edge goes to the same block as the fallthru edge.
7054
7055 2001-01-23  Jim Wilson  <wilson@redhat.com>
7056
7057         * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
7058         * frame.h (__ia64_personality_v1): Add prototype.
7059         * libgcc2.c (ia64_throw_helper): Change personality declaration to
7060         prototype form.  Add void * cast to first argument to personality
7061         call.
7062         * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs.
7063         (asctoe113): Likewise.
7064         * config/ia64/frame-ia64.c: Include eh-common.h.
7065         * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add
7066         prototypes.
7067         * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED
7068         to dump parameter.
7069         (itanium_split_issue): Add prototype.
7070         (gen_nop_type): Ifdef out.
7071         (find_best_packet): Initialize best_packet.
7072         (ia64_encode_section_info): New local string.  Use for ggc_alloc_string
7073         result.
7074         * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0.
7075         * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start.
7076         (flushrs): Add explicit stop bit at end.
7077         * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change
7078         trailing \ to >.
7079
7080 2001-01-23  Chris Demetriou  <cgd@broadcom.com>
7081
7082         * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
7083         of EH symbols.
7084         * libgcc2.c (__terminate_func): Make variable static.
7085         (__terminate_set_func): New function to set __terminate_func.
7086         * libgcc2.h (__terminate_func_ptr): New typedef.
7087         (__terminate_set_func): New function.
7088
7089 2001-01-23  Richard Henderson  <rth@redhat.com>
7090
7091         * flow.c (init_propagate_block_info): Don't consider unchanging
7092         memories for dead frame store elimination.
7093
7094 2001-01-23  Richard Henderson  <rth@redhat.com>
7095
7096         * varasm.c (UNIQUE_SECTION): Move default implementation ...
7097         * defaults.h: ... here.
7098
7099 2001-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7100
7101         * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define.
7102
7103 2001-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7104
7105         * c-lex.c (lex_charconst): Fix typo: s/p/str.
7106
7107 2001-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7108
7109         * rs6000.h (rs6000_return_addr): Move prototype from here...
7110         * rs6000-protos.h (rs6000_return_addr): ...to here.
7111         (rs6000_init_expanders): Delete prototype.
7112
7113 2001-01-23  Nick Clifton  <nickc@redhat.com>
7114
7115         * invoke.texi: Replace , with \, inside @gccoptlist macros.
7116         (Spec Files): Document %B and %j and %. and %v3 and %M and
7117         %{S*&T} spec switches.
7118
7119 2001-01-24  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7120
7121         * c4x.c (c4x_r11_set_p): Calculate rtx code correctly.
7122
7123 2001-01-23  Chris Demetriou  <cgd@sibyte.com>
7124             Neil Booth  <neil@daikokuya.demon.co.uk>
7125
7126         * cpperror.c: Merge handlers of PEDWARN and WARNING.
7127         Have -Werror make pedantic warnings errors, like the
7128         rest of GCC.
7129
7130 2001-01-23  Phil Edwards  <pme@sources.redhat.com>
7131
7132         * c-tree.texi (IDENTIFIER_LENGTH):  Fix typo.
7133
7134 2001-01-23  Jakub Jelinek  <jakub@redhat.com>
7135
7136         * integrate.h (struct inline_remap): Add compare_src, compare_mode.
7137         * integrate.c (expand_inline_function): Initialize them.
7138         (subst_constants): If changing COMPARE so that both its arguments
7139         will be VOIDmode and the comparison mode will be lost, note
7140         compare_mode.  Use the recorded compare_mode to optimize
7141         IF_THEN_ELSE.
7142
7143 2001-01-23  Jason Merrill  <jason@redhat.com>
7144
7145         * dwarf2out.c (new_die): Use xcalloc.
7146         (output_die): Abort rather than emit a local reference to offset 0.
7147
7148 2001-01-17  Andrew Haley  <aph@redhat.com>
7149
7150         * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy
7151         of a saved register; return NULL instead.
7152         (copy_reg): Take a pointer to a source register rather than a
7153         frame_state.
7154         (next_stack_level): Remember the address in the stack frame of all
7155         saved registers.
7156         Use the saved register pointer array as the source of the CFA.
7157         (throw_helper): Rewrite.  Unwind once rather than twice and keep
7158         track of saved registers as we go.
7159
7160 2001-01-23  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7161
7162         * c4x-protos.h (c4x_legitimize_reload_address): Remove.
7163         * c4x.c (c4x_legitimize_reload_address): Remove.
7164         * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct
7165         reload address for ldp(k) insn.
7166
7167 Mon Jan 22 20:53:47 2001  Jeffrey A Law  (law@cygnus.com)
7168
7169         * pa.md (return_internal): Add a USE of the PIC register to ensure
7170         it is restored after each call.
7171         (return expander): Corresponding changes.
7172
7173 2001-01-22  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7174
7175         * rs6000.h (INIT_EXPANDERS): Delete.
7176         (RETURN_ADDR_RTX): Call rs6000_return_addr().
7177         * rs6000.c (rs6000_override_options): Call *_machine_status from
7178         here...
7179         (rs6000_init_expanders): ...instead of here. Delete.
7180         (rs6000_mark_machine_status): New function.
7181         (rs6000_init_machine_status): Use xcalloc.
7182         (rs6000_return_addr): Generate RTX for the return address.
7183         (rs6000_ra_ever_killed): New, check if LR was ever destroyed.
7184         (rs6000_stack_info): Use it.
7185
7186 2001-01-22  Thomas Pfaff  <tpfaff@gmx.net>
7187
7188         * gthr-win32.h: Include errno.h to get a declaration for
7189         EINVAL and _mingw.h if the target is mingw32.
7190
7191 2001-01-22  Andres Felipe Vargas <avargas@teletulua.com.co>
7192
7193         * cpp.texi: Correct typos.
7194
7195 Mon Jan 22 13:59:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7196
7197         * explow.c (probe_stack_range): Ensure value passed to
7198         stack_check_libfunc is ptr_mode, not Pmode.
7199
7200 Mon Jan 22 16:53:06 2001  J"orn Rennecke <amylaar@redhat.com>
7201
7202         * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND
7203         case, don't use operand_subword to calculate a SUBREG that is
7204         wider than a word.
7205
7206         * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE.
7207
7208 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7209
7210         * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions.
7211         (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is
7212         valid.  If not replace it by equivalent insns.
7213
7214 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7215
7216         * c4x.c (c4x_check_legit_addr): Only check CONST.  Not if CONST
7217         contains SYMBOL_REF, LABEL_REF and CONST_INT.
7218         (c4x_U_constraint, symbolic_address_operand): Likewise.
7219         (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in
7220         memory.
7221         (c4x_r11_set_p, c4x_check_laj_p): New functions.
7222         * c4x-protos.h (c4x_check_laj_p): Add prototype.
7223         * c4x.md (in_annul_slot_3): Do not allow auto-increment in last
7224         anulling slot because of silicon bug.
7225         (laj, lajv): Call c4x_check_laj_p to check for silicon bug.
7226
7227 2001-01-22  Alan Modra <alan@linuxcare.com.au>
7228
7229         * cppexp.c (parse_charconst):  Change `mask' type to agree
7230         with parse_escape.
7231
7232 2001-01-21  Richard Henderson  <rth@redhat.com>
7233
7234         * config/i386/i386.c (ix86_asm_file_end): Disable putting
7235         pic_label_name in a linkonce section.
7236
7237 2001-01-17  Philipp Thomas  <pthomas@suse.de>
7238
7239         * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was
7240         found in libintl.
7241         * configure: Regenerate.
7242
7243 Sun Jan 21 02:38:56 2001  J"orn Rennecke <amylaar@redhat.com>
7244
7245         * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard
7246         uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks.
7247
7248 Sun Jan 21 09:44:17 2001  Denis Chertykov  <denisc@overta.ru>
7249
7250         * config/avr/avr.c (ret_cond_branch): New argument (reverse) added.
7251         If REVERSE nonzero then condition code in X must be reversed.
7252         (encode_section_info): Optimise if/else.
7253         (avr_function_value): Fix formatting.
7254
7255         * config/avr/avr.md (branch): Call to ret_cond_branch changed.
7256         (difficult_branch): Likewise.
7257         (rvbranch): Likewise.
7258         (difficult_rvbranch): Likewise.
7259
7260         * config/avr/avr-protos.h (ret_cond_branch): Prototype changed.
7261
7262         * config/avr/libgcc.S: Fix comment.
7263
7264 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
7265
7266         * sdbout.c (PUT_SDB_DEF): Fix after last bogus change.
7267
7268 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
7269
7270         * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting.
7271
7272 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
7273
7274         * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro.
7275         * configure.in (gcc_AC_FUNC_STRSTR): Add invokation.
7276         * configure, config.in: Regenerate.
7277         * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables.
7278         (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling.
7279         (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules.
7280         (doprint.o): New rule.
7281
7282 2001-01-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7283
7284         * c-typeck.c (digest_init): Handle boolean types as scalars.
7285
7286 Sat Jan 20 12:46:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7287
7288         * stmt.c (expand_return): Don't return anything if size is zero.
7289         Delete redundant assignment to BYTES.
7290         * expr.c (move_block_from_reg): Do nothing if NREGS is zero.
7291
7292 2001-01-20  Marek Michalkiewicz  <marekm@linux.org.pl>
7293
7294         * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was
7295         the same as the default library function names.
7296         * config/avr/avr.md: Document special characters after '%'.
7297         (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves,
7298         knowing which of the call-used registers are really clobbered.
7299         (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4):
7300         New.  Both quotient and remainder from one libgcc.S call.
7301         * config/avr/libgcc.S: Optimize mul/divmod for the new insns above,
7302         clobber as few registers as possible.
7303         * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes.
7304
7305 2001-01-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7306
7307         * cppmacro.c (funlike_invocation_p): Don't move back up to the
7308         context of the top of the stack.
7309
7310 2001-01-20  Jakub Jelinek  <jakub@redhat.com>
7311
7312         * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling...
7313         (fixup_var_refs_insns): ...here.
7314
7315 2001-01-20  Zack Weinberg  <zack@wolery.stanford.edu>
7316
7317         * function.c (fixup_var_refs_insns): Break up into
7318         fixup_var_refs_insn [body of loop], fixup_var_refs_insns
7319         [loop over entire insn list], and fixup_var_refs_insns_with_hash
7320         [loop over hash table entries].
7321         (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or
7322         fixup_var_refs_insns_with_hash, to match above changes.
7323
7324 2001-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7325
7326         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable.
7327         (libgcc.a): Likewise.
7328         (stmp-multilib): Likewise.
7329         (STAGE2_FLAGS_TO_PASS): Likewise.
7330
7331 2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
7332
7333         * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as
7334         temporary if no_new_pseudos.
7335
7336 2001-01-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7337
7338         * cppinternals.texi: Update.
7339
7340 2001-01-19  Richard Earnshaw  <rearnsha@arm.com>
7341
7342         * arm.c (arm_init_builtins): Re-enable builtins.
7343
7344 Fri Jan 19 13:02:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7345
7346         * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility.
7347         * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow
7348         element to be null, and always expect an EXPR_LIST.
7349         * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise.
7350         * sched-deps.c (sched_analyze_1): Likewise.
7351         * sched-rgn.c (check_live_1, update_live_1): Likewise.
7352
7353         * regclass.c (max_set_parallel): New variable.
7354         (reg_scan): Take it into account in computation of max_parallel.
7355         (reg_scan_mark_refs, case SET): Compute it.
7356
7357         * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
7358         args are REG.
7359         * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
7360         * function.c (assign_parms): Use INTVAL for a CONST_INT.
7361
7362 2001-01-19  Jason Merrill  <jason@redhat.com>
7363
7364         * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
7365         for the abstract instance of an inline function.
7366
7367 Fri Jan 19 14:31:35 2001  Alexandre Oliva  <aoliva@redhat.com>
7368                           J"orn Rennecke <amylaar@redhat.com>
7369
7370         * reload1.c (move2add_note_store): Treat all registers directly or
7371         indirectly derived from a base register as members of the same set
7372         of values.
7373         (reload_cse_move2add): Adjust accordingly.  Take mode and offset
7374         of base register into account.
7375
7376 Fri Jan 19 09:18:42 2001  J"orn Rennecke <amylaar@redhat.com>
7377
7378         * alias.c (find_base_value): Recognize TRUNCATE.
7379         (record_set): In PLUS case, invalidate if other summand is also a
7380         base value.
7381
7382 Thu Jan 18 06:43:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7383
7384         * flow.c (mark_set_1, case PARALLEL): New case; rework to allow
7385         entry to be EXPR_LIST.
7386         * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to
7387         be an EXPR_LIST (but not null, which other code doesn't allow).
7388         (note_stores): Properly handle PARALLEL in SET.
7389         Recursively call for top-level PARALLEL.
7390         * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET.
7391         * sched-rgn.c (check_live_1, update_live_1): Likewise.
7392
7393         * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h.
7394
7395 2001-01-18  Neil Booth  <neil@daikokuya.demon.co.uk>
7396
7397         * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping,
7398         not pfile->skipping (== 0).
7399
7400 2001-01-17  Nick Clifton  <nickc@redhat.com>
7401
7402         * config/rs6000/rs6000.c: Add prototypes for {init|free}_
7403         machine_status.
7404
7405 2001-01-17  Jim Wilson  <wilson@redhat.com>
7406
7407         * invoke.texi (IA-64 options): Improve.
7408
7409 2001-01-17  Tom Tromey  <tromey@redhat.com>
7410
7411         * invoke.texi (Optimize Options): Use `{}' to around @samp
7412         argument.
7413
7414 2001-01-17  Aldy Hernandez  <aldyh@redhat.com>
7415
7416         * invoke.texi (-fno-guess-branch-probability): New option.
7417
7418 Wed Jan 17 13:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7419
7420         * combine.c (try_combine): Don't set i3_subst_into_i2 for
7421         case of making new double-word constant.
7422         Revert last change: instead just test i3_subst_into_i2.
7423
7424 2001-01-17  Jakub Jelinek  <jakub@redhat.com>
7425
7426         * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation.
7427         Use q constraints instead of r.
7428
7429 Tue Jan 16 22:23:04 2001  Alan Modra (alan@linuxcare.com.au)
7430
7431         * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove.
7432         (machine_function): Define.
7433         (PIC_OFFSET_TABLE_SAVE_RTX) : Define.
7434         * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status,
7435         pa_free_machine_status): New functions.
7436         (override_options): Set {init,mark,free}_machine_status to above.
7437         (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of
7438         PIC_OFFSET_TABLE_REGNUM_SAVED.
7439         * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of
7440         PIC_OFFSET_TABLE_REGNUM_SAVED throughout.
7441         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove
7442         references to PIC_OFFSET_TABLE_REGNUM_SAVED.
7443         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
7444
7445 2001-01-15  DJ Delorie  <dj@redhat.com>
7446
7447         * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing.
7448         (cpp.1): Ditto.
7449         (gcc.1): Ditto.
7450
7451 Tue Jan 16 17:20:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7452
7453         * flow.c (propagate_on_insn): Make trying to delete a prologue
7454         or epilogue insn an ICE, not a warning.  Allow doing this if
7455         the current function returns with stack pointer depressed.
7456
7457         * combine.c (try_combine): If i3_subst_into_i2, properly check for
7458         I3 having more than one SET.
7459
7460 2001-01-16  Jim Wilson  <wilson@redhat.com>
7461
7462         * invoke.texi: Document IA-64 options.
7463
7464         * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
7465         (fixup_errata): Delete TARGET_A_STEP use.
7466         * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
7467         (TARGET_SWITCHES): Delete -ma-step option.
7468         * config/ia64/ia64.md (all FP patterns): Delete %B0.
7469         (movqicc_astep, movqi_internal_astep, movhicc_astep,
7470         movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
7471         movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
7472         movdfcc_astep, movdf_internal_astep, movtfcc_astep,
7473         movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
7474         Delete.
7475         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
7476         movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
7477         cmovsi_internal): Delete ! TARGET_A_STEP check.
7478
7479 2001-01-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7480
7481         * gcc.texi (Bug Lists): Do not mention newsgroups nor the
7482         possibility to report bugs via postal mail. Change a URL and
7483         merge in a nearly duplicate statement...
7484         (Bug Reporting): ...from here.
7485         (Service): Refer to the Bug Reporting section instead of
7486         duplicating an URL.
7487         (Contributing): Remove trivial explanations concerning snapshots.
7488
7489 2001-01-16  Alan Modra <alan@linuxcare.com.au>
7490
7491         * cppmain.c (general_init): Don't use ANSI prototype.
7492
7493 2001-01-16  Tom Tromey  <tromey@redhat.com>
7494
7495         * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT.
7496
7497 2001-01-16  Richard Henderson  <rth@redhat.com>
7498
7499         * config/i386/i386.h: Fix comment typo.
7500         * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/
7501         (ashr+compare patterns): Match CCGOCmode not CCNOmode.
7502
7503 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
7504
7505         * gcc.c:  Revert previous -fsyntax-only-related change; move
7506         to cp/g++spec.c.
7507
7508 2001-01-16  Jakub Jelinek  <jakub@redhat.com>
7509
7510         * config/i386/i386.c (fcmov_comparison_operator): Only initialize
7511         inmode after checking GET_CODE (op).
7512
7513 2001-01-16  Richard Henderson  <rth@redhat.com>
7514
7515         * flow.c (struct propagate_block_info): Add mem_set_list_len.
7516         (MAX_MEM_SET_LIST_LEN): New.
7517         (propagate_one_insn): Update mem_set_list_len.
7518         (invalidate_mems_from_autoinc): Likewise.
7519         (invalidate_mems_from_set): Likewise.
7520         (mark_used_regs): Likewise.
7521         (init_propagate_block_info): Likewise.  Stop collecting memories
7522         when we reach MAX_MEM_SET_LIST_LEN.
7523         (mark_set_1): Likewise.
7524
7525 2001-01-16  Richard Henderson  <rth@redhat.com>
7526
7527         * unroll.c (precondition_loop_p): Fail if no iteration
7528         variable found.
7529
7530 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
7531
7532         * gcc.c:  When -fsyntax-only is given, do not complain about
7533         unused libraries.
7534
7535 2001-01-15  Richard Henderson  <rth@redhat.com>
7536
7537         * config/i386/i386.c (asm_output_function_prefix): Remove.
7538         (ix86_asm_file_end): New.
7539         (load_pic_register): Generate pic_label_name into a
7540         staticly allocated buffer.
7541         * config/i386/i386-protos.h: Update.
7542         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove.
7543         (ASM_FILE_END): New.
7544         * config/i386/i386afe.h: New file.
7545         * config.gcc (i?86-*-elf) [tm_file]: Use it.
7546         (i?86-*-{freebsd,linux*,moss*}): Likewise.
7547         * config/elfos.h (ASM_FILE_END): Undef before redefinition.
7548         * config/i386/cygwin.h (ASM_FILE_END): Likewise.
7549         * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end.
7550         * config/i386/sco5.h (ASM_FILE_END): Likewise.
7551         * config/i386/winnt.c (i386_pe_asm_file_end): Likewise.
7552
7553 2001-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
7554
7555         * Makefile.in (install-man): Remove explicit dependency on
7556         $(srcdir)/gcc.1.
7557
7558         * configure.in, configure: Revert previous patch requiring perl
7559         5.6.0.
7560
7561 2001-01-12  Aldy Hernandez  <aldyh@redhat.com>
7562
7563         * toplev.c (flag_guess_branch_prob): New.
7564         (f_options): Add guess-branch-probability option.
7565         (rest_of_decl_compilation): Only estimate branch probability if
7566         flag set.
7567         (main): set flag_guess_branch_prob.
7568
7569         * flags.h (flag_guess_branch_prob): New.
7570
7571 2001-01-15  DJ Delorie  <dj@redhat.com>
7572
7573         * gcc.texi (Makefile): Add documentation for Makefile targets.
7574
7575 2001-01-15  Philip Blundell  <philb@gnu.org>
7576
7577         * config/arm/arm.c (arm_finalize_pic): New arg "prologue".
7578         (is_pic): Delete.
7579         * config/arm/arm-protos.h (arm_finalize_pic): Update prototype.
7580         (is_pic): Delete declaration.
7581         * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic.
7582         (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address.
7583         * config/arm/arm.md (builtin_setjmp_receiver): New.
7584
7585 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
7586
7587         * arm.c (use_return_insn): Don't try to determine the function type
7588         until after reload has completed.
7589         (arm_output_epilogue): Don't adjust the sp value recovered from the
7590         stack.
7591         (emit_multi_reg_push): Don't record dwarf information for the pc.
7592         * arm.md (eh_epilogue): The function type may have changed, so it
7593         needs to be recalculated.
7594         * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete.  Can now use dwarf2
7595         unwind tables on arm/netbsd.
7596
7597 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
7598
7599         * arm.md (cbranchsi4): Correct calculation of branch ranges.
7600         (negated_cbranchsi4): Likewise.
7601
7602 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
7603
7604         * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define.
7605         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
7606         (ASM_SPEC): Call subtarget_extra_asm_spec.  Don't
7607         pass -mapcs-* options to assembler.
7608         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define.
7609         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
7610         (ASM_SPEC): Call subtarget_extra_asm_spec.
7611
7612 2001-01-15  Andreas Jaeger  <aj@suse.de>
7613
7614         * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove
7615         warnings.
7616         (ix86_expand_builtin): Likewise.
7617
7618         * gencodes.c (output_predicate_decls): Make i size_t to avoid
7619         warning about comparison between signed and unsigned.
7620
7621 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
7622
7623         * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs.
7624
7625 2001-01-14  Ralf Baechle <ralf@gnu.org>
7626
7627         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change
7628         SUBTARGET_CPP_SPEC apropriatly.
7629
7630 2001-01-12  Mark Mitchell  <mark@codesourcery.com>
7631
7632         * varasm.c (make_decl_rtl): Fix typo in last change.
7633
7634 2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
7635
7636         * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the
7637         linker supports the init_priority C++ attribute.
7638         * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro.
7639         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix
7640         linker does not support init_priority C++ attribute.
7641
7642 Sun Jan 14 22:31:30 2001  J"orn Rennecke <amylaar@redhat.com>
7643
7644         * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs.
7645
7646 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7647
7648         * c-parse.in (finish_parse): Add comment about cpp_destroy.
7649         * cp/lex.c (finish_parse): Similarly.
7650         * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
7651         Return the number of errors encountered.
7652         * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
7653         * cppmain.c (main): Don't call cpp_destroy.
7654
7655 2001-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
7656
7657         * configure.in: Require at least perl 5.6.0 to regenerate
7658         manpages.
7659         * configure: Regenerate.
7660
7661 2001-01-14  Richard Henderson  <rth@redhat.com>
7662
7663         * genrecog.c (DT_veclen_ge): New.
7664         (add_to_sequence) [MATCH_PARALLEL]: Generate one.
7665         (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge.
7666         (nodes_identical_1): Handle DT_veclen_ge.
7667         (write_cond, debug_decision_2): Likewise.
7668
7669 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
7670
7671         * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete.  Replace
7672         with ...
7673         (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New.
7674
7675 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7676
7677         * cppmain.c (do_preprocessing): New function; most of the old
7678         main.
7679         (main): Call it to do most of the work.
7680         (cb): Move from global scope to set_callbacks ().
7681         (setup_callbacks): Get the callback pointer.
7682         (general_init, printer_init): Clean up code and comments.
7683
7684 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
7685
7686         * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when
7687         compiling PIC.
7688
7689 2001-01-14  Kazu Hirata  <kazu@hxi.com>
7690
7691         * config/h8300/h8300.c (get_shift_alg): Update comments.
7692
7693 Sun Jan 14 06:20:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7694
7695         * ggc-page.c (alloc_annon): Call perror and correctly call exit.
7696         (alloc_page, ggc_alloc): Add casts to remove warnings.
7697
7698 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
7699
7700         * combine.c (simplify_comparison): Don't change `code' when
7701         can't reverse comparison.
7702
7703 2001-01-14  Richard Henderson  <rth@redhat.com>
7704
7705         * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem;
7706         update all call sites.  Return true for all non-label constants.
7707
7708 Sun Jan 14 10:09:48 MET 2001  Jan hubicka  <jh@suse.cz>
7709
7710         * i386.c (ix86_expand_compare): Add bypass_test and second_test
7711         parameters.
7712         (ix86_expand_branch): Update.
7713         (ix86_expand_setcc): Update to handle multiple test conditions.
7714         (expand_int_movcc): Likewise.
7715         (expand_fp_movcc): Likewise.
7716         * i386-protos.h (ix86_expand_compare): New.
7717         * i386.md (andqi_?_slp, orqi_?_slp): New.
7718         (conditional trap expander): Update call to ix86_expand_compare.
7719
7720 2001-01-14  Richard Henderson  <rth@redhat.com>
7721
7722         * config/vax/vax.md: Use nonimmediate_operand instead of
7723         general_operand in destinations.
7724
7725         * config/vax/vax.md (indirect_jump): Use register_operand.
7726
7727         * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments.
7728         * config/vax/vax.md (call_pop): Turn into an expander.
7729         (call_value_pop): Likewise.
7730         (call, call_value): New.
7731
7732 2001-01-14  Andreas Jaeger  <aj@suse.de>
7733
7734         * config/i386/i386.c (ix86_split_fp_branch): Remove unused
7735         variables.
7736         (ix86_fp_compare_mode): Add unused attribute.
7737         (ix86_expand_fp_movcc): Remove unused variable.
7738         (ix86_expand_builtin): Make fcode unsigned.
7739
7740         * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned.
7741         (expand_expr): Add cast to avoid signed warning.
7742         (store_field): Likewise.
7743         (store_constructor_field): Likewise.
7744         (store_constructor): Likewise.
7745         (store_expr): Likewise.
7746         (clear_storage): Likewise.
7747         (emit_group_store): Likewise.
7748         (emit_group_load): Likewise.
7749
7750 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
7751
7752         * c-common.c: Move format checking code to ...
7753         * c-format.c: ... here.  New file.  Reorder some functions and
7754         declarations.
7755         (decl_handle_format_attribute, decl_handle_format_arg_attribute):
7756         New functions.
7757         * c-common.h (decl_handle_format_attribute,
7758         decl_handle_format_arg_attribute): Declare.
7759         * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o.
7760         (c-common.o): Adjust dependencies.
7761         (c-format.o): New list of dependencies.
7762
7763 2001-01-13  Jakub Jelinek  <jakub@redhat.com>
7764
7765         * unroll.c (loop_iterations): If we cannot prove iteration variable
7766         is set once in each iteration, punt.
7767
7768 Sun Jan 14 00:23:15 2001  Denis Chertykov  <denisc@overta.ru>
7769
7770         * config/avr/avr.md ("strlenhi"): Remove clobber of input address.
7771         (*strlenhi): Remove clobber (which was buggy) of output address.
7772
7773 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
7774
7775         * Makefile.in (generated-manpages): Add gcc.1
7776         ($(srcdir)/gcc.1): New target.
7777         (maintainer-clean): Delete $(srcdir)/gcc.1.
7778         * gcc.texi: Add macros @gccoptlist and @gol.
7779         * invoke.texi: Include option summary in manpage.  Mark up option
7780         summary with @gccoptlist and @gol.  Use @r in one place where
7781         appropriate.
7782         * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org.
7783         * gcc.1: Generate from invoke.texi.
7784
7785 2001-01-13  Richard Henderson  <rth@redhat.com>
7786
7787         * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap.
7788         (struct page_entry): Add group member.
7789         (struct page_group): New.
7790         (struct globals): Add page_groups member.
7791         (alloc_anon): Only define for using mmap; remove valloc call.
7792         (page_group_index): New.
7793         (set_page_group_in_use): New.
7794         (clear_page_group_in_use): New.
7795         (alloc_page): Implement USING_MALLOC_PAGE_GROUPS.
7796         (free_page, release_pages): Likewise.
7797         * configure.in (with-gc): Default to ggc-page always.
7798
7799 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
7800
7801         * reload1.c (replace_pseudos_in_call_usage): Use
7802         reg_equiv_constant and reg_equiv_address, and don't try
7803         regno_reg_rtx first.
7804
7805 2001-01-13  Richard Henderson  <rth@redhat.com>
7806
7807         * ggc-page.c (alloc_page): Round up allocation size to one page.
7808         Set e->order on extra pages.
7809
7810 2001-01-13  Richard Henderson  <rth@redhat.com>
7811
7812         * genrecog.c (nodes_identical): Expand commentary.
7813         (write_switch): Watch out for identical nodes.
7814
7815 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7816
7817         * cppfiles.c (_cpp_fake_include): New function.
7818         * cpphash.h (_cpp_fake_include): New.
7819         * cpplib.c (do_line): Call _cpp_fake_include when entering
7820         header files in preprocessed input.
7821         * cppmain.c (cb_pragma_implementation): Remove handling.
7822         (setup_callbacks): Don't register pragmas.
7823
7824 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7825
7826         * extend.texi: Udate for CPP.
7827
7828 2001-01-13  Andreas Jaeger  <aj@suse.de>
7829
7830         * reload1.c: Add prototype for replace_pseudos_in_call_usage.
7831
7832         * regmove.c: Add prototype for replace_in_call_usage.
7833
7834 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7835
7836         * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro,
7837         struct cpp_chunk, struct htab, struct toklist,
7838         struct cpp_context, CPP_STACK_MAX, struct lexer_state,
7839         struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER,
7840         CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp,
7841         ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h.
7842         (struct macro_args): Delete.
7843         * cpphash.h: See above.
7844
7845 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7846
7847         * cppmain.c (struct printer): Remove no_line_dirs.
7848         (options, cb): New.
7849         (main, setup_callbacks, scan_buffer, printer_init, cb_define)
7850         : Use options rather than CPP_OPTION.
7851         (setup_callbacks): Use cb rather than pfile->cb.
7852         (main): No need to check for a buffer.  Use cpp_errors.
7853         (printer_init): Don't set no_line_dirs.
7854         (maybe_print_line): Use options not no_line_dirs.
7855         (cb_file_change): Don't call print_line if -P.
7856
7857 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7858
7859         * c-lex.c (init_c_lex): Use cpp_get_callbacks to set
7860         callbacks.
7861         * c-parse.in (finish_parse): Use cpp_errors.
7862         (__yylex): Use return value of cpp_pop_buffer.
7863         * cp/lex.c (finish_parse): Use cpp_errors.
7864         * cp/spew.c (read_token): Use return value of cpp_pop_buffer.
7865
7866 Sat Jan 13 16:57:40 2001  Denis Chertykov  <denisc@overta.ru>
7867
7868         * README.AVR: URLs corrected.
7869
7870 Sat Jan 13 07:30:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7871
7872         * c-decl.c (start_function): Don't warn if old prototype is builtin
7873         that's not in C's namespace.
7874         * libgcc2.c (_varargs): Update definition of __builtin_saveregs.
7875         (_bb): Add prototype for ctime.
7876         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos.
7877
7878 Sat Jan 13 09:53:32 MET 2001  Jan Hubicka  <jh@suse.cz>
7879
7880         * i386.c (ix86_fp_comparison_arithmetics_cost,
7881         ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost,
7882         ix86_fp_comparison_cost): New functions.
7883         (ix86_expand_fp_compare): Use the costs to choose best bethod; add
7884         two new parameters SECOND_TEST and BYPASS_TEST; allow generating
7885         two-branch sequences; make static.
7886         (ix86_use_fcomi_compare): Do decision according to the costs.
7887         (split_fp_branch): New.
7888         * i386.md (compare-and-branch patterns): Use split_fp_branch.
7889         * i386-protos.h (ix86_expand_fp_compare): Remove
7890         (ix86_split_fp_branch): Declare.
7891
7892         * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand
7893         and ix86_comparison_operator.
7894
7895         * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison
7896         to make it cheaper.
7897
7898         * i386.c (put_condition_code): Output properly the unordered/ordered
7899         compares in fp case.
7900         (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure.
7901
7902         * tm.texi (REVERSE_CONDITION): Document.
7903         * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode
7904         in -ffast-math mode.
7905         * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro.
7906
7907 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
7908
7909         * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly.
7910
7911         * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be
7912         optimized away.
7913
7914         * config/sh/sh.c (mova_p): Fix test for mova_const.
7915
7916 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7917
7918         * fix-header.c (read_scan_file): Use cpp_get_callbacks and
7919         cpp_get_options rather than dereferencing pfile and using
7920         CPP_OPTION.
7921         * scan-decls.c (scan_decls): Use return value of
7922         cpp_pop_buffer rather than CPP_BUFFER.
7923
7924 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7925
7926         * cppinit.c (cpp_handle_option): help_only is now part of the
7927         cpp_options structure.
7928         * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks,
7929         cpp_set_callbacks): New functions.
7930         * cpplib.h (cpp_callbacks): Break out as a named structure.
7931         (cpp_options): Move help_only here from cpp_reader.
7932         (CPP_FATAL_ERRORS): Update to use cpp_errors.
7933         (cpp_errors, cpp_get_options, cpp_get_callbacks,
7934         cpp_set_callbacks): New prototypes.
7935         * cppmain.c (main): Update for help_only.
7936
7937 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
7938
7939         * Makefile.in (info, maintainer-clean, install-info, uninstall):
7940         Also build and remove and install and uninstall c-tree.info and
7941         cppinternals.info.
7942         ($(srcdir)/gcc.info): Add dependency on contrib.texi.
7943         ($(srcdir)/cppinternals.info): New target.
7944         * c-tree.texi: Change file name used when makeinfo used without -o
7945         from ir.info to c-tree.info.  Add info directory entry.
7946         * cppinternals.texi: Add info directory entry.
7947         * .cvsignore: Update.
7948
7949 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
7950
7951         * c-typeck.c (store_init_value): Don't require constant initializer
7952         elements with -pedantic -std=c99.
7953         (digest_init): Change error about non-constant initializer elements
7954         into pedwarn.
7955         (constructor_range_end): Remove.
7956         (constructor_incremental, designator_depth,
7957         designator_errorneous): New variables.
7958         (struct constructor_stack): Remove range_end, add incremental.
7959         (struct constructor_range_stack, constructor_range_stack): New.
7960         (struct initializer_stack): Add constructor_range_stack.
7961         (finish_init): Set it.
7962         (start_init): Likewise.  require_constant_elements for non-static
7963         trees only if not flag_isoc99.
7964         (really_start_incremental_init): Remove constructor_range_end, add
7965         constructor_incremental.
7966         (pop_init_level): Likewise.
7967         (push_init_level): Likewise.  If implicit and the subobject had some
7968         value set already, preinitialize the level with it.
7969         Warn about missing braces only if not pushing due to designators.
7970         (set_designator, push_range_stack): New functions.
7971         (set_init_label): Use them.
7972         (set_init_index): Likewise.  Remove constructor_range_end.
7973         Error if designator index is outside of array bounds.
7974         (add_pending_init): Compare values of purpose index trees, not the
7975         trees themselves.  Allow overwriting of already initialized element.
7976         Issue a warning if it had side-effects.
7977         (set_nonincremental_init, set_nonincremental_init_from_string): New
7978         functions.
7979         (pending_init_member): Rename to...
7980         (find_init_member): ...this function.  Call set_nonincremental_init
7981         if necessary.  Compare values of purpose index trees, not the trees
7982         themselves.  Return the actual value, not just non-zero if something
7983         is found.
7984         (output_init_element): Remove checks for duplicates.
7985         If field has zero size, only check the initializer for correctness.
7986         Call set_nonincremental_init if necessary.  Push RECORD/ARRAY into AVL
7987         if constructor_incremental is zero.  Change error about initializers
7988         not computable at load time into pedwarn.
7989         (output_pending_init_elements): Compare bit positions, not
7990         FIELD_DECLs to take into account zero-sized fields.
7991         (process_init_element): Use constructor_range_stack to fill all
7992         ranges in the designator lists from current level up.
7993         * extend.texi: Update documentation for labeled elements.
7994
7995 2001-01-12  Alexandre Oliva  <aoliva@redhat.com>
7996
7997         * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs
7998         to function usage for arguments passed by reference.  Optimize
7999         callee-copied arguments.
8000         * regmove.c (replace_in_call_usage): New function.
8001         (fixup_match_1): Call it.
8002         * cse.c (cse_insn): Canonicalize registers in function usage.
8003         * reload1.c (replace_pseudos_in_call_usage): New function.
8004         (reload): Call it.
8005
8006         * Makefile.in: Reverted yesterday's wrong patch.  Installed the
8007         right version.
8008
8009 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
8010
8011         * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp,
8012         not XEXP (tmp, 0).
8013
8014 2001-01-12  DJ Delorie  <dj@redhat.com>
8015
8016         * Makefile.in (bootstrap): rename stages to be mnemonic.  Add
8017         restageN, unstageN, bubblestrap, quickstrap, and cleanstrap
8018         targets.
8019
8020 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
8021
8022         * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi,
8023         tm.texi: Consistently refer to ISO C instead of ANSI C.  Refer to
8024         -std options alongside references to -ansi.  Update some
8025         documentation for C99.
8026         * cpp.1: Regenerate.
8027
8028 2001-01-12  Andreas Jaeger  <aj@suse.de>
8029
8030         * haifa-sched.c (restore_line_notes): Remove argument block B
8031         since it's unused.
8032         * sched-ebb.c (schedule_ebb): Change caller.
8033         * sched-rgn.c (schedule_region): Likewise.
8034         * sched-int.h (restore_line_notes): Adjust prototype.
8035
8036         * loop.h: Remove wrong declaration of doloop_condition_get.
8037
8038 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
8039
8040         * extend.texi:  Move C++-extension-related node from the C section
8041         into the C++ section.
8042
8043 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
8044
8045         * extend.texi: Refer to an array of pointers to functions instead
8046         of one of functions.
8047
8048 Fri Jan 12 12:08:12 MET 2001  Andreas Jaeger  <aj@suse.de>
8049                               Jan Hubicka  <jh@suse.cz>
8050
8051         * combine.c (reversed_comparison): Fix typo in last patch.
8052         Check X for NULL.
8053         (combine_reversed_comparison_code): Make static to follow
8054         prototype declaration.
8055
8056 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
8057
8058         * install.texi:  Remove misplaced duplicate entry.
8059
8060 2001-01-11  Ulrich Drepper  <drepper@redhat.com>
8061
8062         * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99.
8063
8064 Thu Jan 11 17:06:30 EST 2001  John Wehle  (john@feith.com)
8065
8066         * final.c: (leaf_function_p): Fix typo.
8067
8068 2001-01-11  Zack Weinberg  <zack@wolery.stanford.edu>
8069
8070         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
8071         Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
8072         which you have.
8073         (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
8074         * configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
8075         mmap_anon, and valloc is available.
8076         * ggc-page.c: Restructure ifdef logic to match new autoconf
8077         spec.  Don't throw away the test page in init_ggc.
8078
8079         * configure, config.in: Regenerate.
8080
8081 2001-01-12  Michael Hayes  <mhayes@redhat.com>
8082
8083         * loop.h (total_biv_increment): Constify iv_class pointer.
8084         (struct induction): Replace `mem_mode' with `mem' rtx.
8085         * unroll.c (total_biv_increment): Constify iv_class pointer.
8086         * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx.
8087         (find_mem_givs, combine_givs_p): Likewise.
8088         (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New.
8089
8090 2001-01-10  Thomas Pfaff <tpfaff@gmx.net>
8091
8092         * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32
8093         LastError.
8094         (__gthread_getspecific): Ditto.
8095
8096 Fri Jan 12 00:04:00 MET 2001  Jan Hubicka  <jh@suse.cz>
8097
8098         * i386.c (ix86_comparison_operator, fcmov_comparison_operator,
8099         put_condition_code): Convert fp comparison codes to integer
8100         before handling.
8101         (ix86_expand_fp_compare): Postnote the fp comparison code converison
8102         to final.
8103
8104         * i386.c (unsigned_comparison, no_comparison_operator): Kill.
8105         * i386-protos.h (no_comparison_operator): Kill.
8106
8107         * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion.
8108
8109         * combine.c (REVERSIBLE_CC_MODE): Remove.
8110         (reversible_comparison_p): Remove.
8111         (combine_reversed_comparison_code): New.
8112         (reversed_comparison): New.
8113         (combine_simplify_rtx): Use
8114         combine_reversed_comparison_code/reversed_comparison instead
8115         of reversible_comparison_p.
8116         (simplify_if_then_else): Likewise.
8117         (simplify_set): Likewise.
8118         (simplify_logical): Likewise.
8119         (if_then_else_cond): Likewise.
8120         (known_cond): Likewise.
8121         (simplify_comparison): Likewise.
8122
8123 2001-01-11  Alan Lehotsky  <lehotsky@tiac.net>
8124
8125         * builtins.c (std_expand_builtin_va_start): Handle varargs when
8126         sizeof (int) is larger than sizeof(__word__).
8127
8128 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8129
8130         * cppinit.c (do_includes): Fix typo.
8131
8132 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8133
8134         * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading
8135         in S_REGS does not occur because not all sources are possible
8136         when a S_REGS is a destination (sometimes needs a clobber).
8137         (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise.
8138         (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise.
8139         (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise.
8140         (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise.
8141         (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise.
8142         (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise.
8143         (lshrdi_const1, lshrsi3_const16): Likewise.
8144         (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise.
8145         (*movhi_68hc12, *movqi_68hc12): Likewise.
8146         (movstrictqi): Make sure reloading in D_REGS as a destination
8147         does not happen.
8148
8149 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8150
8151         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
8152
8153 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8154
8155         * cppinit.c (cpp_start_read): If -fpreprocessed, ignore
8156         -D, -U and -A, and don't initialize the builtins.
8157         (do_includes): Error if -include or -imacros with -fpreprocessed.
8158         * cppmain.c (cb_define, cb_undef): Unconditionally process
8159         the callback.
8160         * tradcpp.c (main): Fix typo.
8161
8162 2000-01-11  Mark Elbrecht  <snowball3@bigfoot.com>
8163
8164         * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include)
8165         (read_name_map): Use IS_ABSOLUTE_PATH.
8166         * tradcpp.c (get_filename): Likewise.
8167
8168 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8169
8170         * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers.
8171         (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise.
8172         (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise.
8173         (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise.
8174         (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise.
8175         (cmphi_z_used): Don't use '@' for the output.
8176         (tstqi_z_used): Likewise.
8177         (cmpqi_z_used): Likewise.
8178         (one_cmplsi2): Likewise.
8179
8180 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8181
8182         * config/sh/sh.c (barrier_align): Recognize branch around far
8183         branch and redundant insn.
8184
8185 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8186
8187         * invoke.texi: Restore documentation of the drivers' switches -MD
8188         and -MMD.
8189
8190 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8191
8192         * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1.
8193
8194         * Makefile.in (check-gcc//%, check-g++//%, check-g77//%,
8195         check-objc//%): Support parallel testing of multilibs.
8196         (TESTSUITEDIR): Set to testsuite by default, but override for
8197         parallel testing.
8198         (check-gcc, check-g++, check-g77, check-objc): Enter
8199         $(TESTSUITEDIR).
8200
8201 2001-01-11  Bernd Schmidt  <bernds@redhat.com>
8202
8203         * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO.
8204         * sched-deps.c (deps_may_trap_p): Likewise.
8205         * basic-block.h: Remove a comment.
8206         * flow.c (PROP_POSTRELOAD): Remove.
8207         (update_life_info): Don't add it to prop_flags.
8208         (mark_set_1): Lose the code that was enabled by it.
8209
8210 2001-01-11  Michael Hayes  <mhayes@redhat.com>
8211
8212         * flow.c (flow_call_edges_add): New.
8213         * basic_block.h (flow_call_edges_add): New.
8214
8215 2001-01-11  J"orn Rennecke <amylaar@redhat.com>
8216
8217         * reload1.c (move2add_note_store): Update reg_set_luid even if
8218         base reg remains the same.
8219
8220 2001-01-10  Nick Clifton  <nickc@redhat.com>
8221
8222         * config/d30v/d30v.c (d30v_init_machine_status): Initialise
8223         machine_function structure to zero.
8224         Add prototypes for machine_status functions.
8225
8226 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
8227
8228         * c-common.h (CTI_VOID_LIST): Remove.
8229         (void_list_node): Likewise.
8230         * tree.h (TI_VOID_LIST_NODE): New enumeral.
8231         (void_list_node): New macro.
8232         * config/arm/arm.c (arm_init_builtins): Use void_list_node.
8233         * config/i386/i386.c (ix86_init_builtins): Likewise.
8234         * config/ia64a/ia64.c (ia64_init_builtins): Likewise.
8235
8236 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8237
8238         * Makefile.in (tradcpp0): Depend on mkdeps.h.  Link mkdeps.o
8239         * cppinit.c (cpp_start_read): Update comment, remove unneeded
8240         if statement.
8241         * tradcpp.c: Include mkdeps.h.
8242         (deps, print_deps_phony_targets, deps_append, output_deps,
8243         init_dependency_output, output_deps): New.
8244         (deps_buffer, deps_allocated_size, deps_size, deps_column,
8245         deps_output): Delete.
8246         (print_deps_missing_files): Rename deps_missing_files.
8247         (inhibit_output): Make global.
8248         (main): Delete inhibit_output, deps_stream, deps_target.
8249         Use mkdeps functionality in the same way as cpplib.  Remove
8250         -g3 handling.  Handle -MF, -MP, -MQ, -MT.  Update handling of
8251         -M and -MM.  Remove old handling of deps via deps_out, and
8252         old reading of environment variables.
8253         (get_filename): Update to use deps_add_dep.
8254
8255 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
8256
8257         * output.h (make_function_rtl): Remove prototype.
8258         (make_decl_rtl): Likewise.
8259         * varasm.c (make_function_rtl): Remove.
8260         (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
8261         than from a third parameter.
8262         * tree.h (make_decl_rtl): Remove last parameter.
8263         * c-decl.c (builtin_function): Remove last argument in call to
8264         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
8265         (start_function): Likewise.
8266         * except.c (call_get_eh_context): Likewise.
8267         * expr.c (emit_block_move): Likewise.
8268         (clear_storage): Likewise.
8269         * profile.c (output_func_start_profiler): Likewise.
8270         * toplev.c (rest_of_decl_compilation): Likewise.
8271         * objc/objc-act.c (create_builtin_decl): Likewise.
8272         (synth_module_prologue): Likewise.
8273         (generate_static_reference): Likewise.
8274         (build_selector_reference_decl): Likewise.
8275         (build_class_reference_decl): Likewise.
8276         (build_objc_string_decl): Likewise.
8277         (build_protocol_reference): Likewise.
8278
8279 2001-01-10  Richard Henderson  <rth@redhat.com>
8280
8281         * hwint.h: Revert yesterday's change.
8282
8283 2001-01-10  Nick Clifton  <nickc@redhat.com>
8284
8285         * function.h (save_machine_status): Delete.
8286         (restore_machine_status): Delete.
8287         Amend comment describing {init|mark|free}_machine_status.
8288
8289         * function.c (save_machine_status): Delete.
8290         (restore_machine_status): Delete.
8291         Amend comment describing {init|mark|free}_machine_status.
8292         (push_function_context_to): Remove invocation of
8293         save_machine_status.
8294         (pop_function_context_from): Remove invocation of
8295         restore_machine_status.
8296
8297         * emit-rtl.c (init_emit_once): Amend comment describing
8298         {init|mark|free}_machine_status.
8299
8300         * tm.texi (Per-Function Data): New node.  Describe the
8301         INIT_EXPANDERS macro and the {init|mark|free}_machine_status
8302         function pointers.
8303
8304 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8305
8306         * cppinit.c (OPT_g): Remove.
8307         (cpp_handle_option): Update for removed -g3.
8308         (print_help): Update.
8309         * cpplib.h (struct cpp_options): Remove debug_output.
8310         * cppmain.c (setup_callbacks, cb_define): Update.
8311         * gcc.c (cpp_options): Translate -g3 to -dD.
8312
8313 2001-01-10  Aldy Hernandez  <aldyh@redhat.com>
8314
8315         * config/i960/i960.md: Change modifier to + on the zero_extract
8316         pattern after the (rotate -2 reg) canonicalization pattern.
8317
8318 2001-01-10  Richard Henderson  <rth@redhat.com>
8319
8320         * config/alpha/alpha.c (alpha_free_machine_status): New.
8321         (override_options): Install it.
8322         (alpha_mark_machine_status): Verify machine non-null.
8323         * config/i386/i386.c (ix86_free_machine_status): New.
8324         (override_options): Install it.
8325         (ix86_init_machine_status): Use xcalloc.
8326         (ix86_mark_machine_status): Verify machine non-null.
8327         * config/ia64/ia64.c (ia64_free_machine_status): New.
8328         (ia64_override_options): Install it.
8329         (ia64_mark_machine_status): Verify machine non-null.
8330
8331 Wed Jan 10 11:34:39 2001  Jeffrey A Law  (law@cygnus.com)
8332
8333         * function.c (instantiate_virtual_regs): Instantiate virtual
8334         registers found in CALL_INSN_FUNCTION_USAGE.
8335
8336 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
8337
8338         * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as
8339         equivalent to -ansi in disabling -Di386.
8340
8341 Wed Jan 10 16:38:31 MET 2001  Jan Hubicka  <jh@suse.cz>
8342
8343         * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes):
8344         new functions.
8345         (ix86_expand_fp_compare): Make trivial use of new infrastructure.
8346
8347 2001-01-10  Richard Earnshaw  <rearnsha@arm.com>
8348
8349         * arm.c (arm_init_builtins): Temporarily disable xscale builtins.
8350
8351 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
8352
8353         * invoke.texi: Document that -fcond-mismatch isn't supported for
8354         C++.
8355
8356 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
8357
8358         * gcc.texi: Define macro gcctabopt.
8359         * invoke.texi: Add manpage sections BUGS and AUTHOR.  Use
8360         @command, @env and @option in some places where appropriate.  Use
8361         @gcctabopt where appropriate.  Put URLs and email addresses inside
8362         @w.
8363
8364 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
8365
8366         * gcc.c (cpp_options): Set MD file name from output
8367         filename, if specified.
8368         (suffix_subst): New static variable.
8369         (do_spec): Clear it.
8370         (do_spec_1, case '.'): Handle new `%.suffix' spec.
8371         Clear it.
8372         (give_switch): Handle suffix_subst.
8373
8374 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
8375
8376         * invoke.texi:  Fix another typo.
8377
8378 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
8379
8380         * invoke.texi:  Fix typo.
8381
8382 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8383
8384         * c-lang.c (lang_hooks): Update.
8385         (lang_decode_option): Remove.
8386         (lang_init_options): Rename c_init_options.
8387         * toplev.c (main): Use lang_hooks for lang_init_options
8388         and lang_decode_option.
8389         * toplev.h (lang_hooks): Add 2 new hooks.
8390         * tree.h: Remove lang_init_options and lang_decode_option.
8391         * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
8392         * cp/decl2.c: Similarly.
8393         * cp/lex.c (lang_init_options): Rename cxx_init_options.
8394         (lang_hooks): Update.
8395         * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
8396         for consistency.
8397         (lang_init_options): Rename ffe_init_options.
8398         (lang_hooks): Update.
8399         (lang_decode_option): Remove.
8400         * java/lang.c (lang_init_options): Rename java_init_options.
8401         (lang_decode_option): Rename java_decode_option.
8402         (lang_hooks): Update.
8403         * objc/objc-act.c (lang_init_options): Rename objc_init_options.
8404         (lang_decode_option): Rename objc_decode_option.
8405         (lang_hooks): Update.
8406
8407 2001-01-09  Nick Clifton  <nickc@redhat.com>
8408
8409         * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete.
8410         (d30v_return_addr_rtx): Delete.
8411         (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the
8412         cfun->machine structure.
8413         (struct machine_function): Move to d30v.h
8414         (d30v_save_machine_status): Delete.
8415         (d30v_restore_machine_status): Delete.
8416         (d30v_init_machine_status): New Function.
8417         (d30v_mark_machine_status): New Function.
8418         (d30v_free_machine_status): New Function.
8419         (d30v_init_expanders): Use new functions.
8420         (d30v_return_addr): Use ra_rtx field in cfun->machine.
8421         (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and
8422         d30v_return_addr_rtx.
8423
8424         * config/d30v/d30v.h (struct_machine): Move here.
8425         Add eh_epilogue_sp_ofs field.
8426
8427         *config/d30v/d30v.md (epilogue): Initialise eh_epilogue_sp_ofs
8428         field in cfun->machine structure.
8429
8430 Tue Jan  9 21:34:57 2001  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8431
8432         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code,
8433         PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register.
8434         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
8435
8436 Tue Jan  9 21:25:19 2001  Jeffrey A Law  (law@cygnus.com)
8437
8438         * objc/lang-options.h: Remove bogus reference to
8439         Java trademark.
8440
8441 2001-01-09  Kazu Hirata  <kazu@hxi.com>
8442
8443         * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to
8444         return the result.
8445
8446 2001-01-09  Alan Lehotsky  <lehotsky@tiac.net>
8447
8448         * reload.c (find_reloads_address): Check for eliminable registers
8449         when substituting a constant expression for a pseudo.
8450
8451 2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
8452
8453         * c-common.c (enum format_type): Add format_type_error.
8454         (decode_format_type): New function.
8455         (decl_attributes): Use it.
8456         (format_kind_info): Adjust comment.
8457
8458 2001-01-09  David O'Brien  <obrien@BSDi.com>
8459
8460         * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1,
8461         i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific
8462         files in tm_file.
8463         * config/i386/gnu.h: Don't include required platform specific .h files,
8464         tm.h will do it instead.
8465         * config/i386/i386elf.h: Likewise.
8466         * config/i386/linux.h: Likewise.
8467         * config/i386/moss.h: Likewise.
8468         * config/mips/gnu.h: Likewise.
8469
8470 2001-01-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8471
8472         * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h.
8473         (rs6000-ibm-aix3.[01]*): Likewise.
8474         (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise.
8475         (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise.
8476         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise.
8477         (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
8478         (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h.
8479         (powerpc-*-eabiaix*): Likewise.
8480         (powerpc-*-eabisim*): Likewise.
8481         (powerpc-*-elf*): Likewise.
8482         (powerpc-*-eabi*): Likewise.
8483         (powerpc-*-rtems*): Likewise.
8484         (powerpc-*-linux*libc1): Likewise.
8485         (powerpc-*-linux*): Likewise.
8486         (powerpc-wrs-vxworks*): Likewise.
8487         (powerpcle-wrs-vxworks*): Likewise.
8488         (powerpcle-*-sysv*): Likewise.
8489         (powerpcle-*-elf*): Likewise.
8490         (powerpcle-*-eabisim*): Likewise.
8491         (powerpcle-*-eabi*): Likewise.
8492         (powerpcle-*-solaris2*): Likewise.
8493         * config/rs6000/aix31.h: Delete includes.
8494         * config/rs6000/aix3newas.h: Likewise.
8495         * config/rs6000/aix41.h: Likewise.
8496         * config/rs6000/aix43.h: Likewise.
8497         * config/rs6000/beos.h: Likewise.
8498         * config/rs6000/rtems.h: Likewise.
8499         * config/rs6000/sysv4.h: Likewise.
8500
8501 2001-01-09  Kazu Hirata  <kazu@hxi.com>
8502
8503         * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
8504         Change an argument mode of machine_mode to shift_mode of
8505         shift_mode.  Remove an extra error check.
8506         (emit_a_shift): Adopt to the new calling prototype of
8507         get_shift_alg.
8508         (function_prologue): Fix code for a monitor
8509         function.  Support H8/S.
8510         (function_epilogue): Do not output pop for a monitor function.
8511
8512 2001-01-09  Nick Clifton  <nickc@redhat.com>
8513
8514         * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete.
8515         (setup_incoming_varargs): Use sysv_varargs_p field of the
8516         cfun->machine structure.
8517         (struct machine_function): Move to rs6000.h
8518         (rs6000_save_machine_status): Delete.
8519         (rs6000_restore_machine_status): Delete.
8520         (rs6000_init_machine_status): New Function.
8521         (rs6000_free_machine_status): New Function.
8522         (rs6000_init_expanders): Use new functions.
8523
8524         * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete
8525         export.
8526         (struct machine_function): Move here.
8527
8528         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
8529         sysv_varargs_p field of the cfun->machine structure.
8530
8531         * config/rs6000/rs6000-protos.h (rs6000_save_machine_status):
8532         Remove prototype.
8533         (rs6000_restore_machine_status): Remove prototype.
8534
8535 2001-01-09  Richard Henderson  <rth@redhat.com>
8536
8537         * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
8538         reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
8539         * sched-deps.c (sched_analyze_1): Update uses of struct deps.
8540         (sched_analyze_2, sched_analyze_insn): Likewise.
8541         (sched_analyze, init_deps): Likewise.
8542         (free_deps): Likewise.  Iterate with EXECUTE_IF_SET_IN_REG_SET.
8543         * sched-rgn.c (propagate_deps): Likewise.  Remove max_reg argument.
8544         (compute_block_backward_dependences): Update propagate_deps call.
8545
8546 2001-01-09  Mark Elbrecht  <snowball3@bigfoot.com>
8547
8548         * gcc.c (process_command): Set switches[n_switches].ordering to 0.
8549
8550 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8551
8552         * cppinit.c (OPT_MD, OPT_MMD): Restore.
8553         (cpp_handle_option): Handle them.
8554         (cpp_post_options): Ensure one of -M or -MM is specified with
8555         any other -M? option.
8556         (init_dependency_output): Suppress output with -MG.
8557
8558 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8559
8560         * cpp.texi: Update.
8561         * invoke.texi: Update.
8562
8563 2001-01-09  Bernd Schmidt  <bernds@redhat.com>
8564
8565         * sh.md (reload_outsf): Generate recognizable patterns for
8566         TARGET_SH3E.
8567
8568 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8569
8570         * c-lang.c (lang_hooks): Update.
8571         (lang_init): Rename c_init.
8572         (lang_finish): Remove.
8573         * toplev.c (compile_file): Use lang_hooks for lang_init ()
8574         and lang_finish ().
8575         * toplev.h (lang_hooks): Add init () and finish ().
8576         * tree.h (lang_init, lang_finish): Remove.
8577         * cp/tree.h (lang_init, lang_finish): Remove.
8578         * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
8579         * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
8580         lang_hooks): New.
8581         (lang_init, lang_finish): Remove.
8582         * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
8583         (lang_hooks): Update.
8584         * java/lang.c (lang_init): Rename java_init.
8585         (lang_finish): Remove.
8586         (lang_hooks): Update.
8587         * objc/objc-act.c (lang_init): Rename objc_init.
8588         (lang_finish): Remove.
8589         (lang_hoooks): Update.
8590
8591 20001-01-09  Graham Stott  <grahams@redhat.com>
8592
8593         * cppfiles.c (_cpp_execute_include): Move `len` initialisation
8594         after `ptr` is initialised.
8595
8596 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8597
8598         * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
8599         (INITIALIZE_TRAMPOLINE): Adjust accordingly.
8600         * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
8601         stack adjusts, instead of r3.
8602
8603 2001-01-09  Michael Hayes  <mhayes@redhat.com>
8604
8605         * flow.c (flow_loop_scan): Break out of ...
8606         (flow_loops_find) ... here.
8607         * basic-block.h (flow_loop_scan): New.
8608         (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add.
8609         (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine.
8610
8611 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8612
8613         * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero
8614         macro_buffer_len.
8615         * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when
8616         realloc()ing macro_buffer.
8617
8618         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
8619         if it's wider than long and the target's long is wider than the
8620         host's.
8621
8622 2001-01-09  Mark Mitchell  <mark@codesourcery.com>
8623
8624         Remove support for using UWIN as a host machine.
8625         * configure.in: Issue an error message.
8626         * configure: Regenerated.
8627         * config.gcc: Remove xm_* UWIN configury.
8628         * config/i386/xm-uwin.h: Remove.
8629
8630 2001-01-08  Nick Clifton  <nickc@redhat.com>
8631
8632         * config/v850/v850.c (ra_rtx): Delete.
8633         (v850_save_machine_status): Delete.
8634         (v850_restore_machine_status): Delete.
8635         (v850_init_machine_status): New function.
8636         (v850_mark_machine_status): New function.
8637         (v850_free_machine_status): New function.
8638         (v850_return_addr): Use ra_rtx field in machine structure.
8639         (v850_init_expanders): Use new functions.
8640
8641         * config/v850/v850-protos.h: Fix prototypes for v850_output_*
8642         * config/v850/v850.c: Change arguments to v850_output+* functions
8643         to take a const char *, to avoid compile time warning.
8644         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
8645         (USER_LABEL_PREFIX): Redefine.
8646
8647 2000-01-08  Jim Wilson  <wilson@redhat.com>
8648
8649         * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
8650         1 to unsigned HOST_WIDE_INT before left shift.
8651
8652 2001-01-08  Nick Clifton  <nickc@redhat.com>
8653
8654         * config/arm/arm.c (arm_mark_machine_status): Check to see if
8655         the machine structure has been allocated.
8656         (arm_free_machine_status): New function: Free the machine
8657         specific function structure.
8658
8659 2001-01-08  Richard Henderson  <rth@redhat.com>
8660
8661         * jump.c (simplejump_p): Revert last change.
8662
8663 2001-01-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8664
8665         * cppinit.c (init): Rename init_library.
8666         (cpp_create_reader): Update.
8667         * gcc.c (cpp_options): If -o given, use it as the target of
8668         any -M options.
8669
8670 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
8671
8672         * arm.c (arm_arch5e): New variable.
8673         (all_cores): XScale is a 5TE device.
8674         (arm_override_options): Set arm_arch5e.
8675         (arm_init_builtins): __builtin_prefetch is in arch5e.
8676         * arm.h (arm_arch5e): Declare it.
8677
8678         * arm.h (PREDICATE_CODES): Add arm_hard_register_operand.
8679
8680         * arm.md (define_constants): Add defines for UNSPEC and
8681         UNSPEC_VOLATILE insns.  Update all users.
8682         (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM.
8683         * arm.c (multi_register_push, note_invalid_constants)
8684         (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
8685         * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
8686         (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
8687
8688 Mon Jan  8 16:14:56 MET 2001  Jan Hubicka  <jh@suse.cz>
8689
8690         * jump.c (jump_optimize_1): Use reversed_comparison_code
8691         instead of can_reverse_comparison_p.
8692         (jump_back_p): Likewise.
8693         (invert_exp_1): Likewise.
8694         (thread_jumps): Likewise.
8695         * simplify-rtx.c (simplify_unary_operation): Likewise.
8696         (simplify_ternary_operation): Likewise.
8697         * cse.c (find_comparison_args): Convert to use
8698         can_reverse_comparison_p.
8699         (record_jump_equiv): Likewise.
8700
8701 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
8702
8703         * arm.h (HARD_REGNO_RENAME_OK): Delete.
8704         (EPILOGUE_USES): Define.
8705         (INITIAL_ELIMINATION_OFFSET): Current prologue code does not
8706         automatically stack the LR if it isn't live.
8707
8708 Mon Jan  8 13:46:02 MET 2001  Jan Hubicka  <jh@suse.cz>
8709
8710         * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions
8711         properly.
8712
8713 Sun Jan  7 18:37:43 2001  Mark P Mitchell  <mark@codesourcery.com>
8714
8715         * ggc-page.c (max_alignment): New structure.
8716         (MAX_ALIGNMENT): New macro.
8717         (init_ggc): Use it to round up the sizes in the
8718         extra_order_size_table.
8719
8720 2001-01-07  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8721
8722         * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register
8723         after reload.
8724
8725 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8726
8727         * builtins.def (BUILT_IN_FPRINTF): New entry.
8728
8729         * c-common.c (c_expand_builtin_fprintf): New function.
8730         (init_function_format_info): Handle __builtin_fprintf.
8731         (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf.
8732         (c_expand_builtin): Handle BUILT_IN_FPRINTF.
8733
8734         * c-decl.c (duplicate_decls): Adjust comment.
8735
8736         * extend.texi (fprintf): Document new builtin.
8737
8738 2001-01-07  Richard Henderson  <rth@redhat.com>
8739
8740         * jump.c (simplejump_p): Recognize any single_set jump
8741         of the proper form.
8742
8743 2001-01-07  Richard Henderson  <rth@redhat.com>
8744
8745         * configure.in (slibdir): Accept an --with-slibdir option.
8746         Use "test" not "[" in configure.  Default to $(libdir).
8747
8748         * config/t-linux (SHLIB_INSTALL): Double quote slibdir;
8749         fix typo in rm -f.
8750         * config/t-aix43 (SHLIB_INSTALL): Likewise.
8751         * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
8752         (SHLIB_LINK): Create links for the soname.
8753         * config/mips/t-iris6: Likewise.
8754         * config/sparc/t-slibgcc: Likewise.
8755         * config/sparc/t-slibgcc-sld: Likewise.
8756
8757 2001-01-07  Jakub Jelinek  <jakub@redhat.com>
8758
8759         * config/i386/i386.c (constant_call_address_operand): Accept
8760         (const (plus (symbol_ref) (const_int))).
8761         * config/i386/i386.h (PREDICATE_CODES): Add CONST for
8762         constant_call_address_operand.
8763
8764 2001-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8765
8766         * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
8767         and LONG_LONG_TYPE_SIZE > 32.
8768
8769 2001-01-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8770
8771         * jump.c (reversed_comparison_code_parts): Fix typo introduced by
8772         the previous change.
8773
8774 Sun Jan  7 19:37:48 MET 2001  Jan Hubicka  <jh@suse.cz>
8775
8776         * jump.c (reversed_comparison_code_parts, reversed_comparison_code):
8777         New.
8778         (can_reverse_comparison_p): Rewrite to use reversed_comparison_code.
8779         (reverse_condition_maybe_unordered): Abort on unsigned comparisons.
8780         * rtl.h (reversed_comparison_code_parts, reversed_comparison_code):
8781         Declare.
8782
8783 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8784
8785         * fix-header.c (read_scan_file): s/pfile/scan_in/.
8786
8787 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8788
8789         * c-lang.c (c_post_options): Call cpp_post_options.
8790         * objc/objc-act.c (objc_post_options): Similarly.
8791         * cppmain.c (main): Similarly.
8792         * fix-header.c (read_scan_file): Similarly.
8793         * cppinit.c (cpp_start_read): Move option consistency checks
8794         to cpp_post_options.  Don't call init_dependency_output.
8795         If needed, add default target and main file dependency.
8796         (OPT_MD, OPT_MMD): Remove.
8797         (OPT_MF): New.
8798         (cpp_handle_option): Update for OPT_* changes.
8799         (cpp_post_options): New.
8800         (init_dependency_output): Command line -MF overrides environment
8801         variables.  Don't set default target etc.  Suppress output
8802         if dependencies are going to stdout.
8803         (print_help): Update.
8804         * cpplib.h (cpp_post_options): New.
8805         * gcc.c (cpp_options): Update for -MD, -MMD, -MF.
8806
8807 Sun Jan  7 14:44:19 MET 2001  Jan Hubicka  <jh@suse.cz>
8808
8809         * jump.c (comparison_dominates_p): Support unordered compares.
8810
8811 Sun Jan  7 14:39:07 MET 2001  Jan Hubicka  <jh@suse.cz>
8812
8813         * simplify-rtx.c (simplify_relational_operation): Always simplify
8814         ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
8815         and UNGE.
8816
8817 Sun Jan  7 14:35:13 MET 2001  Jan Hubicka  <jh@suse.cz>
8818
8819         * combine.c (combine_simplify_rtx): Recognize the unordered compares.
8820         (nonzero_bits): Likewise.
8821         (simplify_comparison): Likewise.
8822         (num_sign_bit_copies): Likewise; return more sane value depending
8823         on STORE_FLAG_VALUE.
8824         (known_cond): Do not assume EQ to be always true for equivalent
8825         operands.
8826
8827 Sun Jan  7 14:31:57 MET 2001  Jan Hubicka  <jh@suse.cz>
8828
8829         * cse.c (fold_rtx): Handle unordered comparisons.
8830
8831 Sun Jan  7 13:49:19 MET 2001  Jan Hubicka  <jh@suse.cz>
8832
8833         * rtlanal.c (set_of_1): New static function.
8834         (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag,
8835          reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno,
8836          reg_set_last_last_regno): Remove.
8837         (set_of): New global function.
8838         (set_of_data): New structure.
8839         (reg_set_p, reg_set_last): Revamp for set_of.
8840         * rtl.h (set_of): New.
8841
8842 2001-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
8843
8844         * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin.
8845         * extend.texi: Document _Exit builtin.
8846
8847 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8848
8849         * (initialize, initialize_builtins,
8850         initialize_dependency_output, initialize_standard_includes):
8851         Rename s/initialize/init. Update.
8852         (init_dependency_output): Move to after
8853         cpp_handle_options, the correct location temporally at least.
8854         (opt_comp): Move next to init (), its caller.  Fix prototype.
8855         (init): Make "initialized" local scope.
8856         (cpp_create_reader): Always call init ().
8857         (cpp_start_read): Update.
8858         (output_deps): New function, broken out of cpp_finish.
8859         (cpp_finish): Break out output_deps.
8860
8861 2001-01-07  Richard Henderson  <rth@redhat.com>
8862
8863         * collect2.c (COFF specific stuff): Revert 12-06 patch
8864         to prototype system functions.
8865
8866 2001-01-07  Michael Hayes  <mhayes@redhat.com>
8867
8868         * hard-reg-set.h: Add multiple include guard.
8869         * basic-block.h (struct loop): Add `sink' field.
8870         * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
8871         (emit_iv_add_mult): Delete.
8872         (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
8873         (loop_iv_add_mult_emit_before, loop_insn_sink): Define.
8874         (unroll_loop): Remove end_insert_before argument.
8875         * loop.c (loop_givs_rescan): Remove end_insert_before argument.
8876         (maybe_eliminate_biv_1): Likewise.
8877         (emit_iv_add_mult): Delete.
8878         (gen_add_mult, loop_regs_update): New.
8879         (loop_insn_emit_after, loop_insn_emit_before): New.
8880         (loop_insn_sink, loop_insn_sink_or_swim): New.
8881         (emit_iv_add_mult): Delete.
8882         (scan_loop): Set loop->sink.
8883         (loop_givs_reduce): Use loop_insn_sink and its ilk.
8884         (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
8885         (maybe_eliminate_biv_1): Likewise.
8886         (maybe_eliminate_biv_1): Add basic block argument.
8887         * unroll.c (unroll_loop): Remove end_insert_before argument.
8888         (find_splittable_regs): Likewise.
8889         (find_splittable_regs): Use loop_insn_sink and its ilk.
8890         (find_splittable_givs, final_biv_value, final_giv_value): Likewise.
8891
8892 2001-01-07  Michael Hayes  <mhayes@redhat.com>
8893
8894         * loop.h (loop_insn_hoist): New prototype.
8895         * loop.c (loop_insn_hoist, loop_insn_emit_before): New.
8896         (move_movables, loop_givs_rescan): Use loop_insn_hoist.
8897         (check_dbra_loop, load_mems): Likewise.
8898         * unroll.c (unroll_loop, find_splittable_regs): Likewise.
8899         (find_splittable_givs): Likewise.
8900
8901 2001-01-07  Michael Hayes  <mhayes@redhat.com>
8902
8903         * loop.c (emit_iv_add_mult): Use single_set to examine new insn.
8904
8905 2001-01-07  Richard Henderson  <rth@redhat.com>
8906
8907         * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change.
8908
8909 2001-01-07  Richard Henderson  <rth@redhat.com>
8910
8911         * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
8912         NO_SHARED_LIBGCC_MULTILIB as required for the target.
8913         * gcc.c (init_spec): Massage the existing libgcc_spec into a
8914         variant that handles a shared libgcc.
8915         (process_command): Always validate -{static,shared}-libgcc.
8916         (do_spec_1): New 'M' case.
8917         * invoke.text (Link Options): Document -{static,shared}-libgcc.
8918
8919 2001-01-07  Richard Henderson  <rth@redhat.com>
8920
8921         * Makefile.in (slibdir): New variable.
8922         (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
8923         (installdirs): Create slibdir.
8924         (install-libgcc, install-multilib): Defer to libgcc.mk.
8925         * configure.in (slibdir): Substitute.
8926         * mklibgcc.in (install): New target.
8927
8928         * config/t-linux (SHLIB_LINK): Create links for the soname.
8929         (SHLIB_INSTALL): New.
8930         * config/alpha/t-osf4 (SHLIB_INSTALL): New.
8931         * config/mips/t-iris6 (SHLIB_INSTALL): New.
8932         * config/rs6000/t-aix43 (SHLIB_INSTALL): New.
8933         * config/sparc/t-slibgcc (SHLIB_INSTALL): New.
8934         * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
8935
8936 2001-01-07  Richard Henderson  <rth@redhat.com>
8937
8938         * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
8939         * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove.
8940         * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove.
8941
8942 2001-01-07  Michael Hayes  <mhayes@redhat.com>
8943
8944         * loop.c (count_loop_regs_set): Delete.
8945         (load_mems_and_recount_loop_regs_set): Delete.
8946         (loop_regs_scan): Merge common code from count_loop_regs_set,
8947         scan_loop, and load_mems_and_recount_loop_regs_set.
8948         (scan_loop): Call load_mems directly and loop_regs_scan
8949         again if new registers created.
8950
8951 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8952
8953         * toplev.c (main): Call the front-end specific post_options
8954         hook if one is given.
8955         * toplev.h (struct_lang_hooks, lang_hooks): New.
8956         * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
8957         for the C front end.
8958         * cp/decl2.c (cxx_post_options, lang_hooks): Implement
8959         lang_hooks for the C++ front end.
8960         * objc/objc-act.c (objc_post_options, lang_hooks): Implement
8961         lang_hooks for the ObjC front end.
8962         * f/com.c (lang_hooks): Hooks for the Fortran front end.
8963         * java/lang.c (lang_hooks): Hooks for the Java front end.
8964
8965 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8966
8967         * c-lex.c (init_c_lex): Request #define / #undef callbacks
8968         for verbose DWARF[2] debugging.
8969         (cb_define, cb_undef): The new callbacks.
8970         * toplev.h (debug_define, debug_undef): Make const correct.
8971         * toplev.c (debug_define, debug_undef): Similarly.  Do not
8972         perform the verbosity tests here anymore.
8973
8974 2001-01-07  Alexandre Oliva  <aoliva@redhat.com>
8975
8976         * reload.c (subst_reloads): Take INSN argument.  When
8977         replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
8978         * reload.h (subst_reloads): Adjust prototype.
8979         * reload1.c (reload_as_needed): Pass INSN to subst_reloads.
8980         * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
8981         present in JUMP_INSNs and copy them to JUMP_LABEL.
8982         * flow.c (find_label_refs, find_basic_blocks_1): Skip
8983         JUMP_INSNs and insns with REG_LABELs that are followed by
8984         JUMP_INSNs with the same REG_LABEL.
8985         * sched-rgn.c (is_cfg_nonregular): Likewise.
8986         * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
8987         note is available.
8988         * unroll.c (unroll_loop): Look for REG_LABEL notes in
8989         JUMP_INSNs too.
8990         * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
8991
8992 2001-01-06  Richard Henderson  <rth@redhat.com>
8993
8994         * loop.c (scan_loop): Use xcalloc for the regs array.
8995         (load_mems_and_recount_loop_regs_set): Zero the new memory
8996         received from xrealloc.
8997
8998 2001-01-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8999
9000         * mkdeps.c (deps_add_dep): Fix vector re-allocation.
9001
9002 Sat Jan  6 00:09:34 2001  J"orn Rennecke <amylaar@redhat.com>
9003
9004         * integrate.c (copy_rtx_and_substitute): When copying
9005         an ignored return value, strip REG_FUNCTION_VALUE_P.
9006
9007 2001-01-06  Michael Hayes  <mhayes@redhat.com>
9008
9009         * loop.c (debug_biv, debug_giv): New.
9010         (loop_biv_dump): Break out from ...
9011         (record_biv): ... here.
9012         (loop_giv_dump): Break out from ...
9013         (record_giv): ... here.
9014         (loop_bivs_check): Use print_simple_rtl.
9015         * unroll.c (loop_iterations): Use print_simple_rtl.
9016
9017 2000-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9018
9019         * pa.md (return, return_internal): Modify patterns to prevent regrename
9020         mucking with the return pointer.
9021
9022 2001-01-05  Richard Henderson  <rth@redhat.com>
9023
9024         * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change.
9025
9026 Fri Jan  5 16:34:18 2001  Nick Clifton  <nickc@redhat.com>
9027
9028         * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster
9029         version supplied by Matteo Frigo.
9030
9031 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9032
9033         * cpp.texi: Update for -MQ.
9034         * cppinit.c (cpp_create_reader): Always create pfile->deps.
9035         (cpp_cleanup): Always free pfile->deps.
9036         (initialize_dependency_output): Don't create pfile->deps.
9037         (cpp_handle_option): Similarly.
9038         (OPT_MQ): New.
9039         * gcc.c (cpp_options): Handle -MQ.
9040         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
9041         * mkdeps.c (base_name): Remove.
9042         (deps_init): Don't allocate vector space until it's needed.
9043         (deps_free): Only free vectors if allocated.
9044         (deps_add_target, deps_add_dep): Update for initial allocation.
9045         (deps_add_default_target): Don't strip to the base_name.
9046
9047 2001-01-05  DJ Delorie <dj@redhat.com>
9048
9049         * config/v850/v850.h (RETURN_ADDR_RTX): Define.
9050         (INIT_EXPANDERS): Define.
9051
9052         * config/v850/v850.c (struct machine_function): Define.
9053         (v850_save_machine_status): New function.
9054         (v850_restore_machine_status): New function.
9055         (v850_return_addr): New function.
9056         (v850_init_expanders): New function.
9057
9058         * config/v850/v850-protos.h: Add prototypes for v850_return_addr
9059         and v850_init_expanders.
9060
9061 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
9062
9063         * cpplib.h (struct cpp_reader): Add help_only field.
9064         * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
9065         (cpp_handle_option): Set pfile->help_only if we see -h,
9066         --help, -target-help, or --version.  Print version string but
9067         do not set help_only if we see -v or -version.  Make text
9068         printed by -v match that printed by (-)-version.
9069
9070         * cppmain.c (main): Exit after option parsing if
9071         pfile->help_only is true.
9072
9073         * toplev.c (independent_decode_option): Call print_version,
9074         then exit, if we see --version (but not -version).
9075         (print_version): Split lengthy message into two lines.
9076
9077 2001-01-05  Nick Clifton  <nickc@redhat.com>
9078
9079         * config/v850/v850.c (v850_encode_data_area): Use alloca to create
9080         temporary string for initialisation before calling ggc_alloc_string.
9081
9082 2001-01-06  Michael Hayes  <mhayes@redhat.com>
9083
9084         * rtl.h (print_simple_rtl): New.
9085         * print-rtl.c (print_simple_rtl): New.
9086         (flag_simple): New.
9087         (print_rtx): Disable printing of flags and modes, etc.,
9088         if `flag_simple` nonzero.
9089
9090 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
9091
9092         * function.c (fixup_var_refs): Use push_to_full_sequence where
9093         possible.
9094
9095 2001-01-05  Michael Meissner  <meissner@redhat.com>
9096
9097         * flags.h (flag_reorder_blocks): Add declaration.
9098         (flag_rename_block): Ditto.
9099
9100 2001-01-05  DJ Delorie  <dj@redhat.com>
9101
9102         * function.c (reorder_blocks): Make sure the flags are all reset
9103         before using them to mark blocks, else a second invocation will
9104         corrupt the block chain.
9105         (reorder_blocks_0): New, resets the flags.
9106
9107 Fri Jan  5 20:34:06 2001  J"orn Rennecke <amylaar@redhat.com>
9108
9109         * cse.c (find_comparison_args): Stop if the argument is known to
9110         be constant.
9111
9112 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
9113
9114         * config/sh/sh.md (movdf): When splitting load into pair of
9115         registers, don't clobber the register used in the address too
9116         early.
9117
9118 2001-01-05  Jeffrey Oldham  <oldham@codesourcery.com>
9119
9120         * varasm.c (mark_constant_pool): Improve initial comments.
9121         (mark_constants): Move marking of constants to mark_constant.
9122         (mark_constant): New function to recursively mark all constants
9123         referred to by a constant.
9124
9125 2001-01-05  Catherine Moore  <clm@redhat.com>
9126
9127         * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG.
9128
9129 2001-01-05  Phil Edwards  <pme@sources.redhat.com>
9130
9131         * cp/lang-options.h:  Bring comment in line with reality.
9132         * f/lang-options.h:  Likewise.
9133         * java/lang-options.h:  Likewise.
9134         * objc/lang-options.h:  Likewise.
9135         * ch/lang-options.h:  Likewise.
9136         * f/g77.texi:  And update the manual.
9137
9138 2001-01-05  Marek Michalkiewicz  <marekm@linux.org.pl>
9139             Denis Chertykov  <denisc@overta.ru>
9140
9141         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
9142         * config/avr/avr.c (avr_peep2_scratch_safe): New function.
9143         * config/avr/avr.md (all peepholes that request a scratch register):
9144         Call it, FAIL the peephole if not safe (in interrupt functions).
9145
9146 2001-01-05  Mark Mitchell  <mark@codesourcery.com>
9147
9148         * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now.
9149
9150 2001-01-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9151
9152         * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG):
9153         Define.
9154         * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ,
9155         BUILT_IN_CREAL and BUILT_IN_CIMAG.
9156         * c-common.c (c_common_nodes_and_builtins): Create builtin conjf,
9157         conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl.
9158         (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and
9159         BUILT_IN_CIMAG.
9160         * extend.texi: Document these builtins.
9161
9162 2001-01-05  Daniel Berlin  <dberlin@redhat.com>
9163
9164         * c-common.c (lang_get_alias_set): Say we know nothing of
9165         VECTOR_TYPE aliasing.
9166
9167         * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
9168
9169 2001-01-05  Bruce Korb  <bkorb@gnu.org>
9170
9171         * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to
9172         their x* equivalent versions for atexit-less systems
9173         * fixinc/fixincl.c(main): do not return from main() on atexit-less
9174         systems (or any other system any more).
9175
9176 2001-01-05  Richard Earnshaw  <rearnsha@arm.com>
9177
9178         * arm.md (ldmsi_postinc): Avoid use of match_dup between input and
9179         output operands.  Use arm_hard_register_operand for operand 4.
9180         (stmsi_postinc): Similarly.
9181         (ldmsi): Use arm_hard_register_operand for opernand 2.
9182         (stmsi): Similarly.
9183         * arm.c (arm_hard_register_operand): New function.
9184         * arm-protos.h (arm_hard_register_operand): Prototype it.
9185
9186         * arm.h (HARD_REGNO_RENAME_OK): Define.
9187
9188 Fri Jan  5 16:29:49 MET 2001  Jan Hubicka  <jh@suse.cz>
9189
9190         * simplify-rtx.c (cfc_args): add "unordered" field.
9191         (check_fold_consts): Set unordered field.
9192         (simplify_relational_operation): Simplify the unordered
9193         comparisons.
9194
9195         * reg-stack.c (swap_rtx_condition): Ensure that the transformation
9196         is valid.
9197
9198         * emit-rtl.c (try_split): Fix code to mark labels.
9199         * jump.c (mark_jump_label): Make global.
9200         * rtl.h (mark_jump_label): Declare.
9201
9202         * predict.c (estimate_probability): Handle unordred comparisons.
9203
9204 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9205
9206         * cpp.texi: Update for -MP.  Clarify behaviour of -MT.
9207         * cppinit.c (initialize_dependency_output):  Update.
9208         (cpp_finish): Output dummy targets for -MP.
9209         (OPT_MP): New.
9210         (cpp_handle_option): Handle -MP.  Don't quote -MT options.
9211         * cpplib.h (struct cpp_options): Add deps_phony_targets.
9212         * gcc.c (cpp_options): Update to handle -MP.
9213         * mkdeps.c (deps_add_target, deps_add_default_target): Update
9214         to quote only the default target.
9215         (deps_phony_targets): Insert a preceding newline.  Rename from
9216         deps_dummy_targets for consistency.
9217         * mkdeps.h: Update
9218
9219 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
9220
9221         * calls.c (emit_library_call_value_1): Support
9222         INIT_CUMULATIVE_LIBCALL_ARGS.
9223         * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
9224
9225 2001-01-04  Richard Henderson  <rth@redhat.com>
9226
9227         * c-decl.c (finish_struct): Detect flexible array members
9228         used in an inappropriate context.
9229         * c-typeck.c (really_start_incremental_init): Special case
9230         constructor_max_index for zero length arrays.
9231         (pop_init_level): Allow initialization of flexible array
9232         members.  Deprecate initialization of zero length arrays.
9233         Don't issue missing initializer warning for flexible array
9234         members or zero length arrays.
9235         (process_init_element): Don't dereference null DECL_SIZE.
9236         * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
9237         Don't abort for empty constructors.  Use size_binop
9238         (output_constructor): Add commentary regarding zero length
9239         array futures.  Abort if we try to initialize an array of
9240         unspecified length with a non-empty constructor in the middle
9241         of a structure.
9242
9243         * extend.texi (Zero Length): Update and clarify documentation
9244         on static initialization.
9245
9246 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9247
9248         * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR
9249         with more than 32767 words of local storage.
9250
9251 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9252
9253         * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support
9254         for 'abs', 'labs', and 'fabs'.
9255         (c4x_expand_builtin): Likewise.
9256         * config/c4x/c4x.h (enum c4x_builtins): Likewise.
9257
9258 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
9259
9260         * config/sh/sh.md (prget, prset): New insn types.
9261         (return delay slot): Dont' allow prset.
9262         (call, sfunc delay slot): Don't allow prget.
9263         (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives
9264         for prset and prget.
9265
9266 2001-01-05  Michael Hayes  <mhayes@redhat.com>
9267
9268         * loop.h (struct loop_reg): New.
9269         (struct loop_regs): Change to use array of `struct loop_reg'.
9270         * loop.c: Replace assortment of varrays with single regs array.
9271         (count_one_set): Delete may_not_move array argument
9272         and use regs array instead.  All caller's changed.
9273         (count_loop_regs_set): Delete may_not_move and single_usage
9274         arguments and use regs array instead.  All caller's changed.
9275         (find_single_use_in_loop): Replace usage array argument with pointer
9276         to regs structure.  All caller's changed.
9277         (loop_optimize): Delete `moved_once' array.
9278
9279 2001-01-05  Michael Hayes  <mhayes@redhat.com>
9280
9281         * loop.c (prescan_loop): Set loop_info->has_nonconst_call.
9282         Use it instead of loop_info->has_call for scanning loop mems.
9283         (check_dbra_loop): Replace loop_info->has_call test with
9284         loop_info->has_nonconst_call.
9285
9286 2000-01-04  Matthew Hiller  <hiller@redhat.com>
9287
9288         * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used
9289         for TARGET_SH3E.
9290
9291 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9292
9293         * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
9294         use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
9295
9296 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9297
9298         * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
9299         (flag_short_double, flag_short_wchar): Define.
9300         (c_common_nodes_and_builtins): Create many tree nodes shared
9301         between C and C++ here instead of in cp/decl.c and ...
9302         * c-decl.c (init_decl_processing): ... here.
9303         (SIZE_TYPE, WCHAR_TYPE): Don't define.
9304         (flag_short_double, flag_short_wchar): Don't define.
9305         (record_builtin_type): New function.
9306         (build_void_list_node): New function.
9307         * c-common.h (flag_short_double, flag_short_wchar,
9308         record_builtin_type, build_void_list_node): Declare.
9309
9310 Thu Jan  4 21:09:47 2001  J"orn Rennecke <amylaar@redhat.com>
9311
9312         * integrate.c (expand_inline_function): Don't put a virtual
9313         register into the reg map.
9314
9315         * function.c (fixup_var_refs_1): If force_operand didn't put
9316         the address into the target, move it there.
9317
9318 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
9319
9320         Special-case tree_decl/tree_list allocations.
9321         * ggc-page.c (OBJECT_PER_PAGE): Reimplement.
9322         (OBJECT_SIZE): New macro.
9323         (NUM_EXTRA_ORDER): Likewise.
9324         (extra_order_size_table): New variable.
9325         (NUM_ORDERS): New macro.
9326         (objects_per_page_table): New variable.
9327         (object_size_table): New variable.
9328         (G.pages): Use NUM_ORDERS to bound the array.
9329         (G.page_tails): Likewise.
9330         (DIV_ROUND_UP): Remove.
9331         (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
9332         (alloc_page): Use OBJECT_SIZE.
9333         (size_lookup): Don't make it const.
9334         (ggc_alloc): Use OBJECT_SIZE.
9335         (ggc_set_mark): Likewise.
9336         (ggc_get_size): Likewise.
9337         (init_ggc): Set up the object_size_table, objects_per_page_table,
9338         and adjust size_lookup.
9339         (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
9340         (ggc_pop_context): Use NUM_ORDERS.
9341         (clear_marks): Likewise.
9342         (sweep_pages): Likewise.
9343         (poison_pages): Likewise.
9344         (ggc_print_statistics): Use OBJECT_SIZE.
9345
9346 Thu Jan  4 15:54:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9347
9348         * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
9349         Only call array_size_for_constructor if last field and array type
9350         with no upper bound.
9351
9352 2001-01-04  Philip Blundell  <philb@gnu.org>
9353
9354         * config/arm/arm.c (arm_gen_constant): Prefer to emit constants
9355         from bit 31 downwards, if this requires no more insns.
9356         (count_insns_for_constant): New helper function for above.
9357
9358 2001-01-04  Alexandre Oliva  <aoliva@redhat.com>
9359
9360         * gencodes.c (output_predicate_decls): Remove empty initializer.
9361
9362 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
9363
9364         * tree.c (copy_node): Remove documentation about obstacks.
9365         (buidl1): Check that nobody tries to build 2-argument nodes this
9366         way.
9367
9368 2001-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9369
9370         * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and
9371         fp_high_losum_p.
9372
9373         * gencodes.c (output_predicate_decls): Fill empty initializer
9374         braces.
9375
9376 2001-01-04  Jakub Jelinek  <jakub@redhat.com>
9377
9378         * tradcpp.c (deps_file, print_deps_missing_files): New variables.
9379         (main): Handle -MG, -MD, -MMD.  Bail out if -MG is given without -M
9380         or -MM.
9381         (do_include): Handle missing headers like cpp0.
9382         * cppfiles.c (_cpp_execute_include): Don't prefix absolute header
9383         paths with first include pathname.  Don't strcat to uninitialized
9384         string.
9385
9386 2001-01-04  Bernd Schmidt  <bernds@redhat.com>
9387
9388         * regrename.c (regrename_optimize): Don't rename from frame pointer
9389         if frame_pointer_needed.
9390         (do_replace): Don't set ORIGINAL_REGNO to a hard register number.
9391         * config/ia64/ia64.c (emit_all_group_insn_barriers): New function.
9392         (ia64_reorg): Use it instead of scheduling if ! optimize.
9393         (errata_emit_nops): Properly call asm_noperands.
9394         (ia64_sched_reorder): Finish cycle if we see an asm.
9395         (ia64_variable_issue): Clear scheduling state after asms.
9396
9397 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9398
9399         * cpp.texi: Update for -MT.
9400         * cppinit.c (initialize_dependency_output): Add a default
9401         target if none has been given already.
9402         (no_tgt, OPT_MT): New.
9403         (cpp_handle_option): Handle -MT.  Update -M etc.
9404         * cpplib.h (struct cpp_options): Remove deps_target.
9405         * gcc.c (cpp_options): Handle -MT.
9406         * mkdeps.c (struct deps): Move from mkdeps.h.
9407         (deps_calc_target): Rename deps_add_default_target.  Add a
9408         default target if none has been specified already.
9409         * mkdeps.h (struct deps): Move to mkdeps.c.
9410         (deps_calc_target): Rename deps_add_default_target.
9411
9412 2000-01-03  Richard Henderson  <rth@redhat.com>
9413
9414         * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
9415         Remove dead code.
9416         * c-typeck.c (push_init_level): Move checks for flexible array
9417         members and zero length arrays ...
9418         (pop_init_level): ... here.  Silently discard empty initializations.
9419         Remove dead code.
9420         * varasm.c (output_constructor): Update for sizeof change to
9421         zero-length arrays.
9422
9423         * extend.texi (Zero Length): Clarify semantics.
9424
9425 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
9426
9427         * configure.in (tm.h): Include isns-codes.h last.
9428         * configure: Rebuilt.
9429
9430 2001-01-03  Richard Henderson  <rth@redhat.com>
9431
9432         * config/alpha/alpha.md (addvsi3, addvdi3): New.
9433         (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
9434
9435 2001-01-03  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9436
9437         * tradcpp.c (main): Make sure finclude() is called with a valid
9438         indepth value while handling -include.
9439
9440 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
9441
9442         * gencodes.c (output_predicate_decls): New function.
9443         (main): Call it.
9444         * machmode.h (GET_MODE_MASK): Arrange for it to be defined
9445         even if it is not the first time machmode.h is #included.
9446         * config/sh/sh.c (fpul_operand): Declare MODE argument.
9447         * tm.texi (PREDICATE_CODES): Document predicate declarations.
9448         * gcc.texi (Copyright): Added 2001.
9449
9450 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9451
9452         * c-common.c (c_common_lang_init): New function.  Warn if format
9453         warning options which only have effects when used with -Wformat
9454         are used without -Wformat.
9455         * c-common.h (c_common_lang_init): Declare.
9456         * c-lang.c (lang_init): Call c_common_lang_init.
9457         * objc/objc-act.c (lang_init): Call c_common_lang_init.
9458
9459 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9460
9461         * configure.in: Check for the mktemp command.
9462         * configure: Regenerate.
9463         * gccbug.in: Use a separate temporary file $TEMP0 for one use of
9464         $TEMP.  Create temporary files with mktemp, if available at
9465         configure time; otherwise use set -C.  Remove temporary files
9466         before exit.
9467
9468 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9469
9470         * configure.in: Require at least texinfo 4.0.  Check for whether
9471         Pod::Man is sufficiently recent to regenerate GCC manpages.
9472         * configure:  Regenerate.
9473         * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
9474         on #!.
9475         (GENERATED_MANPAGES): Define.
9476         (generated-manpages): New target.  Depend on cpp.1 as well as
9477         gcov.1.
9478         (install-man): Depend on $(GENERATED_MANPAGES) (defined by
9479         configure to generated-manpages or empty) rather than on the
9480         manpages directly.  Remove execute permission from installed
9481         gcov.1 as well as cpp.1.
9482         * cpp.1, gcov.1: Regenerate.
9483
9484 2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9485
9486         * builtins.c (expand_builtin_strncmp): Use host_integerp and
9487         tree_low_cst.  Allow using cmpstrsi in more cases.
9488
9489 Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9490
9491         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
9492         sized types.
9493
9494 Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
9495
9496         * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
9497         * Makefile.in (HOST_CFLAGS): Mention build-make.
9498
9499 Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9500
9501         * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
9502         as JUMP_INSN.
9503
9504 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
9505
9506         * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
9507         a REG rtx.
9508
9509         * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
9510         callers changed.
9511
9512         * alias.c (throughout): Use ORIGINAL_REGNO when accessing
9513         reg_base_value and reg_known_value arrays.
9514         (init_alias_analysis): Add more cases to detect known values.
9515         * sched-deps.c (deps_may_trap_p): New function.
9516         (sched_analyze_2): Use it.
9517
9518 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
9519
9520         * combine.c (simplify_shift_const): Even if we're sign-extracting,
9521         don't discard an ASHIFTRT if we're shifting in a wider mode.
9522
9523 2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9524
9525         * toplev.c (rest_of_compilation): Don't print basic block information
9526         when CFG isn't up to date.
9527
9528 2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
9529
9530         * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
9531         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
9532         (UNALIGNED_SHORT_ASM_OP): Define.
9533         (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
9534
9535 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
9536
9537         * fold-const.c (fold_convert): Fix typo.
9538
9539 2001-01-02  Richard Henderson  <rth@redhat.com>
9540
9541         * c-common.h (ASM_INPUT_P): New.
9542         * c-parse.in (asm): Set it when needed.
9543         * c-semantics.c (genrtl_asm_stmt): Test it instead of the
9544         existance of an operand.
9545
9546 Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
9547
9548         * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
9549         (dwarf2out_frame_debug_expr): Likewise.
9550         (mem_loc_descriptor): Handle PRE and POST_MODIFY.
9551
9552 Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
9553
9554         * i386.c (ix86_split_to_parts): Return number of part required;
9555         handle TFmodes.
9556         (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
9557         TFmodes.
9558         (ix86_split_long_move): Use number of part returned
9559         by ix86_split_to_parts
9560         * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
9561         New macros.
9562         (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
9563         (LONG_DOUBLE_TYPE_SIZE): Change from constant.
9564         (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
9565         (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
9566         (ALIGN_MODE_128): Add TFmode.
9567         (IS_STACK_MODE): Likewise.
9568         (HARD_REGNO_NREGS): TFmode needs 3 registers.
9569         (HARD_REGNO_OK): Support TFmodes.
9570         (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
9571         * i386.md (scheduler definitions): Use memory operand to determine
9572         fst/fld instructions; use mode attribute to determine real mode of
9573         the instruction.
9574         (*tf): New patterns, expanders and splitters; based on XFmode patterns.
9575         * invoke.texi (128bit-long-double, 96bit-long-double): Document.
9576
9577 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
9578
9579         * tree.def (TRUTH_NOT_EXPR): Improve documentation.
9580
9581 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
9582
9583         * expr.c (store_constructor_field): Update ALIGN before calling
9584         store_constructor.
9585
9586 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
9587
9588         * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
9589         host_integerp.
9590
9591 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
9592
9593         * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
9594         incomplete type.
9595
9596 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
9597
9598         * c-decl.c (start_function): Don't warn on third parameter to main.
9599
9600 2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9601
9602         * tsystem.h: Define HAVE_DECL_GETOPT.
9603
9604 2001-01-02  Philip Blundell  <pb@futuretv.com>
9605
9606         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
9607         of input operand.
9608
9609 2001-01-02  Richard Henderson  <rth@redhat.com>
9610
9611         * alpha.md (*ze_and_ne): Duplicate insn condition to split.
9612
9613 2001-01-02  Andreas Jaeger  <aj@suse.de>
9614
9615         * c-decl.c (c_decode_option): Remove support of
9616         -Wmissing-noreturn.
9617
9618         * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
9619         (W_options): Add -Wmissing-noreturn here.
9620
9621         * flow.c: Define lang_missing_noreturn_ok_p.
9622         (check_function_return_warnings): Use it.
9623
9624         * c-common.h: Declare lang_missing_noreturn_ok_p.
9625
9626         * c-lang.c (c_missing_noreturn_ok_p): New function.
9627         (lang_init): Set lang_missing_noreturn_ok_p.
9628
9629         * invoke.texi (Warning Options): Document this.
9630
9631 2000-12-27  Phil Edwards  <pme@sources.redhat.com>
9632
9633         * extend.texi (C++ Extensions):  New node for C++ attributes;
9634         describe init_priority and com_interface.
9635         * invoke.texi:  Remove -finit-priority as it now has zero effect.
9636         * install.texi:  Fix xref syntax.
9637         * md.texi:  Likewise.
9638
9639 Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9640
9641         * config.gcc (sparc64-wrs-vxworks*): New case.
9642         * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
9643
9644         * config/sparc/sparc.c (sparc_override_options): Do support different
9645         pointer and architecture size.
9646         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
9647         (POINTERS_EXTEND_UNSIGNED): Define.
9648         (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
9649         (FUNCTION_MODE): Define to be Pmode.
9650         * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
9651
9652         * function.c (expand_function_end): Properly handle DECL_RESULT
9653         and copy when ptr_mode != Pmode.
9654         * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
9655
9656 2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9657
9658         * c-common.c (c_common_nodes_and_builtins): Set prototype
9659         parameters for __builtin_fputs, __builtin_fputc and
9660         __builtin_fwrite.  Don't declare plain fputc as a builtin.
9661
9662 2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9663
9664         * loop.c (add_label_notes): Increment the label usage count when
9665         a note is added to an insn which refers to a CODE_LABEL.
9666         * gcse.c (add_label_notes): Likewise.
9667
9668 2001-01-01  Andreas Jaeger  <aj@suse.de>
9669
9670         * loop.c (scan_loop): Use xmalloc to allocate movables.
9671
9672 2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
9673
9674         * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
9675         * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
9676         * reload1.c (REGISTER_MOVE_COST): Likewise.
9677         * regclass.c (REGISTER_MOVE_COST): Likewise.
9678         (move_cost, may_move_in_cost, may_move_out_cost): Add mode
9679         dimension.  Adjust all users.
9680         (init_reg_sets_1): Iterate on all modes.
9681         * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
9682         * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
9683         * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
9684         * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
9685         * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
9686         * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
9687         * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
9688         * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
9689         * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
9690         * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
9691         * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
9692         * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
9693         * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
9694         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
9695         * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
9696         * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
9697         * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
9698         * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
9699         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
9700         * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
9701         * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
9702         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
9703         * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
9704         * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
9705         * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
9706         * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
9707         * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
9708
9709 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
9710
9711         * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
9712         arg VARIES_P.  Call it with extra arg.
9713         (true_dependence): Likewise.
9714         * rtl.h (rtx_addr_can_trap_p): Declare.
9715         (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
9716         prototypes.
9717         * rtlanal.c (rtx_addr_can_trap_p): No longer static.
9718         (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
9719         pic offset table register if it's zero.  All callers changed.
9720         (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
9721
9722 Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9723
9724         * explow.c (convert_memory_address, case SYMBOL_REF): Copy
9725         STRING_POOL_ADDRESS_P.
9726
9727         * config/sparc/sparc.c (input_operand): Properly test for short op.
9728
9729         * config.gcc (sparc-*-elf): Include sparc/sol2.h.
9730         (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
9731         (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
9732         * config/sparc/elf.h: No longer include sol2.h.
9733         * config/sparc/lifeelf.h: No longer include sparc/elf.h.
9734         * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
9735
9736         * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
9737
9738 2001-01-01  Michael Hayes  <mhayes@redhat.com>
9739
9740         * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
9741         (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
9742         (record_initial): Likewise.
9743         * unroll.c (copy_loop_body, loop_iterations): Likewise.
9744         (remap_split_bivs): Likewise.
9745
9746 2001-01-01  Michael Hayes  <mhayes@redhat.com>
9747
9748         * loop.c (loop_ivs_free): New function.
9749         (strength_reduce): Break out from...
9750
9751 2001-01-01  Michael Hayes  <mhayes@redhat.com>
9752
9753         * loop.h (struct iv): New.
9754         (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
9755         (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
9756         'reg_biv_class' fields with 'regs' and 'n_regs'.
9757         (struct ivs): Rename 'loop_iv_list' field to 'list'.
9758         * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
9759         * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
9760
9761 2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
9762
9763         * resource.c (mark_referenced_resources): Abort() before
9764         attempting to mark a pseudo register.
9765         (mark_set_resources): Likewise.
9766
9767 2001-01-01  Michael Hayes  <mhayes@redhat.com>
9768
9769         * loop.h (REG_IV_CLASS): New accessor macro.
9770         * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
9771         * unroll.c (REG_IV_CLASS): Likewise.
9772
9773 See ChangeLog.4 for earlier changes.