OSDN Git Service

* i386.md (prefetch): Fix for 64bit mode.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2
3         * i386.md (prefetch): Fix for 64bit mode.
4         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
5
6         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
7
8 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9
10         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
11
12 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
13
14         * ginclude/varargs.h: Replace with stub which issues #error.
15         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
16         __builtin_va_start.
17
18         * builtins.def (BUILT_IN_VARARGS_START): Delete.
19         (BUILT_IN_VA_START): New.
20         * builtins.c (expand_builtin_va_start): Eliminate first
21         argument and code to implement pre-ISO varargs.
22         (std_expand_builtin_va_start): Ignore first argument; it is
23         always 1.
24         (expand_builtin): Handle BUILT_IN_VA_START and
25         BUILT_IN_STDARG_START identically.  Delete
26         BUILT_IN_VARARGS_START case.
27
28         * function.c (assign_parms): Delete hide_last_arg and all
29         its uses.
30         (mark_varargs): Delete function.
31         * function.h (struct function): Delete 'varargs' bit.
32         (current_function_varargs): Delete macro.
33         * tree.h: Don't declare mark_varargs.
34
35         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
36         (c_expand_body): Don't call mark_varargs.
37         * c-objc-common.c: Handle BUILT_IN_VA_START and
38         BUILT_IN_STDARG_START identically.  Delete
39         BUILT_IN_VARARGS_START case.
40         * c-tree.h: Don't declare c_mark_varargs.
41         * c-parse.in: Remove grammar rules for '&...' (which has been
42         commented out since before 2.7.2) and for '...' in K+R
43         argument declarations.
44
45         * builtins.c, function.c, integrate.c, sibcall.c,
46         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
47         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
48         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
49         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
50         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
51         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
52         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
53         config/stormy16/stormy16.c: Delete all references to
54         current_function_varargs, and code predicated on that flag.
55
56         * config/alpha/alpha.c (alpha_va_start),
57         config/arc/arc.c (arc_va_start),
58         config/i386/i386.c (ix86_va_start),
59         config/mips/mips.c (mips_va_start),
60         config/mn10300/mn10300.c (mn10300_va_start),
61         config/rs6000/rs6000.c (rs6000_va_start),
62         config/s390/s390.c (s390_va_start),
63         config/sh/sh.c (sh_va_start),
64         Ignore first argument; it is always 1.
65
66         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
67         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
68         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
69         Delete m68hc11_va_start.
70         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
71         No need to define EXPAND_BUILTIN_VA_START.
72
73         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
74         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
75
76 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
77
78         PR optimization/7153
79         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
80         dies in more than one insn.
81
82 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
83
84         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
85
86 2002-07-15  Michael Matz  <matz@suse.de>,
87             Daniel Berlin  <dberlin@dberlin.org>,
88             Denis Chertykov  <denisc@overta.ru>
89
90         Add a new register allocator.
91
92         * ra.c: New file.
93         * ra.h: New file.
94         * ra-build.c: New file.
95         * ra-colorize.c: New file.
96         * ra-debug.c: New file.
97         * ra-rewrite.c: New file.
98
99         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
100         (ra-rewrite.o): New .o files for libbackend.a.
101         (GTFILES): Add basic-block.h.
102
103         * toplev.c (flag_new_regalloc): New.
104         (f_options): New option "new-ra".
105         (rest_of_compilation): Call initialize_uninitialized_subregs()
106         only for the old allocator.  If flag_new_regalloc is set, call
107         new allocator, instead of local_alloc(), global_alloc() and
108         friends.
109
110         * doc/invoke.texi: Document -fnew-ra.
111         * basic-block.h (FOR_ALL_BB): New.
112         * config/rs6000/rs6000.c (print_operand): Write small constants
113         as @l+80.
114
115         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
116         (df_reg_table_realloc): Make size at least as large as max_reg_num().
117         (df_insn_table_realloc): Size argument now is absolute, not relative.
118         Changed all callers.
119
120         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
121         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
122
123         2002-06-20  Michael Matz  <matz@suse.de>
124
125         * df.h (struct ref.id): Make unsigned.
126         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
127
128         2002-06-13  Michael Matz  <matz@suse.de>
129
130         * df.h (DF_REF_MODE_CHANGE): New flag.
131         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
132         involving subregs with invalid mode changes, when
133         CLASS_CANNOT_CHANGE_MODE is defined.
134
135         2002-05-07  Michael Matz  <matz@suse.de>
136
137         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
138
139         2002-05-03  Michael Matz  <matz@suse.de>
140
141         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
142
143         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
144
145         * regclass.c (regclass): Work with all regs which have sets or
146         refs.
147         (reg_scan_mark_refs): Count regs inside (clobber ...).
148
149         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
150
151         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
152         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
153         add new refs.
154         (df_bb_refs_update): Don't clear insns_modified here, ...
155         (df_analyse): ... but here.
156
157         * sbitmap.c (dump_sbitmap_file): New.
158         (debug_sbitmap): Use it.
159
160         * sbitmap.h (dump_sbitmap_file): Add prototype.
161
162         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
163
164         * df.c (df_insn_modify): Grow the UID table if necessary, rather
165         than assume all emits go through df_insns_modify.
166
167         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
168
169         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
170         increase REG_N_REFS (like flow does), so that regclass doesn't
171         think a reg is useless, and thus, not calculate a class, when it
172         really should have.
173
174         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
175
176         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
177         dataflow analysis.
178
179 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
180
181         PR middle-end/7245
182         * config/i386/i386.c (const_int_1_31_operand): New.
183         * config/i386/i386.h (PREDICATE_CODES): Add it.
184         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
185         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
186         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
187
188 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
189
190         PR target/7282
191         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
192         (floatunssidf2): Likewise.
193         (floatsidf_ppc64): New insn_and_split.
194         (floatunssidf_ppc64): Likewise.
195
196 2002-07-14  Andreas Jaeger  <aj@suse.de>
197
198         * config.gcc (sh64): Remove unused
199         target_requires_64bit_host_wide_int.
200
201 2002-07-12  Roger Sayle  <roger@eyesopen.com>
202
203         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
204         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
205         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
206         whether clear_by_pieces should be used to clear storage.
207         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
208
209         * doc/tm.texi: Document these two new target macros.
210
211 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
212
213         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
214         the scratch register.
215         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
216         of it, forbid reload to use it.
217
218 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
219
220         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
221         usage on 64-bit hosts, return value was truncated to 32 bits.
222
223 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
224
225         * simplify-rtx.c (simplify_subreg): Handle floating point
226         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
227         the element mode is requested, compute a subreg with an
228         integer mode of the same size as the element mode first.
229
230 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
231
232         * combine.c (try_combine): When converting a paradoxical subreg
233         to an extension, take LOAD_EXTEND_OP into account.
234
235 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
236
237         * config.gcc (mips-sgi-irix6*o32): New configuration.
238
239         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
240         configurations.
241         * configure: Regenerate.
242
243         * config/mips/iris6-o32-as.h: New file.
244         * config/mips/iris6-o32.h: New file.
245
246         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
247         (NM_FLAGS): Define.
248         (HAVE_AS_SHF_MERGE): Undefine.
249
250         * config/mips/t-iris5-as: New file.
251         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
252
253         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
254         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
255         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
256         dp-bit.c, fp-bit.c): Move ...
257         * config/mips/t-iris5-6: ... here.
258         New file, shared by IRIX 5 and IRIX 6.
259         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
260         mips-sgi-irix5*): Use it.
261
262         * config/mips/iris6.h: Remove duplicate comment.
263
264         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
265         !TARGET_IRIX6]: Define.
266         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
267
268         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
269
270 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
271
272         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
273         and delete code to force constant to register.
274         * pa-protos.h (adddi3_operand): Add prototype.
275         * pa.c (adddi3_operand): New function.
276
277 2002-07-11  Roger Sayle  <roger@eyesopen.com>
278
279         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
280         non-ANSI builtin functions.
281
282 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
283
284         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
285         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
286         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
287         (gen_const_vector_0): Use it.
288
289 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
290
291         * pa.md (adddi3): For 32-bit targets, force constants to a register
292         if they don't fit in an 11-bit immediate.  Change insn predicate to
293         arith11_operand.  Remove comment.
294         * pa.c (cint_ok_for_move): Fix comment.
295         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
296         targets.
297
298 2002-07-11  Tim Josling  <tej@melbpc.org.au>
299
300         Remove front end hard coding from gengtype.c.
301
302         * Makefile.in
303         (STAGESTUFF): add gtyp-gen.h
304         (GTFILES): Remove front end specific files.
305         (GTFILES_FILES_LANGS): New, from configure..
306         (GTFILES_FILES_FILES): Likewise.
307         (GTFILES_LANG_DIR_NAMES): Likewise.
308         (GTFILES_SRCDIR): Likewise.
309         (gtyp-gen.h): Build from configure information.
310         (s-gtype): Remove command line parameters from gengtype.
311         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
312         (mostlyclean): Delete files generated by and for gengtype.
313
314         * c-config-lang.in: New file.
315
316         * configure.in (all_gtfiles_files_langs): New. Accumulate files
317         for each language.
318         (all_gtfiles_files_files): New. Accumulate language for each file
319         accumulated.
320         (gtfiles): Pick up value for C.
321         (srcdir): AC-SUBST this variable.
322         (all_gtfiles_files_langs): AC-SUBST this variable.
323         (all_gtfiles_files_files): AC-SUBST this variable.
324
325         * configure: Regenerate.
326
327         * gengtype-lex.l (parse_file): Make parameter const.
328
329         * gengtype.c (toplevel): include gtyp-gen.h.
330         (BASE_FILE_<language> unnamed enum): Delete.
331         (lang_names): Delete (replaced by gtyp-gen.h)
332         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
333         all references.
334         (NUM_GT_FILES): New.
335         (NUM_LANG_FILES): New.
336         (srcdir_len): New.
337         (NUM_BASE_FILES): Change calculation.
338         (open_base_files): Change prototype to avoid warning.
339         (startswith): Delete.
340         (get_file_basename): Iterate through generated language list not
341         hard coded list.
342         (get_base_file_bitmap): Use generated list of files and languages.
343         (close_output_files): Add prototype to rmove warning.
344         (main): Iterate through list of generated files from gtyp-gen.h
345         rather than command line paramaters.  Ignore duplicated file
346         names.
347
348         * gengtype.h (parse_file): Amend prototype for const parameter.
349
350         * doc/sourcebuild.texi: Document gtfiles variable.
351
352         * doc/gty.texi: Document changes to gtfiles variable for front
353         ends.
354
355         * objc/config-lang.in (gtfiles): Add files needed for objc front
356         end.
357
358 2002-07-10  Roger Sayle  <roger@eyesopen.com>
359
360         PR c/2454
361         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
362         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
363
364 2002-07-10  Roger Sayle  <roger@eyesopen.com>
365             Zack Weinberg <zack@codesourcery.com>
366
367         * builtins.def: Make the argument types of abort and exit
368         independent of the front-end.
369
370 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
371
372         * config/rs6000/linux64.h (ASM_SPEC): Define.
373
374 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
375
376         * config/rs6000/rs6000.c (emit_frame_save): New.
377         (rs6000_frame_related): Replace reg2 before reg.
378         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
379         and eh_return registers.
380
381 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
382
383         Revert all patches for optimization of Complex .op. Real.
384         * complex_part_zero_p: Remove
385         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
386         with x.
387         * expand_cmplxdiv_wide: Ditto.
388         * expand_binop: Ditto.
389
390 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
391
392         * config/avr/avr.md: Fix two 0x80000000 constants to make them
393         negative also on 64-bit hosts.
394
395         Default to -fno-reorder-blocks when optimizing for size.
396         * config/avr/avr-protos.h (avr_optimization_options): Declare.
397         * config/avr/avr.c (avr_optimization_options): New function.
398         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
399
400         Optimize returning from simple functions.
401         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
402         * config/avr/avr.c (avr_simple_epilogue): New function.
403         * config/avr/avr.md (return): New insn.
404
405 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
406
407         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
408         HAS_INIT_SECTION to protection.
409
410 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
411
412         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
413         deprecated.
414
415 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
416
417         * combine.c (gen_lowpart_for_combine): Handle vector modes.
418         Supply non-VOID mode to simplify_gen_subreg.
419
420 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
421
422         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
423
424 2002-07-10  Jeffrey A Law  <law@redhat.com>
425
426         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
427         as appropriate.
428
429         * mn10200.c (expand_epilogue): Fix test to determine which scratch
430         register to use.
431
432 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
433
434         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
435         Get mode from dest.
436         If simplify_gen_subreg fails, try next equivalent.
437
438 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
439
440         * diagnostic.h: #include location.h
441         (location_t): Move definition to..
442         * location.h: ... here.  New file.
443         * tree.h: #include location.h
444         (DECL_SOURCE_LOCATION): New macro.
445         (DECL_SOURCE_FILE): Use.
446         (DECL_SOURCE_LINE): Likewise.
447         (struct tree_decl): REplace filename and linenum with locus.
448         * Makefile.in (TREE_H): add location.h
449         (diagnostic.o): Depends on gt-location.h
450         (gt-location.h): Depends on s-gtype
451
452 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
453
454         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
455         TARGET_OS_CPP_BUILTINS.
456         * config/rs6000/aix31.h: Likewise.
457         * config/rs6000/aix41.h: Likewise.
458         * config/rs6000/aix43.h: Likewise.
459         * config/rs6000/aix51.h: Likewise.
460         * config/rs6000/beos.h: Likewise.
461         * config/rs6000/darwin.h: Likewise.
462         * config/rs6000/eabi.h: Likewise.
463         * config/rs6000/eabisim.h: Likewise.
464         * config/rs6000/linux.h: Likewise.
465         * config/rs6000/linux64.h: Likewise.
466         * config/rs6000/lynx.h: Likewise.
467         * config/rs6000/mach.h: Likewise.
468         * config/rs6000/rtems.h: Likewise.
469         * config/rs6000/sysv4.h: Likewise.
470         * config/rs6000/vxppc.h: Likewise.
471
472 2002-07-09 Devang Patel <dpatel@apple.com>
473         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
474         Do not allow ObjC objects as a parameter type for Objective-C methods.
475         My previous patch restricted  'struct' also.
476
477 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
478
479         * cpperror.c (cpp_error): Default to directive_line within
480         directives here.
481         * cppexp.c (cpp_interpret_integer): Only use traditional
482         number semantics in directives.
483         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
484         (do_include_common): Similarly.
485         * cpptrad.c (scan_out_logical_line): Implement accurate
486         quoting of <> in #include.
487         * doc/cpp.texi: Update.
488
489 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
490                           J"orn Rennecke <joern.rennecke@superh.com>
491
492         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
493         * sh.md (attribute issues): Replace with:
494         (attribute pipe_model).  All users changed.
495         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
496         All users changed.
497         (function units sh5issue, sh5fds): New.
498         (attribute is_mac_media): New.
499         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
500         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
501         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
502         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
503         (call_media, call_value_media, sibcall_media): Likewise.
504         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
505         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
506         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
507         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
508         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
509         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
510         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
511         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
512         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
513         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
514         (truncdfsf2_media): Likewise.
515         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
516         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
517
518 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
519
520         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
521         * sh.c (general_extend_operand, inqhi_operand): New functions.
522         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
523         alternatives using 'N' modifier.  Add type.
524         (adddi3z_media): Likewise.  Enable generator function generation.
525         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
526         exact predicates / constraints.  Add type.
527         (subsi3): Allow 0 for SHMEDIA.
528         (udivsi3_i4_media): Use match_operand for input values
529         rather than hard registers.
530         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
531         unnecessarily through hard registers.  Keep copies of pseudo
532         registers outside of the libcall sequence.
533         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
534         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
535         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
536         (extendhidi2, extendqidi2): Likewise.
537         (andsi3_compact): Name.
538         (andcdi3): Enable generator function generation.
539         (zero_extendhisi2, zero_extendqisi2): Rename to
540         (zero_extendhisi2_compact, zero_extendqisi2_compact).
541         (extendhisi2, extendqisi2): Rename to
542         (extendhisi2_compact, extendqisi2_compact).
543         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
544         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
545         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
546         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
547         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
548         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
549         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
550         (shmedia32_initialize_trampoline_big): Likewise.
551         (shmedia32_initialize_trampoline_little): Likewise.
552         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
553         (negdi2): Remove spurious T clobber.
554         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
555         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
556         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
557         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
558         (ic_invalidate_line_media): Write back data cache before invalidating
559         instruction cache.  Add type.
560         (movsf_media): Sign-extend when the destination is a general
561         purpose register.  Add type.
562         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
563         (casesi_worker_0+1): Only increment ref count for proper label.
564         (casesi_worker_0+2): Likewise.
565
566 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
567
568         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
569
570 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
571
572         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
573         from Pmode to ptr_mode.
574         (get_exception_pointer): Ditto.
575         (connect_post_landing_pads): Ditto.
576         (dw2_build_landing_pads): Ditto.
577
578 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
579         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
580         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
581         (handle_pragma_redefine_extname): Change to use new function.
582
583 2002-07-08  Roger Sayle  <roger@eyesopen.com>
584
585         * combine.c (combine_simplify_rtx): Add an explicit cast
586         to avoid signed/unsigned comparison warning.
587         (simplify_if_then_else): Likewise.
588         (extended_count): Likewise.
589         (simplify_shift_const): Likewise.
590         (simplify_comparison): Likewise.
591
592 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
593
594         * config/mips/mips.md: Add imadd type.  Update scheduler description
595         to use imadd as well as imul.
596         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
597         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
598         (*mul_sub_si): Likewise for first alternative.  Change second
599         alternative from imul to multi.
600
601 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
602
603         * c-common.c (c_common_post_options): Update prototype;
604         don't init backends if preprocessing only.
605         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
606         * langhooks.h (struct lang_hooks): Update post_options to
607         return a boolean.
608         * toplev.c (parse_options_and_default_flags, do_compile,
609         lang_independent_init): Update prototypes.  Allow the
610         front end to specify that there is no need to initialize
611         the back end.
612         (general_init): Move call to hex_init here...
613         (toplev_main): ...from here.  Pass flag for back end init
614         suppression.
615
616 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
617
618         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
619         (PREDICATE_CODES): Add entries for equality_comparison_operator,
620         greater_comparison_operator and less_comparison_operator.
621         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
622         more operators.
623         (equality_comparison_operator): New function.
624         (greater_comparison_operator, less_comparison_operator): Likewise.
625         * sh.md (beq_media_i): Disable generator function generation.
626         Use match_operator to handle a whole class of comparisons.  Add
627         modifier in output template to provide branch prediction.  Add type.
628         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
629         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
630         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
631         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
632
633 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
634
635         Emit MMIX function prologue and epilogue as rtl.
636         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
637         not unprototyped get_hard_reg_initial_val.
638         ("call_value", "nonlocal_goto_receiver"): Ditto.
639         ("return"): Make define_expand.  Move real insn to...
640         ("*expanded_return"): New pattern.
641         ("prologue", "epilogue"): New define_expands.
642         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
643         (struct machine_function): New member in_prologue.
644         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
645         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
646         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
647         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
648         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
649         (LOCAL_REGNO): Define.  Adjust comment.
650         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
651         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
652         leaf_function_p.
653         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
654         the prologue.
655         (mmix_target_asm_function_prologue): Make static.  Just mark that
656         the prologue is being emitted.  Move guts to...
657         (mmix_expand_prologue): New function.  Adjust for emitting
658         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
659         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
660         \n.  Move guts to...
661         (mmix_expand_epilogue): New function.  Adjust for emitting
662         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
663         (mmix_target_asm_function_end_prologue): Mark that the prologue
664         has ended.
665         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
666         (mmix_conditional_register_usage): Improve comments.
667         (mmix_local_regno): New function.
668         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
669         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
670         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
671         (mmix_get_hard_reg_initial_val): Ditto.
672
673 2002-07-06  Andreas Jaeger  <aj@suse.de>
674
675         * toplev.c (set_fast_math_flags): Don't use ISO C style function
676         definitions.
677         * gengtype.c (open_base_files): Likewise.
678         (close_output_files): Likewise.
679         * tracer.c (find_best_predecessor): Likewise.
680         (find_best_successor): Likewise.
681         (ignore_bb_p): Likewise.
682
683 2002-07-05  Roger Sayle  <roger@eyesopen.com>
684
685         PR c++/7099
686         * builtin-attrs.def: Define new attribute lists for use in
687         builtins.def.
688         * builtins.def [DEF_BUILTIN]: Modify to take an additional
689         ATTRS argument, an enumerated value defined in builtin-attrs.def
690         that represents the attribute list for the builtins.  Modify
691         all builtin functions to pass an appropriate attribute list.
692         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
693         their required noreturn attributes.
694         * tree.h (enum_builtin_function): Ignore the additional parameter
695         to DEF_BUILTIN.
696         * builtins.c (built_in_names): Likewise.
697         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
698         argument with a tree representing the functions attribute list.
699         Pass this "attrs" argument to builtin_function.  No longer handle
700         the noreturn_p processing manually.
701         (built_in_attributes): Move the definitions from builtin-attrs.def
702         before c_common_nodes_and_builtins.
703         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
704         DEF_BUILTIN, passing it to both builtin_function and the changed
705         builtin_function_2.
706
707         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
708         __builtin__exit and __builtin__Exit.
709
710 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
711
712         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
713         QI mode registers in soft registers.
714         ("zero_extendqihi2"): Do not take into account soft registers
715         for register allocation (use '*' constraint).
716
717 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
718
719         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
720         it is dead.
721         ("*ashrsi3"): Likewise.
722         ("*lshrsi3"): Likewise.
723
724 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
725
726         * genautomata.c (output_max_insn_queue_index_def): Take latencies
727         into account.
728
729 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
730
731         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
732         address computation and memory moves.
733
734 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
735
736         PR c++/6706
737         * dwarfout.c (output_reg_number): Fix warning message.
738         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
739         before using it.
740
741 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
742
743         * gcc/gcc.c (asm_debug): Move initialization ...
744         (init_spec): ... here.
745
746 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
747
748         * c-parse.in (extdef): Append ';'.
749         (old_style_parm_decls): Append ';'.
750
751 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
752
753         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
754         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
755         to gcc_cv_as_gstabs_flag.
756         * configure: Rebuilt.
757
758 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
759
760         * ggc.h (ggc_add_root): Document as obsolete.
761
762 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
763
764         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
765         (mshflo_w): Likewise.
766
767 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
768
769         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
770         vector mode subregs of constants to finding integer mode
771         subregs of constants.
772         * cse.c (cse_insn): Use simplify_gen_subreg.
773         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
774         From a vector mode expression of different size than the
775         target mode.
776
777 2002-07-03  Eric Christopher  <echristo@redhat.com>
778
779         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
780         * config/mips/mips.h: Remove deprecated -m<processor> options
781         and cc1_cpu_spec associated.
782         (CONSTANT_ADDRESS_P): Fix last patch.
783         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
784         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
785         sunge_sf): Remove.
786
787 2002-07-03  Stan Shebs  <shebs@apple.com>
788
789         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
790         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
791         (CPP_SPEC): Remove insertion of APPLE_CC definition.
792
793 2002-07-03  Roger Sayle  <roger@eyesopen.com>
794
795         * combine.c (struct_undo): Change types of recorded substitutions
796         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
797         (do_SUBST_INT): Change types of the substitution from unsigned int
798         to int, to avoid compilation warning from SUBST_INT's only caller.
799
800         (make_extraction): Add cast to avoid compilation warning.
801         (force_to_mode): Remove cast to avoid compilation warning.
802
803 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
804             Jeff Law  <law@redhat.com>
805
806         * i386.md (length_immediate attribute): Fix typo.
807         (length_address attribute): Likewise.
808         (modrm attribute): Set it to 0 for immediate call instructions.
809         (jcc_1 pattern): Set modrm attribute to 0.
810         (jcc_2 pattern ): Likewise.
811         (jump pattern): Likewise.
812         (doloop_end_internal pattern): Explicitly set length.
813         (leave pattern): Fix typo.
814         (leave_rex64 pattern): Likewise.
815
816 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
817
818         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
819         in FPR as preference.
820         (fctiwz): Same.
821         (floatdidf2, fix_truncdfdi2): Same.
822         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
823         (floatditf2): Same.
824         (floatsitf2, fix_trunctfsi2): SImode in GPR.
825         (ctrdi): Remove FPR alternative and splitter.
826
827 2002-07-03  Will Cohen  <wcohen@redhat.com>
828
829         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
830
831 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
832
833         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
834         than UNITS_PER_WORD, unless this is little endian and the first unit
835         in this word.  Let extract_bit_field decide how to load an element.
836         Force arguments to matching mode.
837         (expand_vector_unop): Likewise.
838
839         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
840         consist of word_mode elements.
841         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
842         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
843         (build_unary_op): Allow vector types for BIT_NOT_EPR.
844         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
845         CONST_VECTOR.
846         * optabs.c (expand_vector_binop): Try to perform operation in
847         smaller vector modes with same inner size.  Add handling of AND, IOR
848         and XOR.  Reject expansion to inner-mode sized scalars when using
849         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
850         (expand_vector_unop): Try to perform operation in smaller vector
851         modes with same inner size.  Add handling of one's complement.
852         When there is no vector negate operation, try a vector subtract
853         operation.  Use simplify_gen_subreg on constants.
854         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
855         constants into smaller vectors with same inner mode, and to
856         integer CONST_DOUBLEs.
857
858 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
859
860         * c-parse.in (parsing_iso_function_signature): New variable.
861         (extdef_1): New, copied from...
862         (extdef): ... here.  Reset parsing_iso_function_signature.
863         (old_style_parm_decls):  Reset parsing_iso_function_signature.
864         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
865         Warn about ISO C style function definitions.
866         (nested_function, notype_nested_function): Reset
867         parsing_iso_function_signature.
868         (parmlist_2): Set parsing_iso_function_signature.
869
870         * doc/invoke.texi (-Wtraditional): Document new behavior.
871
872 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
873
874         * config.gcc (mips*el-*-*): Use tm_defines to set
875         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
876         * config/mips/little.h: Remove.
877
878 2002-07-02 Devang Patel <dpatel@apple.com>
879
880         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
881         object as parameter. Prevent something like 'NSObject' to be
882         used as the type for a method argument.
883
884 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
885
886         * cpptrad.c: Update comment.
887
888 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
889
890         * doc/cpp.texi: Update for traditional preprocessing changes.
891         * goc/cppopts.texi: Similarly.
892
893 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
894
895         * c-parse.in (designator): Enable designated initializers if ObjC.
896         (objcmessageexpr): Remove references to objc_receiver_context.
897         * objc/objc-act.h (objc_receiver_context): Remove decl.
898         * objc/objc-act.c (objc_receiver_context): Remove.
899         (lookup_objc_ivar): Test objc_method_context instead of
900         objc_receiver_context.
901
902 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
903
904         * sh.c (print_operand, case 'N'): Allow zero vector.
905         (arith_reg_or_0_operand): Likewise.
906         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
907         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
908         IOR, XOR, PLUS and SET and take their respective constant
909         ranges into account.
910         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
911         * sh.md (subdi3, subdi3_media): Allow zero operand.
912         (movv8qi_i+3): Only vector that is not split is the zero vector.
913         Fix operand 3 to simplify_subreg.
914         (movv2si_i): Split alternative 1.
915         (mshfhi_l_di_rev+1): New splitter.
916
917 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
918
919         PR preprocessor/7029
920         * cppinit.c (cpp_handle_option):  Suppress warnings with an
921         implicit "-w" for "-M" and "-MM".
922         * doc/cppopts.texi: Update.
923
924 2002-07-01  Roger Sayle  <roger@eyesopen.com>
925
926         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
927         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
928         builtin_function.
929
930 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
931
932         * README.Portability: Fix typos.
933
934 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
935
936         PR target/7177
937         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
938         of indirections for register inside sign-extended mem part.
939
940 2002-07-01  Roger Sayle  <roger@eyesopen.com>
941
942         * tree.h:  Modify builtin_function interface to take an extra
943         argument ATTRS, which is a tree representing an attribute list.
944
945         * c-decl.c (builtin_function): Accept additional parameter.
946         * objc/objc-act.c (builtin_function): Likewise.
947         * f/com.c (builtin_function): Likewise.
948         * java/decl.c (builtin_function): Likewise.
949         * ada/utils.c (builtin_function): Likewise.
950         * cp/decl.c (builtin_function): Likewise.
951         (builtin_function_1): Likewise.
952
953         * c-common.c (c_common_nodes_and_builtins): Pass an additional
954         NULL_TREE argument to builtin_function.  (builtin_function_2):
955         Likewise.
956         * cp/call.c (build_java_interface_fn_ref): Likewise.
957         * objc/objc-act.c (synth_module_prologue): Likewise.
958         * java/decl.c (java_init_decl_processing): Likewise.
959         * f/com.c (ffe_com_init_0): Likewise.
960
961         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
962         NULL_TREE argument to builtin_function.
963         * config/arm/arm.c (def_builtin): Likewise.
964         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
965         * config/i386/i386.c (def_builtin): Likewise.
966         * config/ia64/ia64.c (def_builtin): Likewise.
967         * config/rs6000/rs6000.c (def_builtin): Likewise.
968
969 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
970
971         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
972         * config/mips/t-isa3264: Likewise.
973         * config/mmix/t-mmix: Likewise.
974
975 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
976
977         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
978
979 2002-07-01  Roger Sayle  <roger@eyesopen.com>
980
981         PR opt/4046
982         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
983         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
984         B are truth values.
985
986 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
987
988         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
989
990 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
991
992         * README.Portability (Function prototypes): Give an example of
993         declaring and defining a function with no arguments.
994
995         * README.Portability (Function prototypes): Document new
996         variable-argument function macros.
997
998 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
999
1000         * sh.c (langhooks.h): Include.
1001         (sh_init_builtins, sh_media_init_builtins): New functions.
1002         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
1003         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
1004         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
1005         (builtin_description): New struct tag.
1006         (signature_args, bdesc): New arrays.
1007         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
1008         (print_operand): Add 'N' modifier.
1009         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
1010         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
1011         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
1012         (CONST_COSTS): Add special case for SHmedia AND.
1013         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
1014         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
1015         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
1016         target_operand can also be const or unspec.
1017         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
1018         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
1019         (attribute type): Add new types.
1020         (anddi3): Add splitter.
1021         (movdi_const_16bit+1): Add code to handle vector constants and
1022         bitmasks efficiently.
1023         (shori_media): Have generator function made.
1024         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
1025         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
1026         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
1027         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
1028         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
1029         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
1030         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
1031         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
1032         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
1033         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
1034         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
1035         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
1036         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
1037         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
1038         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
1039         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
1040         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
1041         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
1042         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
1043         (ftrv): Likewise.
1044
1045         (fpu_switch+1, fpu_switch+2): Remove constraint.
1046
1047 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
1048
1049         * tree.c (build_function_type_list): Update function comment.
1050         Rename first argument to return_type.
1051
1052 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1053
1054         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
1055         tradcif.y and related files.
1056
1057 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1058
1059         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
1060
1061 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1062
1063         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
1064
1065 2002-06-30  Devang Patel  <dpatel@apple.com>
1066
1067         * objc/objc-act.c (finish_file): Avoid finish_objc() if
1068         -fsyntax-only.
1069
1070 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
1071                           Frank Ch. Eigler  <fche@redhat.com>
1072                           Matthew Green  <mrg@redhat.com>
1073                           Richard Henderson <rtl@redhat.com>
1074                           Dave Hudson  <dave.hudson@ubicom.com>
1075                           Jeff Johnston  <jjohnstn@redhat.com>
1076                           Alan Lehotsky <apl@alum.mit.edu>
1077                           Bernd Schmidt  <bernds@redhat.com>
1078                           Graham Stott  <grahams@redhat.com>
1079
1080         * doc/extend.texi: Add ip2k port to description of attribute
1081         naked.
1082         * doc/install.texi (Specific): Add ip2k description.
1083         * doc/install-old.texi (Configurations): Add ip2k to possible
1084         cpu types.
1085         * doc/md.texi: Document ip2k constraints.
1086         * config/ip2k/crt0.S: New file.
1087         * config/ip2k/ip2k-protos.h: New file.
1088         * config/ip2k/ip2k.c: New file.
1089         * config/ip2k/ip2k.h: New file.
1090         * config/ip2k/ip2k.md: New file.
1091         * config/ip2k/libgcc.S: New file.
1092         * config/ip2k/t-ip2k: New file.
1093
1094 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
1095
1096         * config/mmix/mmix.md ("return"): New pattern.
1097         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
1098         (TARGET_USE_RETURN_INSN): New macros.
1099         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
1100         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
1101         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
1102         (MMIX_POP_ARGUMENT): New macro.
1103         (mmix_target_asm_function_prologue): When no epilogue is executed,
1104         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
1105         (mmix_print_operand) <case '.'>: New case.
1106         (mmix_print_operand_punct_valid_p): Match '.'.
1107         (mmix_use_simple_return): New function.
1108         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
1109         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
1110         -msingle-exit, -mno-single-exit.
1111         (MMIX Options): Ditto.
1112
1113 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
1114
1115         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
1116
1117 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1118
1119         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
1120
1121 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
1122
1123         * unroll.c (loop_iterations): Handle EQ loops.
1124
1125 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
1126
1127         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
1128         constraint in define_expand, not splitter.
1129         Formatting.
1130
1131 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
1132
1133         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
1134         build_function_type_list instead of build_function_type.
1135
1136         * config/ia64/ia64.c (ia64_init_builtins): Same.
1137
1138         * config/alpha/alpha.c (alpha_init_builtins): Same.
1139
1140         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
1141
1142         * config/arm/arm.c (arm_init_builtins): Same.
1143
1144         * tree.h: Add build_function_type_list prototype.
1145
1146         * tree.c (build_function_type_list): New.
1147
1148 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1149
1150         * collect2.c (scan_prog_file): Fix typo in message.
1151
1152 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
1153
1154         * fold-cont.c: Remove unused CHARMASK.
1155
1156 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
1157
1158         PR preprocessor/7150
1159         * cppmain.c (scan_translation_unit_trad): Simplify.
1160         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
1161
1162 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1163
1164         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
1165         Don't use CPP_PREDEFINES.
1166         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
1167         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
1168         * config/i386/djgpp.h, config/i386/i386-coff.h,
1169         config/i386/i386-interix.h, config/i386/i386-interix3.h,
1170         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
1171         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
1172         config/i386/uwin.h: Similarly.
1173
1174 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1175
1176         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
1177         flag_inline_trees to enable inlining.
1178
1179 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
1180
1181         * configure.in (gcc_gxx_include_dir):  Change to match versioned
1182         C++ headers if --enable-version-specific-runtime-libs is used.
1183         * configure:  Regenerate.
1184
1185 2002-06-28  Jan Hubicka  <jh@suse.cz>
1186
1187         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
1188
1189 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
1190
1191         * combine.c (combine_simplify_rtx): Pass the mode of the
1192         shift count, not the shift operation when trying to simplify
1193         a shift on a SHIFT_COUNT_TRUNCATED target.
1194
1195 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1196
1197         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
1198         avoid the auto increment addressing modes.
1199         ("*subsi3"): Likewise.
1200         (split for add/sub on address): For 68HC12 push the value on
1201         the stack and do the operation with a pop.
1202
1203 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
1204
1205         * cpplib.c (_cpp_handle_directive): Move #define-specific
1206         code to the #define handler...
1207         (do_define): ...here.
1208         (lex_macro_node): No longer a need to check for comments here.
1209
1210 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1211
1212         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
1213         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1214         Declare.
1215         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
1216         do not reorder basic blocks at the end when optimizing for size.
1217
1218 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1219
1220         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
1221         (m68hc11_make_autoinc_notes): New function.
1222         (m68hc11_split_move): Be very cautious when spliting a move with
1223         auto increment/decrement modes because this may result in incompatible
1224         directions; add REG_INC notes to the resulting insn for CSE reg.
1225
1226 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
1227
1228         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
1229         can be a valid address.
1230
1231 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
1232
1233         * config/rs6000/rs6000.c: Remove unusued variables from last
1234         patch.
1235
1236 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1237
1238         Revert:
1239         * config/rs6000/rs6000.c (rs6000_override_options): Move
1240         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
1241
1242 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1243
1244         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
1245         lvx/stv/dst builtins...
1246         (altivec_expand_ld_builtin): ...to here.
1247         (altivec_expand_st_builtin): ...here.
1248         (altivec_expand_dst_builtin): ...and here (respectively).
1249
1250 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
1251
1252         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
1253
1254 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
1255
1256         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
1257         subregs.
1258         * recog.c (general_operand, register_operand): Disallow them.
1259
1260 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
1261
1262         PR preprocessor/7138
1263         * cpplib.c (_cpp_handle_directive): Do traditional
1264         preparation after setting state.angled_headers.
1265         * cpptrad.c (scan_out_logical_line): Fix potential
1266         quote bug.
1267
1268 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1269
1270         * config/rs6000/rs6000.c (rs6000_override_options): Move
1271         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
1272
1273 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
1274
1275         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
1276         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
1277         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
1278
1279 2002-06-27  Roger Sayle  <roger@eyesopen.com>
1280
1281         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
1282         * config/stormy16/stormy16.h: Likewise.
1283
1284         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
1285         with #define.
1286
1287 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1288
1289         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
1290         Hitachi entry.  Make punctuation more consistent.
1291
1292 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
1293
1294         * doc/install.texi: Change ` bit' to `-bit'.
1295         * doc/md.texi: Change `-bits' to `-bit'.
1296         * doc/tm.texi: Change `-bits' to ` bits'.
1297
1298 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
1299
1300         * gcse.c (hoist_code): Rewrite to only get list of dominated
1301         blocks once per BB. Also fix reversed test (by removing need for
1302         the test at all).
1303
1304 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
1305
1306         * cpphash.h (_cpp_set_trad_context): Remove.
1307         * cpplib.c (prepare_directive_trad): Do nothing for #define.
1308         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
1309         * cpptrad.c: Update comments.
1310         (_cpp_read_logical_line_trad): Let scan_logical_line handle
1311         updating the current context.
1312         (scan_logical_line): Update the current context.
1313         (_cpp_create_trad_definition): Similarly.
1314         (_cpp_set_trad_context): Remove.
1315
1316 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
1317
1318         PR preprocessor/7070
1319         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
1320
1321 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
1322
1323         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
1324         config/xtensa/xtensa.c (xtensa_return_addr): New function.
1325         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
1326         config/xtensa/xtensa.md (fix_return_addr): New pattern.
1327
1328 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1329
1330         * mips.c (coprocessor_operand, coprocessor2_operand,
1331         symbolic_operand): Move prototypes from here...
1332         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
1333         symbolic_operand): ...to here.
1334
1335 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1336
1337         * config/sh/crt1.asm: remove _stack label definition
1338         and sentinel value.
1339
1340 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1341
1342         * varasm.c: Include real.h before output.h.
1343
1344 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
1345
1346         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
1347         check for TARGET_ALTIVEC.
1348
1349 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1350
1351         * config.gcc (vax-*-vms*): Make obselete.
1352
1353 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1354
1355         * gcc.c (warn_std): Delete.
1356
1357 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
1358
1359         * doc/extend.texi: Fix formatting of last checkin.
1360
1361 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1362
1363         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
1364         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
1365
1366 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
1367
1368         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1369         discrepancies from motorola's documentation.
1370
1371 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
1372
1373         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
1374         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
1375
1376         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
1377         produce a 32 bit result before normalization, then normalize with a
1378         left shift.  Compute approximative error of 2nd reciprocal
1379         approximation in 2's complement.  Fix mask generation from upper
1380         longword of second divide stage result.
1381         For large divisor, fix shift count used to truncate first stage
1382         divide result; make decision if to adjust upwards based on comparison
1383         of higher parts of normalized values.
1384         (udivdi): Likewise.  Undo normalization of result for large divisor
1385         case.
1386
1387 2002-06-25  David S. Miller  <davem@redhat.com>
1388
1389         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
1390
1391 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
1392
1393         * cpplib.c (do_include_common): Revert to correct line number
1394         if -traditional.
1395         * cpptrad.c (scan_out_logical_line): Treat null directive as
1396         white space.  Invlidate MI optimization for non-whitespace
1397         text outside a directive.
1398
1399 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1400
1401         * Makefile.in (SHELL): Set to @SHELL@.
1402         * fixinc/Makefile.in (SHELL): Likewise.
1403
1404         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
1405         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
1406         initialization.
1407
1408 2002-06-24  Jeff Law <law@redhat.com>
1409
1410         * flow.c (propagate_one_insn): When removing an insn
1411         with a REG_LIBCALL note but not the entire libcall sequence,
1412         delete the associated REG_RETVAL note.
1413
1414 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
1415
1416         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
1417         (udivsi3): Likewise.  Rewrite SH1 implementation.
1418         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
1419         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
1420         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
1421         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
1422         (_moddi3): Likewise.
1423
1424         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
1425
1426         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
1427         arguments into account for stack_regs.
1428
1429 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
1430
1431         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
1432         in examples.
1433
1434 2002-06-24  Art Haas  <ahaas@neosoft.com>
1435
1436         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
1437         * doc/tm.texi (Frame Layout): Likewise.
1438
1439 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
1440
1441         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
1442         Set float_format to i128.
1443
1444 2002-06-24  David S. Miller  <davem@redhat.com>
1445
1446         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
1447         32-bit ABI libfuncs to NULL.
1448
1449         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
1450         strings instead of quoted strings for code blocks.
1451
1452         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
1453         optabs if op1 is const0_rtx.
1454
1455         * Makefile.in (GTFILES): Add basic-block.h
1456         * basic-block.h (label_value_list, tail_recursion_label_list):
1457         Mark with GTY.
1458
1459 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
1460
1461         * cpptrad.c (scan_out_logical_line): Check recursing only when
1462         we know we have a macro invocation in the function-like case.
1463         Only call _cpp_handle_directive if we know we have a good
1464         directive, or we want to reject a bad directive.
1465
1466 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
1467
1468         * doloop.c (doloop_valid_p): Correct comment.
1469         (doloop_modify_runtime <abs_inc != 1>): Simplify.
1470         (doloop_modify_runtime <do-while>): Don't emit code when NE.
1471
1472 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
1473
1474         * config.gcc: Add support for ip2k.
1475
1476 2002-06-23  Jan Hubicka  <jh@suse.cz>
1477             Jeff Law <law@redhat.com>
1478
1479         * function.h (struct emit_status): Clarify potential contents
1480         of regno_reg_rtx array.
1481         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
1482         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
1483
1484         * reg-stack.c (convert_regs_exit): Push the registers to stack in
1485         proper order.
1486
1487 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
1488
1489         PR middle-end/6963
1490         * function.c (assign_stack_temp_for_type): Do not return
1491         the same MEM rtx for multiple uses of a stack slot.
1492
1493 2002-06-22  David S. Miller  <davem@redhat.com>
1494
1495         PR target/6841 target/6770 target/6719
1496         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
1497         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
1498         GENERAL_OR_EXTRA_FP_REGS.
1499
1500 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
1501
1502         * cpptrad.c (struct fun_macro): Add line number.
1503         (scan_out_logical_line): Set it, and use it to report unterminated
1504         macro invocations.
1505
1506 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1507
1508         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
1509         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
1510         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
1511         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
1512         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
1513         REGEXP_ONEOF, check_name): Const-ify.
1514
1515 2002-06-21  Matt Thomas  <matt@3am-software.com>
1516
1517         * config/vax/vax.c (vax_output_function_prologue): Use
1518         REGISTER_PREFIX.  Fix some indentation.
1519         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
1520         (VAX_ISTREAM_SYNC): Define.
1521         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
1522         i-stream sync to the end.
1523         (REGISTER_PREFIX): Define as "".
1524         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
1525
1526 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
1527
1528         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
1529         configurations.
1530
1531 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1532
1533         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
1534         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
1535
1536 2002-06-21  Matt Thomas  <matt@3am-software.com>
1537
1538         * config/vax/netbsd.h: Adjust a comment.
1539         (TARGET_DEFAULT): Redefine as 0.
1540
1541 2002-06-21  Richard Henderson  <rth@redhat.com>
1542
1543         * bb-reorder.c (make_reorder_chain_1): Search harder for the
1544         vax casesi fallthru edge.
1545         * cfglayout.c (cleanup_unconditional_jumps): Use
1546         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
1547         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
1548         block after ADDR_VEC.
1549
1550 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1551
1552         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
1553
1554 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
1555
1556         * cpperror.c (cpp_error): For traditional CPP, default to
1557         diagnostics on pfile->line.
1558         * cpplib.c (prepare_directive_trad): Set line number for
1559         diagnostics for #define too.
1560         * cpptrad.c (skip_whitespace): Skip comments properly.
1561         (_cpp_expansions_different_trad): Initialize quote2.
1562
1563 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
1564
1565         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
1566         * config/mmix/mmix.h: Ditto.
1567         * config/mmix/mmix-protos.h: Ditto.
1568         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
1569         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
1570         comment.  Comment extra CC modes.
1571
1572 2002-06-20 Jan Hubicka  <jh@suse.cz>
1573
1574         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
1575         (scope_to_insns_finalize): Do not call set_block_levels; handle
1576         sequences.
1577         (choose_inner_scope): New.
1578         * rtl.h (choose_inner_scope): Declare.
1579
1580 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1581
1582         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
1583         HOST_WIDE_INT.
1584         * pa.c (pa_asm_output_mi_thunk): Likewise.
1585         (n_deferred_plabels): Change type to size_t.
1586         (output_deferred_plabels, output_call): Use size_t instead of int.
1587
1588 2002-06-20  Richard Henderson  <rth@redhat.com>
1589
1590         PR target/4041
1591         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
1592         pattern and adjust constraints for coldfire.
1593
1594 2002-06-20  Richard Henderson  <rth@redhat.com>
1595
1596         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
1597
1598 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
1599
1600         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
1601
1602 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
1603
1604         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
1605
1606 2002-06-20  Stan Shebs  <shebs@apple.com>
1607
1608         * dominance.c: Include errors.h instead of error.h.
1609
1610 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
1611
1612         * cppexp.c (cpp_interpret_integer): Don't force traditional
1613         numbers to be unsigned.
1614         * cpplib.c (prepare_directive_trad): Set line number for
1615         diagnostics.
1616         * cpptrad.c (scan_out_logical_line): Continue scanning out
1617         at start of buffer.
1618         * gcc.c (trad_capable_cpp): Use cc1 always.
1619
1620 2002-06-20  Jeffrey Law  <law@redhat.com>
1621
1622         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
1623         elimination in leaf functions by default yet.
1624
1625 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
1626
1627         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
1628
1629 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1630
1631         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
1632         multilibs.
1633         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
1634         Fixes PR other/6836.
1635
1636 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
1637                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
1638
1639         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
1640
1641         * basic-block.h: Do not include et-forest.h
1642         (dominance_info): Declare as struct dominance-info.
1643         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
1644         deleting block.
1645         * dominance.c (struct dominance_info): Define.
1646         (BB_NODE, SET_BB_NODE): New macros.
1647         (bb_hash_func, bb_eq_func): Kill.
1648         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
1649         nearest_common_dominator, dominated_by_p, recount_dominator,
1650         add_to_dominance_info, delete_from_dominance_info): update for new
1651         representation.
1652         (get_dominated_by, redirect_immediate_dominators): Rewrite using
1653         enumerate_sons.
1654         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
1655         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
1656         structure.
1657
1658         * et-forest.h: Update copyright; revamp all function to operate on
1659         nodes
1660         (et_forest_value): Kill.
1661         (et_forest_enumerate_sons, et_forest_node_value): New.
1662         * et-forest.c: Update copyright.
1663         * et-forest.h: Update copyright; revamp all function to operate on
1664         nodes
1665         (et_forest_value): Kill.
1666         (et_forest_enumerate_sons, et_forest_node_value): New.
1667
1668         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
1669
1670         * basic-block.h: Inlude et-forest.h
1671         (basic_block_def): Kill dominator.
1672         (dominance_info): New type.
1673         (loops): Use dominace_info.
1674         (dominace handling functions): Take dominace_info as argument
1675         instead of bitmaps.
1676         (create_preheader): Likewise.
1677         * cfg.c (entry_exit_blocks): Kill dominator.
1678         (dump_flow_info): Do not dump dominators.
1679         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
1680         dominators.
1681         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
1682         (flow_loops_pre_header_scan, make_forwarder_block,
1683         canonicale_loop_headers, flow_loops_find): Likewise.
1684         * dominance.c: Include error.h
1685         (idoms_to_doms): Kill.
1686         (bb_hash_func, bb_eq_func): New static functions.
1687         (debug_dominace_info): New global function.
1688         (calculate_dominance_info): Use new et forest structure.
1689         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
1690         get_dominated_by, redirect_immediate_dominators,
1691         nearest_common_dominator, dominated_by_p, verify_dominators,
1692         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
1693         delete_from_dominance_info): New global functions.
1694         * gcse.c (domnators): CHange to dominance_info.
1695         (alloc_hoist_mem): Do not alloc dominators
1696         (free_code_hoist_mem): Use free_dominance_info.
1697         (compute_code_hoist_data): Use dominance_info.
1698         (hoist_code): Likewise.
1699         * ifcvt.c (post_dominators): Likewise.
1700         (find_if_case_2, if_convert): Likewise.
1701         * predict.c (process_note_predictions, process_note_prediction,
1702         estimate-probability): Likewise.
1703         * sched-rgn.c (find_rgns, init_regions): Likewise.
1704         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
1705         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
1706         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
1707         find_evaluations, convert_to_ssa): Likewise.
1708         * ssa.h (compute_dominance_frontiers): Likewise.
1709
1710         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
1711
1712         * Makefile.in (et-forest.c): Add.
1713         * et-forest.c: New file.
1714         * at-forest.h: New file.
1715
1716 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1717
1718         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
1719         array size calculation.
1720         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
1721         Likewise.
1722
1723         * diagnostic.c (diagnostic_kind_text): Const-ify.
1724         * gengtype.c (lang_names): Likewise.
1725
1726 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
1727
1728         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
1729
1730 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1731
1732         * config/sol2.h: New file.
1733         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
1734         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
1735         (sparc-*-chorusos*): Likewise.
1736         (sparc-*-elf*): Likewise.
1737         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
1738         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
1739         (sparc-hal-solaris2*): Likewise.
1740         (sparc-*-solaris2*): Likewise.
1741         (sparclite-*-elf*): Likewise.
1742         (sparc86x-*-elf*): Likewise.
1743         (sparc64-*-elf*): Likewise.
1744
1745         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
1746         config/sol2.h.
1747         (ASM_SPEC): Override config/sol2.h version for now.
1748         Removed obsolete GAS_REJECTS_MINUS_S variant.
1749         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
1750         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
1751         (TARGET_OS_CPP_BUILTINS): Likewise.
1752         Assert system=unix.
1753         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
1754         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
1755         config/sol2.h.
1756         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
1757         (ASM_CPU_SPEC): Define.
1758         (SUBTARGET_EXTRA_SPECS): Define.
1759
1760         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
1761         in config/sparc/sol2.h.
1762         (ASM_SPEC): Moved to config/sol2.h.
1763         (CPP_CPU_SPEC): Simplified.
1764         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
1765         consistency.
1766         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
1767         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
1768         STARTFILE_ARCH64_SPEC.
1769         (STARTFILE_SPEC): Moved to config/sol2.h
1770         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
1771         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
1772         (LINK_ARCH64_SPEC): Simplified.
1773         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
1774         (LINK_SPEC): Moved to config/sol2.h
1775
1776         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
1777         config/sol2.h.
1778         Use BITS_PER_WORD for size.
1779         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
1780         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
1781         (CPP_PREDEFINES): Removed OS-specific part handled by
1782         TARGET_OS_CPP_BUILTINS.
1783         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
1784         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
1785         (ASM_SPEC): Moved to config/sol2.h.
1786         (PREFERRED_DEBUGGING_TYPE): Likewise.
1787         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
1788         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
1789         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
1790         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
1791
1792         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
1793         * config/i386/sol2gas.h: Removed.
1794
1795 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1796
1797         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
1798
1799 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
1800
1801         * gcc.c-torture/execute/simd-1.c: New.
1802
1803         * gcc.dg/simd-1.c: New.
1804
1805         * doc/extend.texi (Vector Extensions): Document that we can
1806         specify simd types not specifically supported by the hardware.
1807         Document that simd types can be used as function arguments.
1808         Document that signness does make a difference in SIMD types.
1809         Misc cleanups and revisions to the vector extensions section.
1810
1811         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
1812         constants.
1813
1814         * expr.c (vector_mode_valid_p): New.
1815
1816         * expr.h: Add vector_mode_valid_p.
1817
1818         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
1819
1820         * c-common.c (type_for_mode): Always build vector nodes regardless
1821         of VECTOR_MODE_SUPPORTED_P.
1822         (handle_mode_attribute): Error if we can't emulate a nonexisting
1823         vector mode.
1824         (handle_vector_size_attribute): Same.
1825
1826         * optabs.c (expand_binop): Open-code vector operations.
1827         (expand_unop): Open-code vector unops.
1828         (expand_vector_binop): New.
1829         (expand_vector_unop): New.
1830
1831         * c-typeck.c (build_binary_op): Allow vectors in binops.
1832         Allow vectors in conditional operatiors.
1833         (build_unary_op): Allow vectors in unary minus.
1834
1835         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
1836         TARGET_ALTIVEC.
1837
1838 2002-05-20  Richard Henderson  <rth@redhat.com>
1839
1840         * c-common.c (c_common_get_alias_set): Correctly handle characters.
1841         Rearrange order of expressions; don't handle vectors here.
1842         * alias.c (get_alias_set): Let vectors match their components.
1843
1844 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
1845
1846         * config/mips/mips.c (mips_emit_prefetch): Use hints which
1847         match desired locality.
1848
1849 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
1850
1851         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
1852         (h8300_insert_attributes): New.
1853
1854 2002-06-19  Akim Demaille  <akim@epita.fr>
1855
1856         * c-parse.in (initelt: identifier ':' initval): Add an empty
1857         action to fix a type clash.
1858         (aliasdecl, classdef): Add the missing closing `;'.
1859         Whitespace changes.
1860         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
1861         $$ = $1 type clashes.
1862
1863 2002-06-19  Eric Christopher  <echristo@redhat.com>
1864
1865         * config/mips/mips.c (symbol_operand): New function.
1866         (mips_emit_prefetch): Ditto.
1867         * config/mips/mips-protos.h: Define.
1868         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
1869         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
1870         (LEGITIMIZE_ADDRESS): Ditto.
1871         * config/mips/mips.md (prefetch, prefetch_si_address,
1872         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
1873
1874 2002-06-19  Eric Christopher  <echristo@redhat.com>
1875
1876         * config/fp-bit.h: Add unordered defines for gofast.
1877
1878 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
1879
1880         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
1881         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
1882         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
1883         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
1884         checking and without it.
1885         (decl_name, decl_mode_check_failed, regexp_name,
1886         regexp_mode_check_failed): New functions.
1887         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1888         gen_presence_set, gen_absence_set, gen_automaton,
1889         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1890         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
1891         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
1892         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
1893         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
1894         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
1895         (decl_hash, decl_eq_p): Use the macros.
1896         (find_decl): Ditto.  Set up mode of work_decl.
1897         (process_excls, process_presence_absence, process_decls,
1898         check_automaton_usage, process_regexp, process_regexp_decls,
1899         check_usage, loop_in_regexp, check_loops_in_regexps,
1900         process_regexp_cycles, add_advance_cycle_insn_decl,
1901         initiate_states, initiate_excl_sets,
1902         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
1903         transform_2): Use the macros.
1904         (transform_3): Ditto.  Check mode before making transformations of
1905         ALLOF.
1906         (regexp_transform_func, transform_insn_regexps,
1907         process_unit_to_form_the_same_automaton_unit_lists,
1908         form_the_same_automaton_unit_lists_from_regexp,
1909         form_the_same_automaton_unit_lists,
1910         process_seq_for_forming_states, process_alts_for_forming_states,
1911         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
1912         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
1913         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
1914         units_to_automata_heuristic_distr, create_ainsns,
1915         units_to_automata_distr, create_automata): Use the macros.
1916         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
1917         (longest_path_length, min_issue_delay_pass_states,
1918         output_dead_lock_vect, output_tables, output_insn_code_cases,
1919         output_internal_insn_latency_func, output_print_reservation_func,
1920         output_description, output_automaton_units, generate): Use the
1921         macros.
1922         (make_insn_alts_attr): Ditto.  Check case when there are not
1923         alternatives in the reservation.
1924         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
1925         make_bypass_attr, form_important_insn_automata_lists,
1926         expand_automata): Use the macros.
1927
1928 2002-06-20  Tim Josling  <tej@melbpc.org.au>
1929
1930         * Makefile.in: Clean up code to check for misspecified languages
1931         in enable-languages.
1932
1933 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
1934
1935         * cpptrad.c (_cpp_replacement_text_len): initialize len.
1936
1937 2002-06-19  Jason Merrill  <jason@redhat.com>
1938
1939         * Makefile.in (unstrap, restrap): New targets.
1940         (bootstrap): Mention restrap.
1941
1942 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
1943
1944         * except.c (ehl_free): Remove.
1945
1946         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
1947         builtin_define and builtin_define_std.
1948
1949 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
1950
1951         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
1952         (sCOND): Restrict operand class so that gcc knows how to reload them.
1953         (bitfield_set): Merge two unnamed insn's using alternatives.
1954         (call_value): Remove constraint on unused uperand.
1955         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
1956         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
1957
1958         * longlong.h (count_trailing_zeros): Escape newline and beautify.
1959
1960 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
1961
1962         * Makefile.in (QMTEST_DIR): Simplify definition.
1963
1964 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
1965
1966         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
1967         #define.
1968
1969 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
1970
1971         * cpphash.h (struct cpp_reader): Make date and time strings.
1972         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
1973         _cpp_replacement_text_len): New.
1974         * cppinit.c (cpp_create_reader): Update.
1975         (init_builtins): Register appropriate builtins for -traditional-cpp.
1976         * cppmacro.c (new_number_token): Remove.
1977         (_cpp_builtin_macro_text): New.
1978         (builtin_macro): Use it.
1979         (cpp_macro_definition): Update to handle traditional macros.
1980         * cppmain.c (cb_line_change): Don't do column positioning for
1981         traditional output.
1982         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
1983         state ls_fun_close.
1984         (skip_whitespace): Fix.
1985         (maybe_start_funlike): Don't set state.parsing_args.
1986         (scan_out_logical_line): Remove duplicate error.  Use lex_state
1987         rather than state.parsing_args.
1988         (push_replacement_text): Handle builtins.
1989         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
1990
1991 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
1992             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1993
1994         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
1995         attribute __always_inline__.
1996
1997 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
1998
1999         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
2000         when generating the call to _mcount.
2001         (NO_PROFILE_COUNTERS): Define.
2002
2003 2002-06-18  Richard Henderson  <rth@redhat.com>
2004
2005         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
2006         2002-06-02 change.
2007
2008 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
2009
2010         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
2011         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
2012         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
2013         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
2014
2015         * sh-protos.h (sh_pr_interrupt): Declare.
2016         * sh.c (sh_pr_interrupt): New function.
2017         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
2018         (sh_hard_regno_rename_ok): Likewise.
2019         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
2020
2021 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
2022
2023         * rtl.def (DEFINE_AUTOMATON): Add description of new options
2024         `time' and `v'.  Fix incorrect description of option `w'.
2025
2026         * doc/md.texi: Ditto.
2027
2028         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
2029         (gen_automata_option): Process the new options.
2030         (transform_2, transform_3): Initialize some variables.
2031         (initiate_automaton_gen): Use the new macros.
2032
2033 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
2034
2035         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
2036         (mips_set_return_address, mips_restore_gp): Declare.
2037         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
2038         (current_frame_info): Remove.
2039         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
2040         * config/mips/mips.c: Remove uses of current_frame_info.
2041         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
2042         (struct machine_function): Add 'frame' and 'insns_len'.
2043         (current_frame_info, zero_frame_info): Remove.
2044         (mips_restore_gp, mips_set_return_address): New.
2045         (mips_initial_elimination_offset): New.
2046         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
2047         (eh_return define_split): Use mips_set_return_address.
2048
2049 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2050
2051         * cpplib.c (dtable): Update.
2052         (end_directive): Decrement expansion prevention count.
2053         Clear state.in_expression.
2054         (prepare_directive_trad): Set state.in_expression.
2055         Increment expansion prevention count.
2056         * cpptrad.c (enum ls): New.
2057         (_cpp_overlay_buffer): Set overlaid_buffer.
2058         (_cpp_remove_overlay): Use overlaid_buffer.
2059         (_cpp_read_logcial_line_trad): Update buffer when it might
2060         have changed.
2061         (scan_out_logical_line): Handle state transitions for assertions
2062         and defined() in #if, and for funlike invocations including the
2063         directive case.  Handle '<' and '>' as a quote mechanism in
2064         #include.  Warn about unterminated macro invocations.
2065         * cpphash.h (struct lexer_state): New member in_expression.
2066         (struct cpp_reader): New member overlaid buffer.
2067
2068 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
2069
2070         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
2071         __always_inline__.
2072
2073 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
2074
2075         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
2076
2077         * doloop.c (doloop_optimize): Extract pattern from insn.
2078
2079 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
2080
2081         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
2082
2083 2002-06-17  Jeff Law <law@redhat.com>
2084
2085         * libgcc2.c: Do not include symcat.h or machmode.h.
2086
2087 2002-06-17  Richard Henderson  <rth@redhat.com>
2088
2089         PR target/6922
2090         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
2091
2092 2002-06-17  Tom Tromey  <tromey@redhat.com>
2093
2094         * dwarfout.c: Include function.h.
2095
2096 2002-06-17  Andreas Schwab  <schwab@suse.de>
2097
2098         * print-rtl.c (print_rtx): Print space before vector, not after.
2099         (debug_rtx): Clear sawclose before printing.
2100         (debug_rtx_list): Print newline after each list element.
2101         (debug_rtx_range): Likewise.
2102
2103 2002-06-17  Richard Henderson  <rth@redhat.com>
2104
2105         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
2106         (current_function_funcdef_no): Similarly.
2107         * function.c (funcdef_no): Similarly.
2108         (prepare_function_start): Set current_function_funcdef_no.
2109         (expand_function_start): Don't set current_function_profile_label_no.
2110         * dwarf2out.h (current_funcdef_number): Remove.
2111         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
2112         current_function_funcdef_no throughout.
2113         * dwarfout.c, vmsdbgout.c: Similarly.
2114         * except.c (sjlj_funcdef_number): Remove.
2115         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
2116         (output_function_exception_table): Likewise.
2117         * final.c (profile_function): Use current_function_funcdef_no
2118         instead of current_function_profile_label_no.
2119
2120 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
2121
2122         * sched-ebb.c (init_ready_list): Check INSN_P first.
2123
2124 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
2125
2126         * sh.md (divsi3): Update way how to find insns in a sequence.
2127
2128         * reload1.c (merge_assigned_reloads): Don't change reloads
2129         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
2130         to RELOAD_OTHER when there are conflicting input reloads.
2131
2132 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
2133
2134         * function.c (epilogue_done): Correctly build a sequence of insns for
2135         a sibcall epilogue.
2136
2137 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
2138
2139         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
2140         #define.
2141
2142         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
2143
2144 2002-06-16  Richard Henderson  <rth@redhat.com>
2145
2146         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
2147         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
2148
2149 2002-06-16  Richard Henderson  <rth@redhat.com>
2150
2151         PR opt/6722
2152         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
2153
2154 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2155
2156         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
2157         * config/i386/i386-aout.h, config/i386/i386elf.h,
2158         config/i386/sysv4.h: Remove CPP_PREDEFINES.
2159         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
2160         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
2161         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
2162         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
2163         CPP_PREDEFINES and part of CPP_SPEC.
2164         * config/i386/sysv4-cpp.h: New.
2165
2166 2002-06-16  Richard Henderson  <rth@redhat.com>
2167
2168         PR c/7030
2169         * dwarf2out.c (modified_type_die): Don't assign the qualified die
2170         to the unqualified type.
2171
2172 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
2173
2174         * i386-protos.h (x86_field_alignment): Declare.
2175         * i386.c (x86_field_alignment): Define.
2176         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
2177         (BIGGEST_FIELD_ALIGNMENT): Kill.
2178
2179 2002-06-16  Richard Henderson  <rth@redhat.com>
2180
2181         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
2182
2183 2002-06-16  Richard Henderson  <rth@redhat.com>
2184
2185         * c-common.c (flag_ms_extensions): Move from c++ front end.
2186         * c-common.h (flag_ms_extensions): Declare.
2187         * c-decl.c (c_decode_option): Add -fms-extensions.
2188         (grokfield): Don't accept anonymous structures in ISO C mode;
2189         accept only unnamed anonymous structures in GNU C mode; accept
2190         Plan 9 extensions in MS mode.
2191         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
2192         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
2193         (extension): Clear flag_iso.
2194         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
2195
2196 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
2197
2198         PR target/7042
2199         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
2200         early if current_function_epilogue_delay_list is non-empty.
2201         * config/cris/cris.md ("return"): Add sanity check asserting that
2202         current_function_epilogue_delay_list is empty.
2203
2204 2002-06-16  Jeff Law <law@redhat.com>
2205
2206         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
2207         sharing of hard registers.
2208
2209         * toplev.c (rest_of_compilation): Remove redundant conditional.
2210
2211         * toplev.c (rest_of_compilation): Perform a simpler, less costly
2212         cleanup of the CFG when not optimizing.
2213
2214 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
2215
2216         * gcc.c (main): Correct startfile_prefix_spec check.
2217
2218 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
2219
2220         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
2221         include both darwin.o and rs6000-c.o.
2222
2223 2002-06-15  Roger Sayle  <roger@eyesopen.com>
2224
2225         * expr.c (compare_from_rtx): Call simplify_relational_operation
2226         on all comparisons, not just those between integer constants,
2227         with the correct (possibly unsigned) comparison code.
2228         (do_compare_rtx_and_jump): Likewise.
2229
2230 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2231
2232         * Makefile.in (tm_defines): New configuration variable.
2233         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
2234         Pass tm_defines in TM_DEFINES.
2235         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
2236         * config.gcc (tm_defines): New configuration variable.
2237         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
2238         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
2239         * configure.in: Substitute tm_defines.
2240         * configure: Rebuilt.
2241         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
2242         * doc/install.texi: Update.
2243         * pa/pa-700.h: Delete file.
2244         * pa/pa-7100.h: Delete file.
2245
2246 2002-06-15  Roger Sayle  <roger@eyesopen.com>
2247
2248         * fold-const.c (comparison_to_compcode): New function to convert
2249         an comparison TREE CODE into a bit-based representation.
2250         (compcode_to_comparison): New function to convert from this bit
2251         based representation back to a comparison TREE CODE.
2252         (fold_truthop): Simplify (x<y) && (x==y) and related composite
2253         comparisons.
2254
2255 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
2256
2257         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
2258
2259         * stor-layout.c (compute_record_mode): Remove check for
2260         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
2261         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
2262         MEMBER_TYPE_FORCES_BLK.
2263
2264         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
2265
2266         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
2267
2268 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
2269
2270         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
2271
2272 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
2273
2274         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
2275         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
2276         * configure, config.in: Regenerate.
2277
2278 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2279
2280         * loop.c (check_final_value): Use v->always_executed
2281         instead of v->always_computable.
2282         * unroll.c (final_giv_value): Don't calculate the final
2283         value as a function of the biv if the giv is not computed
2284         for every loop iteration.
2285
2286 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2287
2288         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
2289
2290 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2291
2292         PR c/6677
2293         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
2294         the truncation down when the target type is signed.
2295         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
2296         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
2297         the conversion if the target type is a smaller type.
2298
2299 2002-06-14  Richard Henderson  <rth@redhat.com>
2300
2301         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
2302         earlier.  Re-factor comparisons vs extrema.
2303
2304 2002-06-14  Richard Henderson  <rth@redhat.com>
2305
2306         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
2307
2308 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2309
2310         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
2311         * sched-deps.c (add_dependence): Likewise.
2312         (group_leader): Likewise.
2313         * sched-rgn.c (init_ready_list): Likewise.
2314         * doc/rtl.texi: Adjust accordingly.
2315
2316 2002-06-13  Jeffrey Law  <law@redhat.com>
2317
2318         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
2319         null pointer checks were eliminated.  Update prototype.
2320         (delete_null_pointer_checks): Similarly.
2321         * rtl.h (delete_null_pointer_checks): Update prototype.
2322         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
2323         delete_null_pointer_checks deletes one or more null
2324         pointer checks.  Do not run cleanup_cfg before gcse, the
2325         CFG is accurate and optimized at that point..
2326
2327         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
2328         of hard registers.
2329
2330 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2331
2332         * Makefile.in (libgcc.mk): Depend on specs.
2333
2334 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
2335
2336         * sh.md (mulsi3): Update way how to find insns in a sequence.
2337
2338 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
2339
2340         * sh.h: Define HARD_REGNO_RENAME_OK
2341         * sh.c: sh_hard_regno_rename_ok: New. If current function has
2342         interrupt_handler attribute, only registers saved on stack are OK.
2343         * sh-protos.h: Declare sh_hard_regno_rename_ok.
2344
2345 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2346
2347         * config/sh/sh.md (jump): Emit jump insn.
2348         (call_pcrel): Get pattern of the result of gen_call_site.
2349         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
2350
2351 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2352
2353         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
2354         * cpptrad.c: Update comments.
2355         (skip_whitespace, copy_comment): Take a new parameter.
2356         (skip_escaped_newlines): Don't duplicate escaped newline test.
2357         (copy_comment): Different location for CUR, decide here how
2358         to copy / replace the comment.
2359         (skip_whitespace): Copy whitespace.
2360         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
2361         (scan_out_logical_line): Let copy comment handle keeping or
2362         replacing comments.
2363         (scan_parameters, _cpp_create_trad_definition): Update.
2364
2365 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
2366
2367         * reload.c (get_secondary_mem,find_reloads_address,
2368         find_reloads_address_1): Pass reference to MEM to find_reloads_address
2369         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
2370
2371 2002-06-13  Jessica Han  <jessica@cup.hp.com>
2372
2373         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
2374         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
2375         * doc/tm.texi: Document them.
2376         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
2377         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
2378         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
2379         (ASM_OUTPUT_FDESC): Likewise.
2380
2381 2002-06-13  Eric Christopher  <echristo@redhat.com>
2382
2383         * diagnostic.c (output_format): Fix thinko.
2384
2385 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
2386
2387         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
2388         (DWARF2_UNWIND_INFO): Define to 0.
2389
2390         * config/sh/sh.c (calc_live_regs): Don't use initial_value
2391         optimization for PR_MEDIA_REG.
2392
2393 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2394
2395         * cpphash.h (_cpp_lex_identifier_trad): Remove.
2396         * cpplib.c (end_directive): Don't skip, always remove overlay
2397         apart from #define.
2398         (prepare_directive_trad): Handle NULL pfile->directive.
2399         (_cpp_handle_directive): Always call prepare_directive_trad
2400         if traditional.
2401         * cppmain.c (check_multiline_token): Rename account_for_newlines,
2402         generalize inputs.
2403         (scan_translation_unit_trad): Use it.
2404         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
2405         output, get escaped newline in comment close correct.
2406         (check_output_buffer, skip_whitespace): Update.
2407         (_cpp_lex_identifier_trad): Remove.
2408         (scan_out_logical_line): Handle -C and comments in directives
2409         properly.
2410
2411 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2412
2413         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
2414         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
2415         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
2416         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
2417         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
2418         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
2419         (SELECT_SH5_COMPACT_NOFPU): Likewise.
2420         (TARGET_SWITCHES): Use them.
2421         (TARGET_CPU_DEFAULT): Define if not already defined.
2422         (TARGET_DEFAULT): Use it.
2423         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
2424         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
2425         * config/sh/t-monolib: New file.
2426
2427 2002-06-13  Roger Sayle  <roger@eyesopen.com>
2428
2429         * toplev.c (rest_of_compilation): Simplify (and correct) the
2430         logic of the first delete-null-pointer-checks pass.
2431
2432 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
2433
2434         * i386.c (ix86_expand_movstr):  Fix pasto.
2435
2436 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
2437
2438         * reload.c (find_valid_class):  Fix thinko in my previous patch.
2439
2440 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
2441
2442         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
2443         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
2444         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
2445         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
2446
2447 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
2448
2449         * tree-inline.c (expand_call_inline): Don' mess with _DECL
2450         fields.
2451
2452 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
2453
2454         * diagnostic.c (output_format): Recognize "%H" as a format
2455         specifier for a location_t.
2456         (text_specifies_location): New function.
2457         (diagnostic_set_info): Use it.
2458
2459 2002-06-13  Jeffrey Law  <law@redhat.com>
2460
2461         * emit-rtl.c (static_regno_reg_rtx): Define.
2462         (init_emit_once): Initialize static_regno_reg_rtx.
2463         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
2464         of building new hard reg objects once per function.
2465         (gen_rtx_REG): Try to share hard regs.
2466         * regclass.c (init_fake_stack_mems): New function broken out from
2467         init_regs.
2468         * rtl.h (init_fake_stack_mems): Declare.
2469         * toplev.c (lang_independent_init): Call init_regs before
2470         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
2471
2472         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
2473
2474         * alias.c (argument_registers): Remove.
2475         (init_alias_once): Initialize static_reg_base_value here.  Remove
2476         initialization of argument_registers.
2477         (init_alias_once_per_function): Remove.
2478         (init_alias_analysis): Copy all the entries from static_reg_base_value
2479         into new_reg_base_value all at once.
2480         * rtl.h (init_alias_once_per_function): Remove declaration.
2481         * function.c (prepare_function_start): Do not call
2482         init_alias_once_per_function.
2483
2484         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
2485         starting a sequence and emitting an INSN.
2486
2487 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
2488
2489         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
2490
2491 2002-06-13  David S. Miller  <davem@redhat.com>
2492
2493         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
2494
2495 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2496
2497         * cpplib.c (end_directive): Handle line skipping.  Only remove
2498         the rest of the line if the directive was valid.
2499         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
2500         expanding a traditional macro.
2501         * cpptrad.c (recursive_macro): New.
2502         (read_logical_line_trad): Handle skipping.
2503         (scan_out_logical_line): Continue after a successful directive.
2504         Don't expand macros whilst skipping, or if recursing.
2505         (_cpp_create_trad_definition): scan_out_logical_line now sets
2506         the output current position.
2507
2508 2002-06-12  Eric Christopher  <echristo@redhat.com>
2509
2510         From Chris Demetriou  <cgd@broadcom.com>
2511         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
2512         comment.
2513         (ISA_HAS_MADD_MSUB): Ditto.
2514         (ISA_HAS_NMADD_NMSUB): Ditto.
2515
2516 2002-06-12  Eric Christopher  <echristo@redhat.com>
2517
2518         * config.gcc: Consolidate little endian handling and
2519         little/big endian targets.
2520         * config/mips/elfl.h: Remove file.
2521         * config/mips/elfl64.h: Ditto.
2522         * config/mips/ecoffl.h: Ditto.
2523         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
2524
2525 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
2526
2527         * gengtype.h (xvasprintf): New prototype.
2528         (xasprintf): New prototype.
2529         (struct outf): New.
2530         (get_output_file): Return an outf_p.
2531         (header_file): Is now an outf_p.
2532         (base_files): Now are outf_p.
2533         (oprintf): New.
2534         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
2535         rather than stdio operations.  Use xasprintf in a few places,
2536         when appropriate.
2537         (xvasprintf): New.
2538         (xasprintf): New.
2539         (struct filemap): Delete.
2540         (files): Delete.
2541         (output_files): New.
2542         (oprintf): New.
2543         (create_file): Create an outf_p.  Add parameter to indicate output
2544         file name, change all callers.
2545         (open_base_files): Create gtype-desc.c here.
2546         (get_output_file_with_visibility): Rewrite.
2547         (get_output_file_name): Just look at 'name' field in struct outf.
2548         (close_output_files): Rewrite.
2549
2550 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
2551
2552         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
2553         (MASK_G_FLOAT): Define.
2554         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
2555         (TARGET_SWITCHES): Likewise.
2556         (TARGET_DEFAULT): Likewise.
2557
2558 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
2559
2560         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
2561         * config/mips/mips.c (mips_output_filename): Don't print a
2562         ".file" directive if we are using DWARF-2.
2563         (mips_output_function_prologue): Do not emit source file
2564         name for TARGET_GAS.
2565
2566 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
2567
2568         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
2569         decide whether emit the short opcode.
2570         * i386.h (x86_shift1): Declare.
2571         (TARGET_SHIFT1): New macro.
2572         * i386.c (x86_shift1): New global variable.
2573
2574         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
2575         unconditionally; make loop to rebuild CFG; kill unnecesary
2576         find_basic_block calls; kill compute_bb_for_insn call.
2577         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
2578         * haifa-sched.c (sched_init): Likewise.
2579         * ssa-ccp.c (ssa_const_prop): Likewise.
2580         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2581
2582 2002-06-11  David S. Miller  <davem@redhat.com>
2583
2584         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
2585         active_insn_p.
2586
2587 2002-06-11  Richard Henderson  <rth@redhat.com>
2588
2589         * c-common.c (builtin_define_type_max): New.
2590         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
2591         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
2592
2593         From Joseph S. Myers:
2594         * glimits.h: Rewrite to expect the double underscore definitions
2595         from the compiler.
2596
2597         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
2598         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
2599         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
2600         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
2601         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
2602         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
2603         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
2604         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
2605
2606 2002-06-11  Richard Henderson  <rth@redhat.com>
2607
2608         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
2609         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
2610         (code_for_builtns): Update.
2611         (alpha_init_builtins): Add __builtin_thread_pointer and
2612         __builtin_set_thread_pointer.
2613         (alpha_expand_builtin): Handle void builtins.
2614         * doc/extend.texi (Alpha Built-in Functions): Update.
2615
2616 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
2617
2618         PR target/6997
2619         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
2620
2621 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
2622
2623         * config.gcc: Make the name of the extra-modes file adjustable
2624         by target stanzas.
2625         (s390x, strongarm, xscale stanzas): Use this facility.
2626         * configure.in: Update to match.
2627         * configure: Regenerate.
2628
2629 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
2630
2631         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
2632         max/mins as unsigned GE compares.
2633
2634 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
2635
2636         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
2637         * config/vax/bsd.h: New file.
2638         * config/vax/netbsd.h: Add missing notice.
2639         (CPP_PREDEFINES): Remove.
2640         (TARGET_OS_CPP_BUILTINS): Define.
2641         (CPP_SPEC): Use NETBSD_CPP_SPEC.
2642         * config/vax/openbsd.h: Update copyright years.
2643         (CPP_PREDEFINES): Remove.
2644         (TARGET_OS_CPP_BUILTINS): Define.
2645         * config/vax/ultrix.h: Likewise.
2646         * config/vax/vaxv.h: Likewise.
2647         * config/vax/vms.h: Likewise.
2648         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
2649         (CPP_PREDEFINES, CPP_SPEC): Remove.
2650
2651 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
2652
2653         * i386.md (addqi_1_slp, subqi_1_slp
2654         (andqi_ext0, testqi_ext0): Remove unnecesary check.
2655         (addhi*, addqi*): Simplify "dec" condition.
2656         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
2657         (and, or, xor to QImode splitters): New.
2658         (iorqi_ext*): New.
2659         (xorqi_ext_0): New.
2660         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
2661         (andqi_ext_1_rex64): New.
2662         (ashrqi*_slp): New.
2663         (ashlqi*_slp): New.
2664         (lshlqi*_slp): New.
2665         (rotrqi3*_slp): New.
2666         (rotlqi3*_slp): New.
2667
2668 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
2669
2670         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
2671         softfloat.h.
2672         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
2673         (CPP_ENDIAN_LITTLE_SPEC): Delete.
2674         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
2675         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
2676         __LONG_DOUBLE_128__ setting, _CALL_* setting.
2677         (CPP_DEFAULT_SPEC): Delete.
2678         (CPP_FLOAT_DEFAULT_SPEC): Delete.
2679         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
2680         (CPP_SYSV_DEFAULT_SPEC): Delete.
2681         (CPP_ENDIAN_BIG_SPEC): Delete.
2682         (CPP_ENDIAN_LITTLE_SPEC): Delete.
2683         (CPP_ENDIAN_SPEC): Delete.
2684         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
2685         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
2686         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
2687         cpp_longdouble_default.
2688         * config/rs6000/softfloat.h: Delete.
2689         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
2690         (EXTRA_SPECS): Delete cpp_cpu.
2691         (TARGET_CPU_CPP_BUILTINS): New.
2692         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
2693         prototype.
2694         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
2695         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
2696         (CPP_DEFAULT_SPEC): Delete.
2697         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
2698         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
2699         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
2700         (CPP_DEFAULT_SPEC): Delete.
2701         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
2702         (CPLUSPLUS_CPP_SPEC): Likewise.
2703         (CPP_CPU_SPEC): Delete.
2704         (CPP_DEFAULT_SPEC): Delete.
2705         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
2706         (CPLUSPLUS_CPP_SPEC): Likewise.
2707         (CPP_CPU_SPEC): Delete.
2708         (CPP_DEFAULT_SPEC): Delete.
2709         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
2710         (CPP_DEFAULT_SPEC): Delete.
2711         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
2712         (CPP_DEFAULT_SPEC): Delete.
2713
2714         * doc/gty.texi: Small updates.
2715
2716 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2717
2718         * objc/objc-act.c (warn_with_ivar): Adjust calls to
2719         diagnostic_count_error.
2720         (warn_with_method): Likewise.
2721
2722         * diagnostic.h (warnings_are_errors_message): New field of
2723         diagnostic_context.
2724         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
2725         match semantics.
2726         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
2727         (diagnostic_count_diagnostic): Make aware of other kinds of
2728         diagnostics.
2729         (diagnostic_initialize): Initialize warnings_are_errors_message field.
2730
2731 2002-06-11  Tom Tromey  <tromey@redhat.com>
2732
2733         For PR java/6520:
2734         * fold-const.c (fold_convert): Don't modify existing tree's type.
2735
2736 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
2737
2738         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
2739
2740 2002-06-11  Richard Henderson  <rth@redhat.com>
2741
2742         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
2743
2744 2002-06-11  Richard Henderson  <rth@redhat.com>
2745
2746         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
2747         DWARF2_UNWIND_INFO is false.
2748
2749 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
2750
2751         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
2752
2753         * config/s390/s390.c (emit_prologue): gen_store_multiple
2754         returns an insn now, not a pattern.
2755
2756 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2757
2758         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
2759         $(TEXI2DVI) -o.
2760
2761 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
2762
2763         * i386.c (x86_promote_QImode): Set for Athlon
2764         (x86_fast_prefix): New global variable.
2765         (x86_arch_always_fancy_math_387): Fix formating.
2766         * i386.h (x86_fast_prefix): Declare
2767         (TARGET_FAST_PREFIX): define.
2768         * i386.md (and to strict_low_part, HI to SI
2769         promoting splitter): Use new macro.
2770
2771         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
2772
2773 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
2774
2775         * Makefile.in (distclean): Delete junk left in testsuite
2776         directory, too.
2777
2778 2002-06-11  Jeffrey Law <law@redhat.com>
2779
2780         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
2781         last insn created by the splitter.
2782
2783         * caller-save.c (init_caller_save): Move creation of SAVEINSN
2784         and RESTINSN into into the scope of the sequence.
2785
2786         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
2787         RETURN insns.
2788
2789         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
2790
2791         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
2792         not the pattern.  So extract the pattern from the insn.
2793
2794         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
2795
2796 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
2797
2798         * config/s390/s390.md (movsi): Only use floating point
2799         register alternatives when operands are already fprs.
2800         (movdi_31, movdi_64): Likewise.
2801
2802 2002-06-11  David S. Miller  <davem@redhat.com>
2803
2804         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
2805         Only run RTX equality checks on INSN_P rtl.
2806
2807 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
2808
2809         * config/s390/s390.md (reload_base, ltorg): Remove.
2810         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
2811         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
2812         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
2813         s390_asm_output_pool_prologue): Likewise.
2814         * s390.h (s390_pool_start_insn): Likewise.
2815
2816         * s390.c (s390_output_symbolic_const): Remove support for
2817         old-style pool chunks.
2818         (s390_function_epilogue): Likewise.
2819         (s390_output_constant_pool): Likewise.  Also, fix incorrect
2820         alignment for 64-bit literal pools.
2821         (print_operand_address): Remove 'y' and 'Y' format flags.
2822         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
2823         old-style pool chunks.
2824         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
2825         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
2826         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
2827
2828         * s390.c (consttable_operand): New function.
2829         * s390-protos.h (consttable_operand): Declare it.
2830         * s390.h (PREDICATE_CODES): Add consttable_operand.
2831         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
2832         consttable_sf, consttable_df, pool_start_31, pool_end_31,
2833         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
2834         * s390.c (struct constant, struct constant_pool): New data types.
2835         (constant_modes, gen_consttable): New variables.
2836         (s390_start_pool, s390_end_pool, s390_add_pool,
2837         s390_dump_pool, s390_free_pool): New functions.
2838         (s390_chunkify_pool): Completely reimplement literal pool
2839         overflow handling.
2840
2841         * s390.c (s390_pool_overflow): New variable.
2842         * s390.h (s390_pool_overflow): Declare it.
2843         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
2844         jumps in literal pool overflow situations.
2845
2846         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
2847         (s390_frame_info): Account for possible use of RETURN_REGNUM
2848         by new literal pool overflow code.
2849         (s390_emit_prologue): Likewise.
2850
2851 2002-06-05  David S. Miller  <davem@redhat.com>
2852
2853         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
2854         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
2855         emit_insns_before_scope, emit_insns_after,
2856         emit_insns_after_scope): Delete declaration.
2857         * ada/misc.c (insert_code_for): Use emit_insn* instead of
2858         emit_insns_foo.
2859         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
2860         (alpha_set_memflags): Fix comment.
2861         (set_frame_related_p): Use get_insns instead of gen_sequence.
2862         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
2863         emitting no insns.
2864         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
2865         gen_sequence.
2866         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
2867         * config/fr30/fr30.c (fr30_move_double): Likewise.
2868         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
2869         Likewise.
2870         * config/ia64/ia64.c (spill_restore_mem): Likewise.
2871         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
2872         no insns.
2873         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
2874         instead of gen_sequence.
2875         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
2876         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
2877         * config/sh/sh.c (sh_need_epilogue): Likewise.
2878         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
2879         attributes.
2880         (setjmp pattern and split): Use them to avoid splitter which emits
2881         no RTL.
2882         * genattrtab.c (main): Emit include of function.h
2883         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
2884         get_insns instead of gen_sequence.
2885         * config/cris/cris.c (cris_split_movdx): Likewise.
2886         * emit-rtl.c (emit_insns*): Kill.
2887         (try_split): Expect insn list instead of SEQUENCE.
2888         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
2889         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
2890         Make them abort if a SEQUENCE is given and RTL checking is
2891         enabled.
2892         (emit_*_scope): Don't forget to set scope on final insn.
2893         (gen_sequence): Move from here...
2894         * ssa.c (gen_sequence): To here as private function.
2895         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
2896         comments.
2897         (expand_builtin_return, expand_builtin_mathfn): Likewise.
2898         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
2899         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
2900         (expand_builtin_expect_jump): Use get_insns and fix comments.
2901         * calls.c (try_to_integrate): Use emit_insn_foo.
2902         (expand_call, emit_library_call_value_1): Likewise.
2903         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
2904         (emit_move_insn_1): Use get_insns instead of gen_sequence.
2905         (expand_expr): Use emit_insn_foo.
2906         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
2907         * except.c (build_post_landing_pads): Likewise.
2908         * flow.c (attempt_auto_inc): Likewise.
2909         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
2910         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
2911         * function.c (fixup_var_refs_insn): Use get_insns instead of
2912         gen_sequence.
2913         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
2914         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
2915         (fixup_stack_1, purge_addressof_1, expand_main_function,
2916         get_arg_pointer_save_area): Likewise.
2917         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
2918         expand_function_end): Use emit_insn_foo.
2919         (record_insns, keep_stack_depressed): Work with insn list instead
2920         of SEQUENCE, fix comments.
2921         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
2922         noce_try_store_flag_constants, noce_try_store_flag_inc,
2923         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
2924         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
2925         (noce_process_if_block): Use get_insns instead of gen_sequence.
2926         * optabs.c (add_equal_note): Work with insn list, fix comments.
2927         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
2928         (expand_unop, expand_complex_abs, expand_unop_insn,
2929         expand_no_conflict_block): Likewise.
2930         (gen_move_insn): Use get_insns instead of gen_sequence.
2931         (gen_cond_trap): Likewise.
2932         * integrate.c (copy_rtx_and_substitute): Likewise.
2933         (emit_initial_value_sets): Use emit_insn_foo.
2934         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
2935         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
2936         now that RTL generators give insn lists.
2937         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
2938         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
2939         instead of gen_sequence.
2940         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
2941         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
2942         instead of gen_sequence.
2943         * loop.c (move_movables, emit_prefetch_instructions,
2944         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
2945         Likewise.
2946         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
2947         (product_cheap_p): Likewise, and add commentary about RTL wastage
2948         here.
2949         * lcm.c (optimize_mode_switching): Use get_insns instead of
2950         gen_sequence.
2951         * profile.c (gen_edge_profiler): Likewise.
2952         * regmove.c (copy_src_to_dest): Likewise.
2953         * reg-stack.c (compensate_edge): Likewise and fix comment.
2954         * gcse.c (process_insert_insn): Likewise.
2955         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
2956         * jump.c (delete_prior_computation): Update comment.
2957         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
2958         of gen_sequence, update comments to match.
2959         * recog.c (peephole2_optimize): Work with insn lists instead of
2960         SEQUENCE rtl.
2961         * sched-vis.c (print_pattern): Abort on SEQUENCE.
2962         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
2963         Use get_insns instead of gen_sequence.
2964         (copy_loop_body): Likewise and don't emit dummy NOTE.
2965         * genrecog.c: Don't mention SEQUENCE rtl in comments.
2966         * combine.c (try_combine): Expect insn lists from split generator.
2967         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
2968         hand.
2969
2970 2002-06-11  Roger Sayle  <roger@eyesopen.com>
2971             Andreas Jaeger <aj@suse.de>
2972
2973         * cfgbuild.c: Update copyright years.
2974
2975 2002-06-11  Andreas Schwab  <schwab@suse.de>
2976
2977         * config/m68k/m68k.h (PREDICATE_CODES): Define.
2978
2979 2002-06-11  Eric Christopher  <echristo@redhat.com>
2980
2981         * doc/tm.texi (Run-time Target): Add comment about flag_iso
2982         and strict ANSI.
2983         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
2984         * config/mips/ecoffl.h: Ditto.
2985         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
2986         (CPP_PREDEFINES): Ditto.
2987         * config/mips/elfl64.h: Ditto.
2988         * config/mips/elfl.h: Ditto.
2989         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
2990         out until irix header consolidation.
2991         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
2992         with SUBTARGET_OS_CPP_BUILTINS.
2993         * config/mips/iris6.h: Ditto.
2994         (CPLUSPLUS_CPP_SPEC): Remove.
2995         * config/mips/linux.h: Ditto.
2996         * config/mips/netbsd.h: Ditto.
2997         * config/mips/openbsd.h: Ditto.
2998         * config/mips/rtems.h: Ditto.
2999         * config/mips/rtems64.h: Ditto.
3000         * config/mips/sni-svr4.h: Ditto.
3001         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
3002         ISA_MIPS32, ISA_MIPS64): New defines.
3003         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
3004         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
3005         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
3006         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
3007         (TARGET_CPU_CPP_BUILTINS): Define.
3008         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
3009         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
3010         (movdicc): Remove check for ISA_MIPS32.
3011          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
3012         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
3013         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
3014         sunge_sf, sunle_df, sunle_sf): New patterns.
3015
3016 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3017
3018         * Makefile.in: Update cppmain.o.
3019         * cpphash.h (struct cpp_reader): Move some members to a
3020         nested structure.
3021         (trad_line): Rename saved_line.
3022         (_cpp_read_logical_line_trad): Update.
3023         (_cpp_remove_overlay): New.
3024         * cppinit.c (cpp_create_reader): No need to set saved_line.
3025         (cpp_destroy): Update.
3026         (cpp_read_main_file): Only overlay if compiling.
3027         * cpplex.c (continue_after_nul): Return false if in directive.
3028         * cpplib.c (EXPAND): New.
3029         (directive_table, SEEN_EOL): Update.
3030         (end_directive): Remove overlay if traditional; don't skip
3031         line in traditional #define.
3032         (prepare_directive_trad): New.
3033         (_cpp_handle_directive, run_directive): Update for traditional
3034         directives.
3035         (lex_macro_node): Simplify, don't use lex_identifier_trad.
3036         * cpplib.h (struct options): Add preprocess_only.
3037         * cppmain.c: Don't include intl.h.
3038         (cpp_preprocess_file): Set options->preprocess_only.
3039         (scan_translation_unit_trad): Fix, and print line numbers.
3040         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
3041         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
3042         save_replacement_text, _cpp_create_trad_definition): Update for
3043         variable renaming.
3044         (_cpp_overlay_buffer): Save line number.
3045         (_cpp_remove_overlay): Rename from restore_buff, restore line.
3046         (_cpp_read_logical_line_trad): Don't handle overlays here.
3047         (scan_out_logical_line): Process directives.
3048
3049 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
3050
3051         * gthr-win32.h: Wrap functions in extern "C".
3052         (__gthread_key_t): Typedef as unsigned long,
3053         not win32 DWORD.
3054         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
3055         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
3056         (__gthr_win32_once, __gthr_win32_key_create,
3057         __gthr_win32_key_delete, __gthr_win32_getspecific,
3058         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3059         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3060         __gthr_win32_mutex_unlock): Declare.
3061         (__gthread_once,__gthread_key_create,
3062         __gthread_key_delete, __gthread_getspecific,
3063         __gthread_setspecific, __gthread_mutex_init_function,
3064         __gthread_mutex_lock,__gthread_mutex_trylock,
3065         __gthread_mutex_unlock): Call corresponding
3066         __gthr_win32_* extern implementations if #defined
3067         __GTHREAD_HIDE_WIN32API.
3068         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
3069         $(srcdir)/config/i386/gthr-win32.c
3070         * config/i386/gthr-win32.c: New implementation file.
3071         (__gthr_win32_once, __gthr_win32_key_create,
3072         __gthr_win32_key_delete, __gthr_win32_getspecific,
3073         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3074         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3075         __gthr_win32_mutex_unlock): New functions, based on
3076         static inlines in gthr-win32.h.
3077
3078 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
3079
3080         * config/xtensa/xtensa.c (override_options): Don't warn about
3081         using -fpic or -fPIC when PIC is enabled by default.
3082
3083 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3084
3085         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
3086
3087 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3088
3089         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
3090         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
3091         exists, substitute its pathname as @extra_modes_file@, define
3092         EXTRA_MODES_FILE to be an appropriate string to #include it
3093         with, and define EXTRA_CC_MODES to 1.
3094
3095         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
3096         it's defined.  Get rid of redundancy in calling sequence for
3097         CC; don't use it to define CCmode, to avoid a warning.
3098         * libgcc2.c: Include symcat.h for the sake of machmode.def.
3099
3100         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
3101         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
3102         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
3103         New files.
3104         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
3105         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
3106
3107         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
3108         defining extra CC modes.
3109
3110 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3111             Andreas Jaeger <aj@suse.de>
3112
3113         * cfgrtl.c (create_basic_block_structure):  Remove index argument
3114         and use last_basic_block++ instead.  (create_basic_block): Update.
3115         * cfgbuild.c (find_basic_blocks_1): Likewise.
3116
3117         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
3118         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
3119         * sched-ebb.c (schedule_ebbs): Likewise.
3120         * sched-rgn.c (schedule_insns): Likewise.
3121         * ssa-ccp.c (ssa_const_prop): Likewise.
3122         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
3123         * toplev.c (rest_of_compilation): Likewise.
3124         * config/ia64/ia64.c (ia64_reorg): Likewise.
3125
3126 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3127
3128         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
3129         of matching registers.
3130
3131 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3132
3133         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
3134         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
3135
3136 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
3137
3138         * config/mmix/mmix.h: Improve comments.
3139         (CPP_SPEC, CPP_PREDEFINES): Don't define.
3140         (TARGET_CPU_CPP_BUILTINS): Define.
3141         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
3142         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
3143         unused predicate.
3144         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
3145         compiler warning.
3146         (mmix_constant_address_p): Remove another
3147         redundant test before case.
3148         (mmix_canonicalize_comparison): Remove unused function.
3149         (mmix_print_operand_address): Don't test and adjust for operand in
3150         non-canonical format.
3151         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
3152         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
3153
3154 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3155
3156         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
3157         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
3158         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
3159         (gen_compare): Use CCmode unconditionally.
3160
3161 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3162
3163         PR optimization/6759
3164         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
3165         the REQ_EQUAL note.
3166
3167 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3168
3169         PR c/6660
3170         * c-decl.c (grokfield): Allow user defined types if they declare
3171         structs or unions for unnamed fields.
3172
3173 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3174
3175         PR c/6809
3176         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
3177
3178 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3179
3180         PR optimization/6842
3181         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
3182         operand subreg cannot be simplified.
3183
3184 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3185
3186         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
3187         (compare_constant): Likewise.
3188         (output_addressed_constants): Likewise.
3189
3190 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3191
3192         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
3193         merge bb with itself.
3194
3195 2002-06-10  Richard Henderson  <rth@redhat.com>
3196
3197         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
3198         (builtin_zapnot): Likewise.
3199
3200         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
3201         reservation.
3202
3203 2002-06-10  Eric Christopher  <echristo@redhat.com>
3204
3205         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
3206         prototype and function.
3207         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
3208         (call_insn_operand): Remove half pic references.
3209         (legitimate_address_p): Ditto.
3210         * config/i386/i386.h: Remove half pic defines.
3211
3212 2002-06-10  Eric Christopher  <echristo@redhat.com>
3213
3214         * doc/extend.texi (Return Address): Add note explaining the side-
3215         effects of inlining on __builtin_return_address.
3216
3217 2002-06-10  Tom Tromey  <tromey@redhat.com>
3218
3219         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
3220         (c-common.o): Depend on langhooks.h.
3221
3222 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3223
3224         * cpphash.h (_cpp_read_logical_line_trad,
3225         _cpp_expansions_different_trad): Update prototypes.
3226         * cpplex.c (continue_after_nul): New.
3227         * cppmain.c: Include cpphash.h.
3228         (scan_translation_unit_trad): New.
3229         (cpp_preprocess_file): Call it.
3230         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
3231         overlay.
3232         (_cpp_expansions_different_trad): Update prototype.
3233
3234 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3235
3236         Fix cfi generation for SH[1-4]:
3237
3238         * sh.c (frame_insn): New function.
3239         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
3240         (push): Now returns rtx.  Use frame_insn.
3241         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
3242         of a DF register.
3243         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
3244
3245 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3246
3247         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
3248         and gtype-desc.c.
3249         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
3250         (distclean): ... not here.  But do delete all testsuite/*.log,
3251         testsuite/*.sum files here.  Delete mkheaders.  Delete
3252         po/*.gmo and the testsuite directory in a split tree build.
3253
3254 2002-06-10  Jeffrey Law  <law@redhat.com>
3255
3256         * alias.c (static_reg_base_value): New to hold RTL for
3257         items allocated once per function for the aliasing code.
3258         (init_alias_once_per_function): Initialize static_reg_base_value.
3259         (init_alias_analysis): Avoid throw-away allocations of RTL by
3260         using pre-computed values in static_reg_base_value.
3261         * function.c (prepare_function_start): Call
3262         init_alias_once_per_function appropriately.
3263         * rtl.h (init_alias_once_per_function): Declare.
3264         * caller-save (init_caller_save): Restructure slightly to
3265         avoid lots of silly RTL generation.
3266         * expr.c (init_expr_once): Likewise.
3267         * reload1.c (reload_cse_regs_1): Allocate throw-away register
3268         RTL object here.  Pass it into children.
3269         (reload_cse_simplify_operands): Use passed-in register RTL
3270         object.
3271         (reload_cse_simplify): Pass through throw-away register
3272         RTL object.
3273
3274 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
3275
3276         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
3277
3278 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
3279
3280         * gcc.c (process_command): Avoid assignment to read-only location.
3281         Fix sizeof calculation.
3282
3283 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3284
3285         * cpphash.h (struct cpp_macro): Put comments on their own lines.
3286         (_cpp_expansions_different_trad): New.
3287         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
3288         * cpptrad.c (canonicalize_text): New.
3289         (scan_out_logical_line): Handle no arguments correctly.
3290         (save_replacement_text): Commit memory when finished.
3291         (_cpp_expansions_different_trad): New.
3292
3293 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3294
3295         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
3296         TREELANG and COBOL.
3297         (lang_names): Add treelang and cobol.
3298         (get_file_basename): Add code to support treelang and cobol as
3299         4th and 5th users of c-common.c.
3300
3301 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
3302
3303         * Makefile.in (install-driver): Install driver as
3304         $(target_alias)-gcc-$(version).
3305         * gcc.c (spec_version): Make const.
3306         (process_command): Handle -V and -b by using exec.
3307         * doc/invoke.texi (Target Options): Restore -V option,
3308         update docs for -b option.
3309
3310 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3311
3312         * configure.in (remaining_languages_check):
3313         Added check that all languages specified were found.
3314         Exit if not found. Previous behaviour was silent failure.
3315         * configure: Regenerated.
3316
3317 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3318
3319          First steps to making treelang documentation compliant, based on
3320          instructions in sourcebuild.texi. Also add to gcc.c list of
3321          default languages.
3322
3323         * doc/contrib.texi: Add self as contributor of treelang.
3324
3325         * doc/frontends.texi: Add mention of treelang.
3326
3327         * doc/invoke.texi (Overall Options): Add mention of treelang.
3328
3329         * doc/standards.texi:  Add mention of treelang.
3330
3331 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
3332
3333         * config/cris/cris.c: Include ggc.h
3334
3335 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3336
3337         * cpphash.h (_cpp_push_text_context): Update.
3338         (_cpp_arguments_ok): New.
3339         * cppmacro.c (_cpp_arguments_ok): New, split out from...
3340         (collect_args): ...here.
3341         (_cpp_push_text_context): Change inputs.
3342         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
3343         replace_args_and_push): New.
3344         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
3345         Don't use IS macros directly.
3346         (scan_out_logical_line): Handle function-like macro argument
3347         collection.
3348         (push_replacement_text): Update.
3349         (replacement_length): Remove.
3350         (_cpp_create_trad_definition): Don't skip whitespace before
3351         checking for '('.
3352
3353 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3354
3355         * config/avr/avr.c (avr_mcu_types): Update for new devices.
3356         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
3357         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
3358         * config/avr/avr.md ("type" and "length" attributes): New type
3359         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
3360         output a single "call" or "rcall" insn depending on device size.
3361         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
3362
3363 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
3364
3365         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
3366         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
3367         assembler option.
3368         (CPP_CPU_SPEC): Add power3 and power4.
3369         (PROCESSOR_DEFAULT): Change to 604e.
3370         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
3371         (CPP_CPU_SPEC): Similar additions.
3372         (enum process_type): Add POWER4.
3373         (RTX_COSTS): Add POWER4.
3374         (CPP_CPU_SPEC): Similar additions.
3375         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3376         (PROCESSOR_DEFAULT64): Define.
3377         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
3378         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
3379         branch adjustment.
3380         (rs6000_issue_rate): Add Power4.
3381         * config/rs6000/rs6000.md (cpu attr): Add power4.
3382         (iu compare): Remove 604, 604e, 620, 630.
3383         Add basic Power4 scheduling information.
3384         (mfcr/mtcrf): Change type attribute to cr_logical.
3385
3386 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3387
3388         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
3389         ATTRIBUTE_PRINTF_2.
3390         * gengtype-lex.l: Fix format specifier warning.
3391
3392         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
3393         not isspace.
3394         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
3395         lieu of isspace/IDchar.
3396         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
3397         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
3398         ISSPACE.
3399
3400 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
3401
3402         * Makefile.in (LIBCPP_OBJS): Take out version.o.
3403         * cpphash.h (cpp_reader): Take out print_version member.
3404         * cppinit.c: (cpp_handle_option): Don't do anything with
3405         -version.  Just set help_only for --version, --target-help.
3406         Just set verbose option for -v.
3407         (cpp_post_options): Don't print a version string.
3408
3409 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3410
3411         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
3412         (avr_section_type_flags): New, handle .noinit* sections.
3413
3414 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3415
3416         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
3417         and include netbsd_entry_point.
3418         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
3419         (NETBSD_ENTRY_POINT): Define.
3420
3421 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3422
3423         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
3424         if not already defined.
3425         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
3426
3427 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3428
3429         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
3430         in a noreturn function.
3431         (avr_output_function_prologue, avr_output_function_epilogue):
3432         Correct function size calculation.  Do not crash on empty function.
3433         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
3434
3435 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3436
3437         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
3438         netbsd_link_spec and netbsd_entry_point.
3439         (LINK_SPEC): Use %(netbsd_link_spec).
3440         (NETBSD_ENTRY_POINT): Define.
3441
3442 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3443
3444         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
3445         linker emulation.
3446         (LINK_ARCH64_SPEC): Likewise.
3447         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
3448         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
3449
3450 2002-06-08  Marc Espie  <espie@openbsd.org>
3451
3452         * lists.c (free_list):  Fix typo in comment.
3453
3454 2002-06-08  Andreas Jaeger  <aj@suse.de>
3455
3456         * lcm.c (optimize_mode_switching): Add unused attribute for
3457         variable.
3458
3459         * sched-deps.c (sched_analyze): Remove unused variable.
3460
3461 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
3462
3463         * diagnostic.def: Don't capitalize diagnostict descriptors.
3464
3465 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3466
3467         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
3468         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
3469         (NETBSD_ENTRY_POINT): Define.
3470
3471 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3472
3473         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
3474         NETBSD_LINK_SPEC_ELF.
3475         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
3476         (NETBSD_ENTRY_POINT): Define.
3477         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
3478         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
3479         netbsd_entry_point.
3480         (NETBSD_ENTRY_POINT): Define.
3481
3482 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3483
3484         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
3485         netbsd_link_spec and netbsd_entry_point.
3486         (LINK_SPEC): Use %(netbsd_link_spec).
3487         (NETBSD_ENTRY_POINT): Define.
3488
3489 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3490
3491         * config/netbsd-elf.h (LINK_SPEC): Rename to...
3492         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
3493         to specify program entry point.
3494
3495 2002-06-07  Jeff Law <law@redhat.com
3496
3497         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
3498         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
3499         than creating a new register.
3500         (distribute_notes): Likewise.
3501         * df.c (df_reg_use_gen): Likewise.
3502         (df_reg_clobber_gen): Likewise.
3503         (df_ref_record): Likewise.
3504         * expr.c (use_regs): Likewise.
3505         * flow.c (propagate_one_insn): Likewise.
3506         (mark_set_1): Likewise.
3507         (mark_used_reg): Likewise.
3508         * reload.c (emit_reload_insns): Likewise.
3509
3510 2002-06-07  Roger Sayle  <roger@eyesopen.com>
3511
3512         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
3513         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
3514         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
3515         comparison code comp can be reversed.
3516
3517 2002-06-07  Roger Sayle  <roger@eyesopen.com>
3518
3519         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
3520         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
3521         equivalent x > -1.0 when -ffast-math.
3522
3523 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3524
3525         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
3526         * config/mips/t-netbsd: New file.
3527
3528 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
3529
3530         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
3531         options their own entries.
3532         (parse_option): Clarify comment.
3533         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
3534         special case.  Replace if/strcmp chain for -W options with
3535         use of new OPT_* entries for them.
3536         (cpp_handle_options): Update to match.
3537         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
3538         * c-decl.c: Update call to cpp_handle_option.
3539
3540 2002-06-07  Akim Demaille  <akim@epita.fr>
3541
3542         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
3543         Whitespace changes.
3544
3545 2002-06-07  Jeffrey Law  <law@redhat.com>
3546
3547         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
3548         on empty lists.
3549
3550 2002-06-07  H.J. Lu  (hjl@gnu.org)
3551
3552         * configure.in: Add --enable-__cxa_atexit.
3553         * configure: Regenerated.
3554         * config.in: Likewise.
3555
3556         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
3557         not defined.
3558
3559 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
3560
3561         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
3562
3563 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3564
3565         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
3566
3567 2002-06-07  Jason Merrill  <jason@redhat.com>
3568
3569         * cppexp.c (num_equality_op): Use a temporary variable to work
3570         around gcc 3.0.4 bug.
3571
3572 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
3573
3574         * diagnostic.c (diagnostic_build_prefix): Tidy.
3575
3576 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3577
3578         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
3579         scan_parameters, save_replacement_text, replacement_length): New.
3580         (scan_out_logical_line): Take a macro and save parameters if
3581         non-NULL.
3582         (_cpp_logical_line_trad): Update.
3583         (_cpp_create_trad_definition): Update to handle function-like
3584         macros.
3585         * cpplex.c (new_buff): Update.
3586         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
3587         * cpphash.h: ...here.
3588         (CPP_ALIGN2, _cpp_save_parameter): New.
3589         * cppmacro.c (save_parameter): Rename, export.
3590         (parse_params): Update.
3591
3592 2002-06-07  Andreas Jaeger  <aj@suse.de>
3593
3594         * config/mmix/mmix.c: Remove extra broken prototype for
3595         mmix_init_machine_status.
3596
3597 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
3598
3599         * gengtype.c: Add comments before all the routines.
3600
3601 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3602
3603         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
3604         from and add t-sh64 to ${tmake_file}.
3605         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
3606         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
3607         * config/sh/t-netbsd-sh5-32: Remove.
3608         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
3609         MULTILIB_ENDIAN.
3610         (MULTILIB_DIRNAMES): Define.
3611
3612 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
3613
3614         * i386.md (and promoting splitters): Disable QI to SImode promoting
3615         when doing so changes immediate to be 32bit.
3616
3617         * rtl.h (emit_*_scope): Declare.
3618         * emit-rtl.c (emit_*_scope): New global functions.
3619         (try_split): Copy scope.
3620         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3621         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3622         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
3623         noce_process_if_block, find_cond_trap): Copy scopes.
3624         * recog.c (peephole2_optimize): likewise.
3625
3626 2002-06-06  Jeffrey Law  <law@redhat.com>
3627
3628         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
3629
3630 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
3631
3632         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
3633
3634 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3635
3636         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
3637         ($(docdir)/gccinstall.info): New target.
3638         (info): Depend on it.
3639         (gccinstall.dvi): New target.
3640         (dvi): Depend on it.
3641         * doc/.cvsignore: Ignore new info files.
3642         * doc/install.texi (@setfilename): Reflect new info filename.
3643
3644 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
3645
3646         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
3647         on an UNSPEC.
3648
3649 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
3650
3651         PR objc/6834
3652         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
3653         c_common_get_alias_set.
3654         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
3655
3656 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3657
3658         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
3659         functions.
3660         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
3661         * avr/avr.c (avr_output_function_epilogue): Use above to determine
3662         function size.
3663         * pa/pa.c (pa_output_function_prologue): Likewise.
3664
3665 2002-06-05  David S. Miller  <davem@redhat.com>
3666
3667         * integrate.c (subst_constants): Handle 'B' RTL format.
3668
3669 2002-06-05  Eric Christopher  <echristo@redhat.com>
3670
3671         * varasm.c (make_decl_rtl): Fix comment for removed
3672         halfpic.c.
3673
3674 2002-06-05  Eric Christopher  <echristo@redhat.com>
3675
3676         * Makefile.in: Remove missed halfpic bits.
3677
3678 2002-06-05  Eric Christopher  <echristo@redhat.com>
3679
3680         * toplev.c: Remove half-pic.
3681         * config/mips/mips.c: Ditto.
3682         * config/mips/mips.h: Ditto. Remove unused defines.
3683         * config/mips/openbsd.h: Update comment to reflect above.
3684         * config/mips/mips.md: Remove half-pic constraints.
3685         * halfpic.h: Delete.
3686         * halfpic.c: Ditto.
3687
3688 2002-06-05  Jeffrey Law  <law@redhat.com>
3689
3690         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
3691         rejects (mem (lo_sum (reg) (unspec))), but will allow
3692         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
3693
3694 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3695
3696         * cpphash.h (_cpp_create_definition): Update prototype.
3697         (_cpp_push_text_context, _cpp_create_trad_definition): New.
3698         ( cpp_lex_identifier_trad): New.
3699         (_cpp_set_trad_context): New.
3700         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
3701         * cpplib.c (SEEN_EOL): Update.
3702         (lex_macro_node): Update for -traditional.
3703         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
3704         * cppmacro.c (_cpp_create_definition): Split into
3705         create_iso_definition() and _cpp_create_trad_definition().
3706         (warn_of_redefinition): Update prototype; handle traditional
3707         macros.
3708         (_cpp_push_text_context): New.
3709         * cpptrad.c (skip_whitespace, push_replacement_text): New.
3710         (lex_identifier): Call ht_lookup with correct start.
3711         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
3712         _cpp_set_trad_context): New.
3713         (scan_out_logical_line): Update to handle changing contexts.
3714
3715 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
3716
3717         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
3718         (shl*-*-elf*): Add.
3719         * config/sh/t-be (MULTILIB_ENDIAN): Set.
3720         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
3721         * t-sh (MULTILIB_ENDIAN): Set.
3722         (MULTILIB_OPTIONS): Use it.
3723         * t-sh64 (MULTILIB_OPTIONS): Likewise.
3724         (MULTILIB_DIRNAMES): Likewise.
3725
3726 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
3727
3728         * toplev.h (report_error_function): Remove.
3729
3730         * diagnostic.h (location_t): New datatype.
3731         (text_info): Likewise.
3732         (diagnostic_info): Likewise.
3733         (output_prefix): New macro.
3734         (diagnostic_last_function_changed): Likewise.
3735         (diagnostic_set_last_function): Likewise.
3736         (diagnostic_last_module_changed): Likewise.
3737         (diagnostic_set_last_module): Likewise.
3738         (report_diagnostic): Now macro.
3739         (diagnostic_set_info): Declare.
3740
3741         * diagnostic.c (report_problematic_module): Rename to
3742         diagnostic_repor_current_module.
3743         (set_diagnostic_context): Remove.
3744         (count_error): Rename to diagnostic_error_count.
3745         (error_function_changed): Remove.
3746         (record_last_error_function): Likewise.
3747         (error_module_changed): Likewise.
3748         (record_last_error_module): Likewise.
3749         (context_as_prefix): Rename to diagnostic_build_prefix.
3750         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
3751         (diagnostic_set_info): New function.
3752
3753         * objc/objc-act.c: #include diagnostic.h
3754         (error_with_ivar): Adjust call to count_error.
3755         (warn_with_method): Likewise.
3756         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
3757
3758 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
3759
3760         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
3761         lang_hooks.types.make_type instead of make_node; set up
3762         __va_list_tag type decl.
3763         (xtensa_builtin_saveregs): Remove broken use of
3764         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
3765         for saved registers; add varargs alias set.
3766
3767 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3768
3769 config:
3770         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
3771         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
3772         CPP_PREDEFINES and part of CPP_SPEC.
3773         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
3774         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
3775
3776 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
3777
3778         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
3779
3780 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
3781
3782         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
3783
3784 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
3785
3786         * gengtype-yacc.y: Make sure all rules end with a semicolon.
3787
3788 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
3789
3790         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
3791         typo in function prototype and include "ggc.h" header.
3792
3793 2002-06-04  Richard Henderson  <rth@redhat.com>
3794
3795         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
3796         (print_operand) ['U']: Likewise.
3797         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
3798         (alpha_expand_unaligned_store_words): Likewise.
3799         (alpha_expand_builtin_vector_binop): Fix typo.
3800         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
3801         umulh, and cix insns.
3802         (one_arg_builtins): Add cix builtins.
3803         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
3804         (alpha_expand_builtin): Fix typo in arity.
3805         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
3806         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
3807         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
3808         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
3809         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
3810         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
3811         builtin_ctlz, builtin_ctpop): New.
3812         * doc/extend.texi (Alpha Built-in Functions): Update.
3813
3814 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
3815
3816         * gengtype.c (write_gc_root): Don't unnecessarily prevent
3817         global variable-length arrays being roots.
3818
3819         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
3820         * configure.in (config_gtfiles): New variable.
3821         (all_gtfiles): Initialise from config_gtfiles.
3822         * configure: Regenerate.
3823
3824 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3825
3826 config/i386:
3827         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
3828         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
3829         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
3830         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
3831         win32.h (CPP_SPEC): Remove cpp_cpu.
3832         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
3833         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
3834
3835 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
3836
3837         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
3838
3839 2002-06-04  Jeff Law <law@redhat.com.
3840             David Edelsohn <edelsohn@gnu.org>
3841             Michael Matz <matz@kde.org>
3842
3843         * sched-int.h (struct deps): New field libcall_block_tail_insn.
3844         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
3845         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
3846         is set, then mark the current insn as being part of a libcall
3847         scheduling group.
3848         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
3849
3850         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
3851         insns against the issue rate.
3852
3853 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
3854
3855         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
3856         * final.c (final_scan_insn): Likewise.
3857         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
3858         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
3859         * haifa-sched.c (unlink_other_notes): Likeewise.
3860         (reemit_notes): Likewise.
3861         * print-rtl.c (print_rtx): Likewise.
3862         * sched-deps (sched-analyze): Likewise.
3863         * rtl.c (note_insn_name): Likewise.
3864         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
3865         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
3866         (RANGE_*): Kill.
3867
3868 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
3869
3870         * varasm.c (mark_constants): Handle RTX format 'B'.
3871
3872 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3873
3874         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
3875         (struct cpp_context): Add traditional fields.
3876         * cppmacro.c (paste_all_tokens, push_ptoken_context,
3877         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
3878         * cpptrad.c (skip_comment, lex_identifier,
3879         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
3880
3881 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
3882
3883         * gbl-ctors.h: Fix formatting.
3884         * gcc.c: Likewise.
3885         * gccspec.c: Likewise.
3886         * gcov.c: Likewise.
3887         * gcov-io.h: Likewise.
3888         * gcse.c: Likewise.
3889         * ggc-common.c: Likewise.
3890         * ggc.h: Likewise.
3891         * ggc-page.c: Likewise.
3892         * ggc-simple.c: Likewise.
3893         * global.c: Likewise.
3894         * graph.h: Likewise.
3895         * gthr-dce.h: Likewise.
3896         * gthr.h: Likewise.
3897         * gthr-posix.h: Likewise.
3898         * gthr-rtems.h: Likewise.
3899         * gthr-solaris.h: Likewise.
3900         * gthr-win32.h: Likewise.
3901
3902 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
3903
3904         Merge from pch-branch:
3905
3906         * gengtype.h (UNION_OR_STRUCT_P): New macro.
3907         * gengtype.c (write_gc_structure_fields): Use it.
3908         (write_gc_root): Use it here too.
3909
3910         * gengtype.c (write_gc_structure_fields): Assume that lengths
3911         of typenames fit into an 'int'; don't pass a size_t to "%d" in
3912         printf.
3913         (write_gc_marker_routine_for_structure): Likewise.
3914         (write_gc_types): Likewise.
3915         (write_gc_root): Likewise.
3916
3917         * varray.h (VARRAY_CLEAR): New.
3918         (varray_clear): Prototype.
3919         * varray.c (varray_clear): New.
3920         * cselib.c (reg_values_old): New.
3921         (used_regs_old): New.
3922         (cselib_init): Use cached varrays if available to avoid
3923         generating large amounts of garbage.
3924         (cselib_finish): Don't throw away old varrays.
3925
3926         * final.c (insn_addresses_): Move out of ifdef.
3927
3928         * varray.c (uses_ggc): Make more varray kinds GCable.
3929         * varray.h (union varray_data_tag): Let gengtype see
3930         fields 'generic' and 'te'.
3931         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
3932         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
3933         (reg_to_stack): Don't call VARRAY_FREE.
3934         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
3935         (insn_addresses_): Use gengtype to mark.
3936         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
3937         pointers; handle generic pointers in unused union fields.
3938         (get_output_file_with_visibility): Include cselib.h,
3939         insn-addr.h in gtype-desc.c.
3940         * function.c (prologue): Use gengtype to mark.
3941         (epilogue): Likewise.
3942         (sibcall_epilogue): Likewise.
3943         * dependence.c: Include gt-dependence.h, ggc.h.
3944         (struct def_use): Use gengtype to mark.
3945         (struct loop): Likewise.
3946         (struct induction): Likewise.
3947         (struct dependence): Likewise.
3948         (def_use_chain): Likewise.
3949         (dep_chain): Likewise.
3950         (loop_chain): Likewise.
3951         (induction_chain): Likewise.
3952         (init_dependence_analysis): Don't free anything, just clear pointers.
3953         (build_def_use): Use GGC to allocate def_use.
3954         (add_loop): Use GGC to allocate loop.
3955         (find_induction_variable): Use GGC to allocate induction.
3956         (check_node_dependence): Use GGC to allocate induction, dependence.
3957         (dump_node_dependence): Don't free varrays.
3958         (end_dependence_analysis): Likewise.
3959         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
3960         (struct elt_loc_list): Likewise.
3961         (struct elt_list): Likewise.
3962         * cselib.c: Don't include obstack.h.
3963         (hash_table): Use gengtype to mark.
3964         (reg_values): Use gengtype to mark.
3965         (used_regs): Use gengtype to mark.
3966         (cselib_obstack): Delete.
3967         (cselib_startobj): Delete.
3968         (empty_vals): Mark as deletable.
3969         (empty_elt_lists): Mark as deletable.
3970         (empty_elt_loc_lists): Mark as deletable.
3971         (new_elt_list): Use GGC to allocate struct elt_list.
3972         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
3973         (clear_table): Don't delete obstack; don't unnecessarily clear
3974         deletable variables.
3975         (new_cselib_val): Use GGC to allocate struct cselib_val.
3976         (cselib_init): Don't set up obstacks.  Use GGC to allocate
3977         hash table.
3978         (cselib_finish): Just clear variables, don't free anything.
3979         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
3980         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
3981         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
3982         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
3983         (gt-reg-stack.h): New rule.
3984         (gt-dependence.h): New rule.
3985         (gtype-desc.o): Add cselib.h, insn-addr.h.
3986
3987         * varray.c: Use only necessary headers.
3988         (element_size): New.
3989         (uses_ggc): New.
3990         (varray_init): Take type, not size.  Use GGC if appropriate.
3991         (varray_grow): Update for change to struct varray_head_tag.
3992         Use GGC if appropriate.
3993         * varray.h (struct const_equiv_data): Use gengtype.
3994         (enum varray_data_enum): New.
3995         (union varray_data_tag): Use gengtype.
3996         (struct varray_head_tag): Use gengtype.  Replace size field with
3997         enum varray_data_enum.
3998         (varray_init): Update prototype.
3999         (VARRAY_SCHED_INIT): Delete.
4000         (VARRAY_*_INIT): Update for change to varray_init.
4001         (VARRAY_SCHED): Delete.
4002         (VARRAY_PUSH_SCHED): Delete.
4003         (VARRAY_TOP_SCHED): Delete.
4004         * tree.h: Update for change to length specifier.
4005         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
4006         (clone_body): Likewise.
4007         * ssa.h (ssa_definition): Use gengtype to mark.
4008         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
4009         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
4010         * rtl.h (struct rtvec_def): Update for change to length specifier.
4011         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
4012         (struct initial_value_struct): Update for change to length specifier.
4013         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
4014         (ggc_add_tree_varray_root): Delete prototype.
4015         (ggc_mark_rtx_varray): Delete prototype.
4016         (ggc_mark_tree_varray): Delete prototype.
4017         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
4018         (ggc_add_tree_varray_root): Delete.
4019         (ggc_mark_rtx_varray): Delete.
4020         (ggc_mark_tree_varray): Delete.
4021         (ggc_mark_rtx_varray_ptr): Delete.
4022         (ggc_mark_tree_varray_ptr): Delete.
4023         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
4024         (create_varray): Delete prototype.
4025         * gengtype.c (varrays): Delete.
4026         (create_varray): Delete.
4027         (adjust_field_type): Detect array of string pointers.
4028         (process_gc_options): Remove code to handle varray_type option.
4029         (set_gc_used_type): Remove TYPE_VARRAY case.
4030         (output_escaped_param): New.
4031         (write_gc_structure_fields): Use output_escaped_param on all
4032         parameters.  Handle 'skip' with 'use_param' option.  Handle
4033         arrays of strings.  Remove TYPE_VARRAY handling.
4034         (write_gc_roots): Use boolean to detect 'length' option.
4035         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
4036         (struct_fields): Call adjust_field_type on array fields.
4037         (type): Remove VARRAY_TYPE case.
4038         (type_option): Likewise.
4039         * gengtype-lex.l: Don't consider varray_type a keyword.
4040         * function.h: Update for change to length specifier.
4041         (free_eh_status): Delete prototype.
4042         * function.c (free_after_compilation): Don't call free_eh_status.
4043         (reorder_blocks): Don't use VARRAY_FREE.
4044         * except.c (struct eh_status): Update for change to length specifier.
4045         remove varray_type specifier.
4046         (free_eh_status): Delete.
4047         * dwarf2out.c: Include gt-dwarf2out.h.
4048         (used_rtx_varray): Use gengtype to mark, move
4049         outside ifdefs.
4050         (incomplete_types): Likewise.
4051         (decl_scope_table): Likewise.
4052         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
4053         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
4054         * c-tree.h (struct lang_type): Update for change to length specifier.
4055         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
4056         * c-objc-common.c: Include gt-c-objc-common.h.
4057         (deferred_fns): Mark for gengtype.
4058         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
4059         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
4060         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
4061         (gtype-desc.o): Update dependencies.
4062         (dwarf2out.o): Add gt-dwarf2out.h.
4063         (varray.o): Update dependencies.
4064         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
4065         (gt-c-objc-common.h): New rule.
4066         (gt-dwarf2out.h): New rule.
4067         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
4068
4069         * doc/gty.texi (GTY Options): Correct spelling.
4070         (GGC Roots): Likewise.
4071         * Makefile.in (TEXI_CPP_FILES): New.
4072         (TEXI_GCC_FILES): New.
4073         (TEXI_GCCINT_FILES): New.
4074         (TEXI_CPPINT_FILES): New.
4075         ($(docdir)/cpp.info): Use new macros.
4076         ($(docdir)/gcc.info): Likewise.
4077         ($(docdir)/gccint.info): Likewise.
4078         ($(docdir)/cppinternals.info): Likewise.
4079         (cpp.dvi): Likewise.
4080         (gcc.dvi): Likewise.
4081         (gccint.dvi): Likewise.
4082         (cppinternals.dvi): Likewise.
4083
4084         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
4085         * doc/gccint.texi (Top): Include gty.texi.
4086         * doc/gty.texi: New file.
4087
4088         * bitmap.c: Include ggc.h, gt-bitmap.h.
4089         (bitmap_ggc_free): New.
4090         (bitmap_elem_to_freelist): New.
4091         (bitmap_element_free): Use bitmap_elem_to_freelist.
4092         (bitmap_element_allocate): Allow use of GGC.
4093         (bitmap_clear): Use bitmap_elem_to_freelist.
4094         (bitmap_copy): Update for change to bitmap_element_allocate.
4095         (bitmap_set_bit): Likewise.
4096         (bitmap_operation): Update for changes elsewhere.
4097         (bitmap_initialize): Allow to create bitmaps that will use GGC.
4098         * bitmap.h (struct bitmap_element_def): Use gengtype.
4099         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
4100         (bitmap_initialize): Add extra parameter.
4101         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
4102         (BITMAP_ALLOCA): Delete.
4103         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
4104         (BITMAP_GGC_ALLOC): New.
4105         * Makefile.in (gtype-desc.o): Add bitmap.h.
4106         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
4107         (GTFILES): Add bitmap.c.
4108         (gt-bitmap.h): New rule.
4109         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
4110         * basic-block.h: Update for changes to bitmap_initialize.
4111         * except.c (exception_handler_label_map): Move into...
4112         (struct eh_status): Here.
4113         (struct eh_region): Make 'aka' GCable.
4114         (free_eh_status): Don't need to specially handle
4115         exception_handler_label_map.
4116         (add_ehl_entry): Update for changes to exception_handler_label_map.
4117         (find_exception_handler_labels): Likewise.
4118         (remove_exception_handler_label): Likewise.
4119         (maybe_remove_eh_handler): Likewise.
4120         (for_each_eh_label): Likewise.
4121         (remove_eh_handler): Allocate 'aka' using GGC.
4122         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
4123         to list of includes.
4124
4125         * gengtype.c (write_gc_marker_routine_for_structure): Name
4126         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
4127         (write_gc_types): Arrange for the tests with NULL to be inlined.
4128         (write_gc_roots): Update uses of procedure pointers.
4129         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
4130
4131         * Makefile.in (explow.o): Add dependency on gt-explow.h.
4132         (sdbout.o): Add dependency on gt-sdbout.h.
4133
4134         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
4135         (mem_attrs_htab): Likewise.
4136         (init_emit_once): Don't call ggc_add_deletable_htab.
4137         * fold-const.c (size_htab): Use gengtype to clear unused entries.
4138         (size_int_type_wide): Don't call ggc_add_deletable_htab.
4139         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
4140         parameters, use them, change callers.
4141         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
4142         (write_gc_roots): Handle 'if_marked' option.
4143         (main): Don't need to call set_gc_used_type any more.
4144         * ggc.h (ggc_htab_marked_p): Delete.
4145         (ggc_htab_mark): Delete.
4146         (struct ggc_cache_tab): New.
4147         (gt_ggc_cache_rtab): New declaration.
4148         * ggc-common.c (struct d_htab_root): Delete.
4149         (d_htab_roots): Delete.
4150         (ggc_add_deletable_htab): Delete.
4151         (ggc_htab_delete): Handle new htab-deleting mechanism.
4152         (ggc_mark_roots): Use new htab-deleting mechanism.
4153         * tree.c (type_hash_table): Use gengtype to clear unused entries.
4154         Make static.
4155         (init_obstacks): Don't call ggc_add_deletable_htab.
4156
4157         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
4158         (struct hashed_entry): Likewise.
4159         (nst_method_hash_list): Likewise.
4160         (cls_method_hash_list): Likewise.
4161         (HASH_ALLOC_LIST_SIZE): Delete.
4162         (ATTR_ALLOC_LIST_SIZE): Delete.
4163         * objc/objc-act.c (hash_init): Use ggc to allocate
4164         nst_method_hash_list, cls_method_hash_list.
4165         (hash_enter): Use ggc to allocate; allocate one entry at a time.
4166         (hash_add_attr): Likewise.
4167         (ggc_mark_hash_table): Delete.
4168         (objc_act_parse_init): Delete.
4169         (objc_init): Delete reference to objc_act_parse_init.
4170         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
4171         obstack.h.  Replace references to 'struct hash_table' with htab_t.
4172         (struct symbol_hash_entry): Replace hash header with key field.
4173         (struct file_hash_entry): Replace hash header with key field.
4174         (struct demangled_hash_entry): Replace hash header with key field.
4175         (hash_string_eq): New.
4176         (hash_string_hash): New.
4177         (symbol_hash_newfunc): Delete.
4178         (symbol_hash_lookup): Modify to use htab_t.
4179         (file_hash_newfunc): Delete.
4180         (file_hash_lookup): Modify to use htab_t.
4181         (demangled_hash_newfunc): Delete.
4182         (demangled_hash_lookup): Modify to use htab_t.
4183         (tlink_init): Modify to use htab_t.
4184         * hash.h: Delete.
4185         * hash.c: Delete.
4186         * ggc.h: Delete forward structure declarations.
4187         Delete prototypes for deleted functions.
4188         * ggc-common.c: Don't include hash.h.
4189         (ggc_add_tree_hash_table_root): Delete.
4190         (ggc_mark_tree_hash_table_entry): Delete.
4191         (ggc_mark_tree_hash_table): Delete.
4192         (ggc_mark_tree_hash_table_ptr): Delete.
4193         * gengtype.c (write_gc_structure_fields): Allow param_is option.
4194         (write_gc_marker_routine_for_structure): Use visibility of
4195         the parameter if there is one.
4196         * function.c: Replace hash.h with hashtab.h.  Replace references
4197         to 'struct hash_table *' with htab_t.
4198         (struct insns_for_mem_entry): Include a plain key.
4199         (fixup_var_refs_insns_with_hash): Update to use htab_t.
4200         (insns_for_mem_newfunc): Delete.
4201         (insns_for_mem_hash): Update to use htab_t.
4202         (insns_for_mem_comp): Likewise.
4203         (insns_for_mem_walk): Likewise.
4204         * c-lang.c: Include ggc.h.
4205         * Makefile.in (OBJS): Remove hash.o.
4206         (c-lang.o): Add GGC_H.
4207         (COLLECT2_OBJS): Remove hash.o.
4208         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
4209         (ggc-common.o): Remove hash.h.
4210         (function.o): Remove hash.h, add HASHTAB_H.
4211         (genautomata.o): Remove hash.h, add HASHTAB_H.
4212
4213         * varasm.c (mark_const_str_htab_1): Delete.
4214         (mark_const_str_htab): Delete.
4215         (const_str_htab_del): Delete.
4216         (const_str_htab): Use gengtype to mark.
4217         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
4218         allocate them.
4219         * tree.c (mark_tree_hashtable_entry): Delete.
4220         (mark_tree_hashtable): Delete.
4221         * tree.h (mark_tree_hashtable): Delete prototype.
4222         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
4223         (ggc_mark): Likewise.
4224         (ggc_calloc): New.
4225         (htab_create_ggc): New.
4226         * ggc-common.c (ggc_calloc): New.
4227         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
4228         (struct type): Add param_struct structure.
4229         * gengtype.c (param_structs): New.
4230         (adjust_field_type): Handle param_is option.
4231         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
4232         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
4233         (write_gc_structure_fields): Add new PARAM parameter.  Update
4234         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
4235         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
4236         Use it to generate function name.  Update callers.
4237         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
4238         Process them.
4239         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
4240         option.
4241         (main): Define PTR as pointer-to-scalar.  Don't specially
4242         mark deferred_string or ehl_map_entry.
4243         * gengtype-yacc.y (PARAM_IS): Add new token.
4244         (externstatic): Use adjust_field_type.
4245         (type_option): Add PARAM_IS.
4246         * gengtype-lex.l: Add rule for typedef of function pointers.
4247         Add rule for PARAM_IS.
4248         (IWORD): Add size_t.
4249         * except.c (exception_handler_label_map): Use gengtype to mark.
4250         (type_to_runtime_map): Likewise.
4251         (mark_ehl_map_entry): Delete.
4252         (mark_ehl_map): Delete.
4253         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
4254         (t2r_mark_1): Delete.
4255         (t2r_mark): Delete.
4256         * Makefile.in (gtype-desc.o): Correct dependencies.
4257         (GTFILES): Add hashtab.h.
4258         (genautomata.o): Actually uses hashtab.h.
4259
4260         * Makefile.in (stringpool.o): Add $(GGC_H).
4261         (dwarf2asm.o): Likewise.
4262         (GTFILES): Add hashtable.h.
4263         * c-common.h (struct c_common_identifier): Use gengtype.
4264         * c-decl.h (c_mark_tree): Delete.
4265         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4266         * c-tree.h (struct lang_identifier): Use gengtype.
4267         (union lang_tree_node): New.
4268         (c_mark_tree): Delete prototype.
4269         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
4270         dwarf2_debug_hooks.
4271         * gengtype-lex.l (IWORD): Allow 'bool'.
4272         (ptr_alias): Match.
4273         * gengtype-yacc.y (ALIAS): New token.
4274         (type_option): New rule.
4275         (option): Use type_option.
4276         * gengtype.c (process_gc_options): New.
4277         (set_gc_used_type): Use it.
4278         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
4279         Add new variable 't' to hold the type of the field being processed.
4280         Add more error checking.  Use UNION_P when looking at 'desc' option.
4281         Handle language-specific structures containing other
4282         language-specific structures.
4283         (write_gc_types): Handle 'ptr_alias' option.
4284         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
4285         * ggc-common.c (ggc_pending_trees): Delete.
4286         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
4287         (ggc_mark_trees): Delete.
4288         (gt_ggc_m_tree_node): Delete.
4289         * ggc.h (ggc_pending_trees): Delete.
4290         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
4291         * hashtable.h (ht_identifier): Use gengtype.
4292         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
4293         * langhooks.h (struct lang_hooks): Delete mark_tree.
4294         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
4295         anyway.
4296         * system.h: Poison LANG_HOOKS_MARK_TREE.
4297         * tree.c (tree_node_structure): New.
4298         * tree.h (struct tree_common): Use gengtype.
4299         (struct tree_int_cst): Likewise.
4300         (struct tree_real_cst): Likewise.
4301         (struct tree_string): Likewise.
4302         (struct tree_complex): Likewise.
4303         (struct tree_vector): Likewise.
4304         (struct tree_identifier): Likewise.
4305         (struct tree_list): Likewise.
4306         (struct tree_vec): Likewise.
4307         (struct tree_exp): Likewise.
4308         (struct tree_block): Likewise.
4309         (struct tree_type): Likewise.
4310         (struct tree_decl): Likewise.
4311         (enum tree_structure_enum): New.
4312         (union tree_node): Use gengtype, with an alias.
4313         (tree_node_structure): Prototype.
4314         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4315
4316         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
4317         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
4318         to LANG_HOOKS_FUNCTION_FINAL.
4319         * Makefile.in (GTFILES): Add bitmap.h.
4320         * except.c (struct eh_region): Mark field 'aka' to be skipped.
4321
4322         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
4323         (alpha_init_machine_status): Give proper type.
4324         * Makefile.in (c-lang.o): Depend on gtype-c.h.
4325         (optabs.o): Depend on gt-optabs.h.
4326         (GTFILES): Add optabs.o.
4327         (gt-optabs.h): Add rule.
4328         * optabs.c: Include gt-optabs.h.
4329
4330         * gengtype.c (set_gc_used_type): Correct some errors in last change.
4331         (write_gc_structure_fields): If a field which should be NULL is
4332         not, abort.
4333         * c-pragma.c: Move struct align_stack and variable alignment_stack
4334         out from the ifdef.
4335
4336         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
4337         * config/xtensa/xtensa.c: Include gt-cris.h.
4338         (struct machine_function): Use gengtype to mark.
4339         * config/mmix/mmix.h (struct machine_function): Use gengtype
4340         to mark.
4341         * config/cris/t-cris: Add dependencies for gt-cris.h.
4342         * config/cris/cris.c: Include gt-cris.h.
4343         (struct machine_function): Use gengtype to mark.
4344         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
4345         to mark.
4346         * doc/tm.texi (Per-Function Data): Delete references to
4347         mark_machine_status.
4348         * config/ia64/ia64.c (ia64_override_options): Don't set
4349         mark_machine_status.
4350         * config/i386/i386.c (override_options): Likewise.
4351         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
4352         * config/arm/arm.c (arm_init_expanders): Likewise.
4353         * config/alpha/alpha.c (override_options): Likewise.
4354         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
4355         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
4356         (write_gc_structure_fields): Don't handle 'really' option.
4357         Handle 'maybe_null' option.
4358         (write_gc_types): Handle 'maybe_null' option.
4359         * function.h (struct function): Don't use "really".
4360         (mark_machine_status): Delete declaration.
4361         (mark_lang_status): Delete declaration.
4362         (gt_ggc_mr_machine_function): Delete prototype.
4363         (gt_ggc_mr_language_function): Delete prototype.
4364         * function.c (mark_machine_status): Delete.
4365         (mark_lang_status): Delete.
4366         (gt_ggc_mr_machine_function): Delete.
4367         (gt_ggc_mr_language_function): Delete.
4368         * c-tree.h (mark_c_function_context): Delete prototype.
4369         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
4370         * c-decl.c (struct language_function): Rename from struct
4371         c_language_function.  Update uses.  Use gengtype to mark.
4372         (mark_c_function_context): Delete.
4373         * c-common.h (struct c_language_function): Rename from struct
4374         language_function.
4375         (mark_stmt_tree): Delete prototype.
4376         (c_mark_lang_decl): Delete prototype.
4377         (mark_c_language_function): Delete prototype.
4378         * c-common.c (mark_stmt_tree): Delete.
4379         (c_mark_lang_decl): Delete.
4380         (mark_c_language_function): Delete.
4381
4382         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
4383         (lang_bitmap): New typedef.  Use where appropriate.
4384         (struct type): Add gc_used field, lang_struct field.
4385         (UNION_P): New macro.
4386         (new_structure): New prototype.
4387         (find_structure): Remove 'pos' parameter.  Change all callers.
4388         * gengtype-lex.l: Update for changes to find_structure.
4389         * gengtype-yacc.y (typedef_struct): Use new_structure.
4390         (yacc_ids): Suppress warning.
4391         (type): Use new_structure.
4392         * gengtype.c (string_type): Update for changes to struct type.
4393         (find_structure): Just find a structure, don't worry about
4394         creating one.
4395         (new_structure): New.
4396         (note_yacc_type): Use new_structure.
4397         (set_gc_used_type): New.
4398         (set_gc_used): New.
4399         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
4400         (write_gc_types): Handle TYPE_LANG_STRUCT.
4401         (write_gc_marker_routine_for_structure): New.
4402         (main): Call set_gc_used.  Add some calls to set_gc_used_type
4403         for places where GCC doesn't use gengtype properly yet.
4404         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
4405         (gt_ggc_m_tree_node): Likewise.
4406
4407         * varasm.c (copy_constant): Call expand_constant if we hit
4408         something we can't recognise.
4409
4410         * ggc-common.c (ggc_mark_rtvec_children): Delete.
4411         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
4412         (lang_mark_false_label_stack): Delete.
4413         * rtl.h (struct rtvec_def): Use gengtype to mark.
4414         * ggc.h (ggc_mark_rtvec): Delete.
4415         (gt_ggc_m_rtvec_def): Delete.
4416         (ggc_mark_nonnull_tree): Delete.
4417         (ggc_mark_rtvec_children): Delete prototype.
4418         (lang_mark_false_label_stack): Delete declaration.
4419
4420         * gengtype.h (note_yacc_type): Add prototype.
4421         * gengtype.c (note_yacc_type): New function.
4422         * gengtype-lex.l: Add lexer support for yacc files.
4423         * gengtype-yacc.y (start): Extract union from yacc files.
4424         (yacc_union): New rule.
4425         (yacc_typematch): New rule.
4426         (yacc_ids): New rule.
4427         (enum_items): Tweak for efficiency.
4428         (optionseq): Likewise.
4429
4430         * c-common.h (struct language_function): Use gengtype.
4431         (struct c_lang_decl): Likewise.
4432         * c-tree.h (struct lang_decl): Likewise.
4433         (struct lang_type): Likewise.
4434         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
4435         tree language substructures.
4436
4437         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
4438         ggc_mark_tree.
4439         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
4440
4441         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
4442
4443         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
4444         mark. Remove 'data.block.cleanup_ptr' field.
4445         (struct stmt_status): Use usual technique to mark struct nesting.
4446         (gt_ggc_mr_nesting_cond): Delete.
4447         (gt_ggc_mr_nesting_loop): Delete.
4448         (gt_ggc_mr_nesting_block): Delete.
4449         (gt_ggc_mr_nesting_case_stmt): Delete.
4450         (expand_start_cond): Set discriminator.
4451         (expand_start_loop): Likewise.
4452         (expand_start_null_loop): Likewise.
4453         (expand_start_bindings_and_block): Set discriminator.  Don't set
4454         deleted fields.
4455         (expand_decl_cleanup): Replace 'cleanup_ptr' with
4456         &thisblock->data.block.cleanups.
4457         (expand_start_case): Set discriminator.
4458         (expand_start_case_dummy): Set discriminator.
4459
4460         * ggc-callbacks.c: Remove.
4461
4462         * gengtype.h (struct type): Add 'u.s.bitmap' field.
4463         (find_structure): Add 'pos' parameter.
4464         * gengtype-lex.l: Update callers to find_structure.
4465         * gengtype-yacc.y: Likewise.
4466         * gengtype.c (find_structure): Allow for structures to be defined
4467         in multiple language backends.
4468         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
4469         (counter): Rename to gc_counter.
4470         (write_gc_structure_fields): Fail when writing out fields for
4471         an incomplete structure.  Ignore arrays of scalars.  Handle
4472         'tree_vec' special.
4473         (write_gc_types): Reset counter for each procedure written.
4474
4475         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
4476         (free_case_nodes): Delete.
4477         (expand_end_case_type): Delete call to free_case_nodes.
4478
4479         * Makefile.in (cselib.o): Include gt-<filename>.h.
4480         (gcse.o): Likewise.
4481         (profile.o): Likewise.
4482         (alias.o): Likewise.
4483         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
4484         alphabetize backend files.
4485         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
4486         * alias.c: Use gengtype for roots.
4487         * c-common.h (struct stmt_tree_s): Use gengtype.
4488         * c-decl.c: Use gengtype for roots.
4489         * cselib.c: Use gengtype for roots.
4490         * expr.c: Use gengtype for roots.
4491         * fold-const.c: Use gengtype for roots.
4492         * gcse.c: Use gengtype for roots.
4493         * gengtype-lex.l: Handle typedefs of function types.
4494         Allow for empty array bounds.
4495         Allow processing to stop on initialisers.
4496         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
4497         (semiequal): New rule.
4498         * gengtype.c (create_file): Tidy output files.
4499         (get_output_file_with_visibility): Fix paren warning.  Fix bug
4500         involving multiple input files mapping to one output file.
4501         (write_gc_structure_fields): Skip arrays of scalars.
4502         (write_gc_types): Tidy output files.
4503         (write_gc_root): New function.
4504         (write_gc_roots): Fix bugs, add support for roots that are
4505         structures.
4506         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
4507         (ggc_mark_tree_ptr): Delete.
4508         (ggc_add_rtx_root): Delete.
4509         (ggc_add_tree_root): Delete.
4510         (ggc_del_root): Delete.
4511         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
4512         allocate struct initial_value_struct.
4513         * profile.c: Use gengtype for roots.
4514         * sdbout.c: Use gengtype for roots.
4515         * varasm.c (mark_weak_decls): Delete unused prototype.
4516         (mark_const_hash_entry): Delete unused function.
4517         * config/darwin-protos.h: Use gengtype for roots.
4518         (machopic_add_gc_roots): Delete.
4519         * config/arm/arm.c: Use gengtype for roots.
4520         * config/arm/arm.h: Use gengtype for roots.
4521         * config/c4x/c4x-protos.h: Use gengtype for roots.
4522         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
4523         * config/d30v/d30v-protos.h: Use gengtype for roots.
4524         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
4525         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
4526         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
4527         * config/ia64/ia64-protos.h: Use gengtype for roots.
4528         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
4529         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
4530         * config/m68hc11/m68hc11.c (z_reg): Make global.
4531         (z_reg_qi): Make global.
4532         (m68hc11_add_gc_roots): Delete.
4533         * config/mcore/mcore-protos.h: Use gengtype for roots.
4534         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
4535         * config/mips/mips.c (mips_add_gc_roots): Delete.
4536         * config/mips/mips.h: Use gengtype for roots.
4537         * config/mmix/mmix.c (override_options): Use gengtype for roots.
4538         * config/mmix/mmix.h: Use gengtype for roots.
4539         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
4540         * config/mn10200/mn10200.h: Use gengtype for roots.
4541         * config/pa/pa.c: Use gengtype for roots, marking.
4542         (struct deferred_plabel): Use GGC, gengtype.
4543         (pa_add_gc_roots): Delete.
4544         (mark_deferred_plabels): Delete.
4545         * config/pj/pj-protos.h: Use gengtype for roots.
4546         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
4547         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
4548         machopic_add_gc_roots.
4549         * config/rs6000/rs6000.h: Use gengtype for roots.
4550         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
4551         (gt-darwin.h): Add rule.
4552         * config/sh/sh.c: Use gengtype for roots.
4553         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
4554         (gt-sh.h): Add rule.
4555         * config/sparc/sparc.c: Use gengtype for roots.
4556         (sparc_add_gc_roots): Delete.
4557         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
4558         (mark_ultrasparc_pipeline_state): Delete.
4559         * config/sparc/sparc.h: Use gengtype for roots.
4560
4561         * Makefile.in (c-parse.o): Update dependencies.
4562         (c-common.o): Likewise.
4563         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
4564         Add dependencies for the files they generate.
4565         * c-common.c: Replace ggc_add_* uses with GTY annotations.
4566         * c-common.h: Likewise.
4567         * c-decl.c: Likewise.
4568         (gt_ggc_mp_binding_level): Delete.
4569         * c-lang.c: Include gtype-c.h.
4570         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
4571         gt-c-parse.h.
4572         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
4573         (gt_ggc_mp_align_stack): Delete.
4574         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
4575         * function.c: Replace ggc_add_* uses with GTY annotations.
4576         (gt_ggc_mp_function): Delete.
4577         * function.h: Replace ggc_add_* uses with GTY annotations.
4578         * gengtype.c (lang_names): New.
4579         (NUM_BASE_FILES): New.
4580         (open_base_files): Create language base files.
4581         (startswith): New.
4582         (get_file_basename): New.
4583         (get_base_file_bitmap): New.
4584         (get_output_file_with_visibility): Rename from get_output_file.
4585         Add more mappings for various C/Objc filenames.
4586         (finish_root_table): New.
4587         (write_gc_roots): Handle dependencies and scoping properly.
4588         * gengtype.h: Add prototypes for new functions.
4589         * ggc-common.c (struct deletable_root): Delete.
4590         (deletables): Delete.
4591         (ggc_add_deletable_root): Delete.
4592         (ggc_mark_roots): No need to deal with deleted functionality.
4593         * ggc.h (ggc_add_deletable_root): Delete prototype.
4594         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
4595         (gtype-objc.h): Add rule to create.
4596         * objc/config-lang.in (gtfiles): New.
4597         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
4598         ggc_add_* with GTY markers.  Include gtype-objc.h.
4599         (ggc_mark_imp_list): Delete.
4600         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
4601         * objc/objc-lang.c: Random Whitespace Change.
4602
4603         * except.h (exception_handler_labels): Delete.
4604         (get_exception_handler_labels): New.
4605         * except.c (exception_handler_labels): Delete.
4606         (struct eh_status): Add exception_handler_labels field.
4607         (doing_eh): Don't add exception_handler_labels as root.
4608         (free_eh_status): Don't need to free exception_handler_labels.
4609         (get_exception_handler_labels): New.
4610         (find_exception_handler_labels): Update for move of
4611         exception_handler_labels.
4612         (remove_exception_handler_label): Likewise.
4613         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
4614         * jump.c (rebuild_jump_labels): Likewise.
4615         * loop.c (find_and_verify_loops): Likewise.
4616         * sched-rgn.c (is_cfg_nonregular): Likewise.
4617
4618         * gengtype.c (write_gc_structure_fields): Handle variable-length
4619         TYPE_ARRAYs.
4620
4621         * varasm.c (struct weak_syms): Use GGC, gengtype.
4622         (mark_weak_decls): Delete.
4623         (weak_decls): Likewise.
4624         (add_weak): Likewise.
4625         (remove_from_pending_weak_list): Likewise.
4626         (init_varasm_once): Likewise.
4627
4628         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
4629         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
4630         stor-layout.c, regclass.c, and lists.c.
4631         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
4632         gt-regclass.h and gt-lists.h on s-gtype.
4633         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
4634         * except.c: Use gengtype for roots.
4635         * explow.c: Use gengtype for roots.  Include gt-explow.h.
4636         * expr.h (init_stor_layout_once): Delete prototype.
4637         * function.c: Use gengtype for roots.
4638         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
4639         * gengtype-yacc.y (start): Can also be an externstatic.
4640         (externstatic): New production.
4641         (struct_fields): Correct array bounds inversion for 2-d arrays.
4642         * gengtype.c (variables): New variable.
4643         (note_variable): New function.
4644         (get_output_file): Include libfuncs.h into gtype-desc.c.
4645         (get_output_file_name): New function.
4646         (write_gc_structure_fields): Suppress warnings.
4647         (write_gc_types): Make static.
4648         (put_mangled_filename): New function.
4649         (write_gc_roots): New function.
4650         (main): Call write_gc_roots.
4651         * gengtype.h (note_variable): Prototype.
4652         (get_output_file_name): Prototype.
4653         (write_gc_types): Delete prototype.
4654         * ggc.h: Clean up unnecessary structure predefinitions.
4655         (struct ggc_root_tab): Define.
4656         (gt_ggc_m_rtx_def): Make function, not macro.
4657         (gt_ggc_m_tree_node): Likewise.
4658         * libfuncs.h: Use gengtype for roots.
4659         * lists.c: Use gengtype for roots.  Include gt-lists.h.
4660         (init_EXPR_INSN_LIST_cache): Delete.
4661         * optabs.c: Use gengtype for roots.
4662         (gt_ggc_mp_optab): Delete.
4663         * optabs.h: Use gengtype for roots.
4664         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
4665         * rtl.h: Use gengtype for roots.
4666         (init_EXPR_INSN_LIST_cache): Delete prototype.
4667         * stor-layout.c: Use gengtype for roots.
4668         Include gt-stor-layout.h.
4669         (init_stor_layout_once): Delete.
4670         * toplev.c: Use gengtype for roots.  Delete calls to deleted
4671         routines.
4672         * tree.c: Use gengtype for roots.
4673         * tree.h: Use gengtype for roots.
4674         * varasm.c: Use gengtype for roots.
4675
4676         * Makefile.in (GTFILES): Add @all_gtfiles@.
4677         * configure: Regenerate.
4678         * configure.in: Construct all_gtfiles from the gtfiles definitions
4679         in config-lang.in.
4680         * gengtype-yacc.y (type): Warn about duplicate structure names.
4681         * gengtype.c (get_output_file): Handle .c files in language
4682         subdirectories.
4683
4684         * Makefile.in (GTFILES): Run gengtype on all the config files
4685         and on the target .c file.
4686         * except.c (mark_eh_region): Delete.
4687         (init_eh_for_function): Use GGC on struct eh_status.
4688         (mark_eh_status): Delete.
4689         (free_eh_status): Use GGC.
4690         (expand_eh_region_start): Use GGC to
4691         (collect_eh_region_array): Allocate last_region_number using GGC.
4692         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
4693         (remove_eh_handler): Let GGC free struct eh_region.
4694         (add_call_site): Use GGC to reallocate call_site_record array.
4695         * function.c (init_machine_status): Update calling sequence.
4696         (mark_machine_status): Likewise.
4697         (mark_lang_status): Likewise.
4698         (prepare_function_start): Update init_machine_status call.
4699         (mark_function_status): Delete.
4700         (maybe_mark_struct_function): Delete.
4701         (ggc_mark_struct_function): Delete.
4702         (gt_ggc_mp_function): New.
4703         (gt_ggc_mr_machine_function): New.
4704         (gt_ggc_mr_language_function): New.
4705         (init_function_once): Use canonical names.
4706         * function.h (struct function): Use gengtype.
4707         (init_machine_status): Return the structure.
4708         (mark_machine_status): Take a 'void *'.
4709         (mark_lang_status): Likewise.
4710         * ggc-common.c (ggc_mark_trees): Use canonical name for
4711         ggc_mark_struct_function.
4712         * tree.h (ggc_mark_struct_function): Delete prototype.
4713         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
4714         (alpha_init_machine_status): Likewise.
4715         (override_options): Use canonical name for alpha_mark_machine_status.
4716         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
4717         * config/arm/arm.h (struct machine_function): Use gengtype.
4718         * config/arm/arm.c (arm_mark_machine_status): Delete.
4719         (arm_init_machine_status): Update calling sequence.
4720         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
4721         * config/cris/cris.c (cris_init_machine_status): Update
4722         calling sequence.
4723         * config/d30v/d30v.h (struct machine_function): Use gengtype.
4724         * config/d30v/d30v.c (d30v_init_machine_status): Update
4725         calling sequence.
4726         (d30v_mark_machine_status): Delete.
4727         * config/i386/i386.c: Include gt-i386.h.
4728         (struct machine_function): Use gengtype.
4729         (ix86_init_machine_status): Update calling sequence.
4730         (ix86_mark_machine_status): Delete.
4731         (override_options): Use canonical namke for ix86_mark_machine_status.
4732         * config/ia64/ia64.h (struct machine_function): Use gengtype.
4733         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
4734         sequence.
4735         (ia64_mark_machine_status): Delete.
4736         (ia64_override_options): Use canonical name for
4737         ia64_mark_machine_status.
4738         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
4739         sequence.
4740         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
4741         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
4742         * gengtype.c (get_output_file): Fix warning.
4743         (main): Add prototype to suppress warning.
4744         * tree.c: Remove tree_hash_mark prototype.
4745
4746         * tree.h (init_stmt): Delete prototype.
4747         * toplev.c (lang_independent_init): Don't call init_stmt.
4748         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
4749         (stmt_obstack): Delete.
4750         (POPSTACK): No need to free 'struct nesting'.
4751         (gt_ggc_mr_nesting_cond): Use canonical names.
4752         (gt_ggc_mr_nesting_loop): Use canonical names.
4753         (gt_ggc_mr_nesting_block): Use canonical names.
4754         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
4755         (mark_stmt_status): Delete.
4756         (init_stmt): Delete.
4757         (clear_last_expr): Clear both last_expr_type and last_expr_value.
4758         Use it everywhere that last_expr_type was cleared.
4759         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
4760         (zap_lists): Delete.
4761         * ggc.h (ggc_add_deletable_root): Prototype.
4762         (mark_stmt_status): Remove prototype.
4763         * ggc-common.c (ggc_add_deletable_root): New.
4764         (ggc_mark_roots): Handle deletable roots.
4765         * function.c (ggc_mark_struct_function): Use canonical name
4766         for mark_stmt_status.
4767         * emit-rtl.c (free_sequence_stack): New.
4768         (start_sequence): Use a freelist for sequences.
4769         (end_sequence): Likewise.
4770         (init_emit_once): Add free_sequence_stack as a deleteable root.
4771         * c-pragma.c Include gt-c-pragma.h.
4772         (struct align_stack): Use gengtype.
4773         (push_alignment): Use GGC for struct align_stack.
4774         (mark_align_stack): Delete.
4775         (gt_ggc_mp_align_stack): New.
4776         (init_pragma): Use canonical name for mark_align_stack.
4777         * c-decl.c: Include gt-c-decl.h.
4778         (struct binding_level): Use gengtype.
4779         (make_binding_level): Use GGC; handle the freelist here.
4780         (pop_binding_level): New.
4781         (pushlevel): Move code into make_binding_level.
4782         (push_label_level): Likewise.
4783         (poplevel): Move code into pop_binding_level.
4784         (pop_label_level): Likewise.
4785         (mark_binding_level): Delete.
4786         (gt_ggc_mp_binding_level): New.
4787         (c_init_decl_processing): Use canonical name for mark_binding_level.
4788         Add free_binding_level as deletable root.
4789         (mark_c_function_context): Use canonical name for mark_binding_level.
4790         * Makefile.in (c-decl.o): Add gt-c-decl.h.
4791         (c-pragma.o): Add gt-c-pragma.h.
4792         (GTFILES): Add c-decl.c and c-pragma.c.
4793         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
4794
4795         * tree.c (struct type_hash): Use gengtype.
4796         (init_obstacks): Use canonical name for type_hash_mark.
4797         (type_hash_mark): Delete.
4798         Include gt-tree.h.
4799         * rtl.h (struct mem_attrs): Use gengtype.
4800         * optabs.h (struct optab): Use gengtype.
4801         * optabs.c (expand_binop): Squish signed/unsigned warning.
4802         (mark_optab): Make local, use canonical name, use autogenerated
4803         marker procedure.
4804         (init_optabs): Use canonical name for mark_optab.
4805         (new_optab): Use GGC to allocate optabs.
4806         * ggc.h: Delete mark_optab prototype.
4807         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
4808         mem_attrs marker procedure.
4809         * gengtype.c (get_output_file): Include headers in gtype-desc.c
4810         explicitly rather than deducing them from file names.
4811         (write_gc_structure_fields): Handle arrays of structures.
4812         (main): Return non-zero exit code if errors occur during output.
4813         * emit-rtl.c (mem_attrs_mark): Delete.
4814         (init_emit_once): Use canonical name for mem_attrs marker procedure.
4815         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
4816         (tree.o): Depend on gt-tree.h.
4817         (GTFILES): Add rtl.h, optabs.h, tree.c.
4818         (gt-tree.h): Add it to s-gtype rule.
4819
4820         * .cvsignore: Ignore gengtype flex/bison generated files.
4821         * Makefile.in (GGC_H): Add gtype-desc.h.
4822         (OBJS): Add gtype-desc.o.
4823         (GEN): Add gengtype.
4824         (STAGESTUFF): Add gengtype.
4825         (varasm.o): Add gt-varasm.h.
4826         (stmt.o): Add gt-stmt.h.
4827         (except.o): Add gt-except.h.
4828         (integrate.o): Add gt-integrate.h.
4829         (GTFILES): New.
4830         Add new rules for new files.
4831         * configure: Regenerate.
4832         * configure.in: Correct defaults.h paths.
4833         * emit-rtl.c (mark_sequence_stack): Delete.
4834         (mark_emit_status): Delete.
4835         (start_sequence): Allocate sequence structures using GGC.
4836         (end_sequence): Allocate sequence structures using GGC.
4837         * except.c: Use gengtype for various structures.  Include
4838         gt-except.h.
4839         * expr.c (mark_expr_status): Delete.
4840         * function.c: Use gengtype for various structures.  Include
4841         gt-function.h.
4842         (mark_function_status): Use standard gt_ggc names for marker functions.
4843         (ggc_mark_struct_function): Likewise.
4844         * function.h: Use gengtype for various structures.
4845         * gengtype-lex.l: New file.
4846         * gengtype-yacc.y: New file.
4847         * gengtype.c: New file.
4848         * gengtype.h: New file.
4849         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
4850         the standard names.  Remove some now-unnecessary prototypes.
4851         * integrate.c: Use gengtype for various structures.  Include
4852         gt-integrate.h.
4853         (mark_hard_reg_initial_vals): Delete.
4854         * integrate.h (mark_hard_reg_initial_vals): Delete.
4855         * stmt.c: Use gengtype for various structures.  Include
4856         gt-stmt.h.
4857         (mark_case_node): Delete.
4858         (mark_goto_fixup): Delete.
4859         (mark_stmt_status): Use standard gt_ggc names for marker functions.
4860         * system.h: Define GTY to empty.   In flex/bison files,
4861         don't poison malloc or realloc, instead just define them to
4862         xmalloc and xrealloc.
4863         * varasm.c: Use gengtype for various structures.  Include
4864         gt-varasm.h.  Use standard gt_ggc names for marker functions.
4865         (mark_pool_constant): Delete.
4866         (mark_varasm_status): Delete.
4867         (decode_rtx_const): #if 0 out non-typesafe hack.
4868
4869         * function.h (free_lang_status): Mark as obsolete.
4870         * function.c (free_lang_status): Mark as obsolete.
4871         * c-decl.c (push_c_function_context): Use GC to allocate and free
4872         struct language_function.
4873         (pop_c_function_context): Likewise.
4874         * c-common.c (mark_c_language_function): Mark struct
4875         language_function.
4876
4877         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
4878         Document that the machine_function structures must be allocated
4879         using GC.  Update mark_machine_status documentation.
4880         * function.h: Don't declare free_machine_status.
4881         * function.c (free_machine_status): Don't define.
4882         (free_after_compilation): Don't call free_machine_status.
4883         (ggc_mark_struct_function): Mark f->machine.  Call
4884         mark_machine_status only on non-NULL pointers.
4885         * system.h: Poison free_machine_status.
4886         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
4887         struct machine_function.
4888         (xtensa_free_machine_status): Delete.
4889         (override_options): Don't set free_machine_status.
4890         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
4891         free_machine_status.
4892         (rs6000_init_machine_status): Use GC on struct machine_function.
4893         (rs6000_free_machine_status): Delete.
4894         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
4895         machine_function.
4896         (ia64_mark_machine_status): Likewise.
4897         (ia64_free_machine_status): Delete.
4898         (ia64_override_options): Don't set free_machine_status.
4899         * config/i386/i386.c (override_options): Don't set
4900         free_machine_status.
4901         (ix86_init_machine_status): Use GC on struct machine_function.
4902         (ix86_mark_machine_status): Likewise.
4903         (ix86_free_machine_status): Delete.
4904         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
4905         machine_function.
4906         (d30v_mark_machine_status): Likewise.
4907         (d30v_free_machine_status): Delete.
4908         (d30v_init_expanders): Don't set free_machine_status.
4909         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
4910         machine_function.
4911         (arm_init_machine_status): Likewise.
4912         (arm_free_machine_status): Delete.
4913         (arm_init_expanders): Don't set free_machine_status.
4914         * config/alpha/alpha.c (override_options): Don't set
4915         free_machine_status.
4916         (alpha_init_machine_status): Use GC on struct machine_function.
4917         (alpha_mark_machine_status): Likewise.
4918         (alpha_free_machine_status): Delete.
4919
4920         * varasm.c (compare_constant): Fix typo.
4921
4922         * varasm.c: Don't include obstack.h.
4923         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
4924         (struct rtx_const): Give substructures names, improve formatting.
4925         (struct constant_descriptor): Delete.
4926         (struct constant_descriptor_tree): New, based on constant_descriptor.
4927         (const_hash_table): Is a hash table of trees.
4928         (mark_const_hash_entry): Is used for hashes of trees.  Mark
4929         constant_descriptor_tree structure.
4930         (mark_const_str_htab_1): Mark deferred_string structure.
4931         (compare_constant): Rewrite to compare trees.
4932         (compare_constant_1): Delete.
4933         (record_constant): Delete.
4934         (record_constant_1): Delete.
4935         (output_constant_def): Use struct constant_descriptor_tree.
4936         Don't duplicate trees twice.
4937         (struct constant_descriptor_rtx): New.
4938         (struct pool_constant): Used for rtx constants.
4939         (init_varasm_status): Update for change to struct varasm_status.
4940         (mark_varasm_status): Likewise.
4941         (free_varasm_status): Delete.
4942         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
4943         (record_constant_rtx): Likewise.
4944         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
4945         (force_const_mem): Likewise.
4946         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
4947         * function.c (free_after_compilation): Don't use free_varasm_status.
4948         * function.h: Don't prototype free_varasm_status.
4949
4950         * ggc-common.c (ggc_realloc): Handle X being NULL.
4951
4952         * ggc-common.c (ggc_realloc): New function.
4953         * ggc.h: Prototype it.
4954         * emit-rtl.c (free_emit_status): Delete.
4955         (init_emit): Allocate emit subarrays using GC.
4956         (gen_reg_rtx): Reallocate subarrays using GC.
4957         (init_emit): Use GC to allocate 'struct emit_status' and its
4958         subarrays.
4959         (mark_emit_status): Mark structure and its subarrays.
4960         * stmt.c (free_stmt_status): Delete.
4961         * expr.c (free_expr_status): Delete.
4962         * function.h: Remove prototypes for deleted functions.
4963         * function.c (free_after_compilation): Don't use deleted functions.
4964         Don't call free() on x_parm_reg_stack_loc.
4965         (free_after_parsing): Don't use free_stmt_status.
4966         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
4967         (mark_function_status): Mark x_parm_reg_stack_loc.
4968
4969         * varasm.c (init_varasm_status): Use GC to allocate
4970         'struct varasm_status' and its fields x_const_rtx_hash_table
4971         and x_const_rtx_sym_hash_table.
4972         (mark_varasm_status): Mark them.
4973         (free_varasm_status): Use GC to free them.
4974         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
4975         (mark_expr_status): Mark the structure itself.
4976         (free_expr_status): Use GC to free the structure.
4977         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
4978         (mark_stmt_status): Mark the 'struct stmt_status' itself.
4979         (init_stmt_for_function): Allocate the structure for GC.
4980
4981         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
4982         (equate_type_number_to_die): Likewise.
4983         * tree.h (TYPE_SYMTAB_DIE): New macro.
4984         (struct die_struct): Predeclare.
4985         (struct tree_type): Add field symtab.die.   Add a tag
4986         to the union type of field symtab.
4987
4988         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
4989         'struct rtvec_def *', not 'struct rtvec_def'.
4990
4991         * function.h (original_arg_vector): Make a real rtvec.
4992         * function.c (ggc_mark_struct_function): Adjust.
4993         * integrate.c (expand_inline_function): Adjust.
4994
4995 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
4996
4997         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
4998         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
4999         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
5000         (TARGET_VERSION_CPU): Define according to the
5001         default target.
5002         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
5003         TARGET_VERSION_CPU.
5004         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
5005         if TARGET_SHMEDIA64.
5006         (LINK_DEFAULT_CPU_EMUL): Define according to the
5007         default target.
5008         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
5009         (SUBTARGET_LINK_SPEC): Define.
5010         (LINK_SPEC): Use SH_LINK_SPEC.
5011         (ASM_SPEC): Remove.
5012         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
5013         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
5014         and TARGET_SHMEDIA64 which abort, for now.
5015         * config/sh/t-netbsd-sh5: New file.
5016         * config/sh/t-netbsd-sh5-32: New file.
5017         * config/sh/t-netbsd-sh5-64: New file.
5018
5019 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5020             Richard Henderson  <rth@redhat.com>
5021
5022         * config/alpha/alpha.c (reg_or_const_int_operand): New.
5023         (some_operand, input_operand): Accept CONST_VECTOR.
5024         (alpha_extra_constraint): Add 'W'.
5025         (alpha_expand_zap_mask): New.
5026         (alpha_expand_builtin_vector_binop): New.
5027         (enum alpha_builtin): New.
5028         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
5029         (alpha_init_builtins, alpha_expand_builtin): New.
5030         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
5031         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
5032         (PREDICATE_CODES): Update.
5033         * config/alpha/alpha-protos.h: Update.
5034         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
5035         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
5036         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
5037         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
5038         (movv2si, movv2si_fix, movv2si_nofix): New.
5039         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
5040         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
5041         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
5042         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
5043         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
5044         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
5045         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
5046         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
5047         builtin_unpkbw, unpkbw): New.
5048         * doc/extend.texi (Alpha Built-in Functions): New.
5049
5050 2002-06-03  Richard Henderson  <rth@redhat.com>
5051
5052         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
5053         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
5054
5055 2002-06-03  Richard Henderson  <rth@redhat.com>
5056
5057         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
5058
5059         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
5060         (const0_operand): New.
5061         (reg_or_fp0_operand, fp0_operand): Remove.
5062         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5063         * config/alpha/alpha-protos.h: Update.
5064         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
5065         and fp0_operand with reg_or_0_operand and const0_operand.
5066
5067 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
5068
5069         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
5070
5071 2002-06-03  Roger Sayle  <roger@eyesopen.com>
5072
5073         * gcse.c (cprop_jump): Use single_set to get the pattern
5074         from the setcc argument.
5075
5076 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
5077
5078         * diagnostic.h (diagnostic_count): Move from output_buffer to
5079         diagnostic_context.
5080         (diagnostic_kind_count): Adjust definition.
5081
5082 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
5083
5084         * except.c (except.c): Do not rebuild CFG.
5085         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
5086         optimization.
5087
5088 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
5089
5090         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
5091         * toplev.c: Include cfglahout.h
5092         * Makefile.in (toplev.c): Add dependnecy.
5093
5094 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5095
5096         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
5097         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
5098         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
5099
5100 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5101
5102         * config/ns32k/netbsd.h: Update copyright years.
5103         (TARGET_OS_CPP_BUILTINS): Define.
5104         (CPP_PREDEFINES): Remove.
5105         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
5106         (TARGET_CPU_CPP_BUILTINS): Define.
5107
5108 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5109
5110         * emit-rtl.c: Fix formatting.
5111         * errors.h: Likewise.
5112         * except.c: Likewise.
5113         * explow.c: Likewise.
5114         * expmed.c: Likewise.
5115         * expr.c: Likewise.
5116         * expr.h: Likewise.
5117
5118 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5119
5120         * config/h8300/elf.h: Fix formatting.
5121         * config/h8300/rtems.h: Likewise.
5122
5123 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5124
5125         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
5126
5127 2002-06-02  Tom Tromey  <tromey@redhat.com>
5128
5129         * fixinc/fixincl.x: Rebuilt.
5130         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
5131
5132 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5133
5134 config/i370:
5135         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
5136         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
5137         * mvs.h: Similarly.
5138         * oe.h: Similarly.
5139
5140 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
5141
5142         * final.c (final):  Allow notes to not have computed addresses;
5143         kill no longer needed STACK_REGS ifdef.
5144
5145 2002-06-02  Richard Henderson  <rth@redhat.com>
5146
5147         * gcse.c (bypass_conditional_jumps): Fix typo last change.
5148
5149 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5150
5151         * loop.c (emit_prefetch_instructions): Properly place the address
5152         computation.
5153
5154 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
5155
5156         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
5157         (set_block_for_insn): Turn into macro.
5158         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
5159         * cfglayout.c (insn_scopes): Kill.
5160         (scope_to_insns_initialize): Do not use insn_scopes.
5161         (scope_to_insns_finalize): Likewise.
5162         (duplicate_insn_chain): Likewise.
5163         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
5164         * cfgrtl.c (basic_block_for_insn): Kill.
5165         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
5166         (create_basic_block_structure): Use reorder_insns.
5167         (compute_bb_for_insn): Do not use basic_block_for_insn.
5168         (merge_blocks_nomove): Likewise.
5169         (update_bb_for_insn): Likewise.
5170         (verify_flow_info): Likewise.
5171         (set_block_for_insn): Kill.
5172         * combine.c (try_combine): Update gen_rtx_INSN call.
5173         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
5174         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
5175         scopes and BBs.
5176         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
5177         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
5178         Clear BB.
5179         (emit_insns_after): Simplify.
5180         (emit_copy_of_insn_after): Copy scope.
5181         * final.c (final_start_function): Lower scopes.
5182         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
5183         * integrate.c (copy_insn_list): Cope scopes.
5184         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
5185         * loop.c (loop_optimize): Do not care block notes.
5186         * print-rtl.c (print_rtx): Print BB.
5187         * recog.c (apply_change_group): Simplify.
5188         * rtl.c (copy_rtx): Handle 'B'.
5189         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
5190         * rtl.h (Field accessors): Update indexes.
5191         * sched-ebb.c (schedule_ebbs): Do not lower notes.
5192         * sched-rgn.c (schedule_insns): Likewise.
5193         * toplev.c (rest_of_compilation): Lower notes.
5194         * unroll.c (unroll_loop): Do not care scoping notes.
5195         (copy_loop_body): Copy scopes.
5196
5197 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5198
5199 config/h8300:
5200         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
5201         SUBTARGET_SPEC.
5202         * rtems.h: Similarly.
5203         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
5204         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
5205         (TARGET_CPU_CPP_BUILTINS): Use.
5206
5207 2002-06-02  Richard Henderson  <rth@redhat.com>
5208
5209         * alias.c: Include target.h.
5210         (mark_constant_function): Use targetm.binds_local_p instead
5211         of checking TREE_PUBLIC ourselves.
5212         * Makefile.in (alias.o): Add TARGET_H.
5213
5214 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5215
5216         * c-lex.c: Update copyright and file description.
5217
5218 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5219
5220         * config/fr30/fr30.h: Update to new CPP macros.
5221
5222 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5223
5224         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
5225
5226 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5227             Zack Weinberg <zack@codesourcery.com>
5228
5229         * c-common.c (c_common_init): Override cpplib's default
5230         warn_long_long setting.
5231         * c-lex.c (lex_number): Replace with interpret_integer,
5232         interpret_float, narrowest_unsigned_type and
5233         narrowest_signed_type, taking advantage of the new
5234         cpplib functionality.
5235         * cpperror.c (_cpp_begin_message): If a warning is turned
5236         into an error, avoid printing "warning:".
5237         * cppexp.c (cpp_num_sign_extend): New.
5238         * cppinit.c: Update comment.
5239         * cpplib.h (cpp_num_sign_extend): New.
5240         * tree.h: Update comment.
5241
5242 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
5243
5244         * diagnostic.h (struct diagnostic_context):  Add new member
5245         internal_error.
5246         (internal_error_function): Remove declaration.
5247         * diagnostic.c (internal_error_function): Remove definition..
5248         (internal_error): Adjust use.
5249
5250 2002-06-02  Richard Henderson  <rth@redhat.com>
5251
5252         * rtl.h (CC0_P): New.
5253         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
5254         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
5255         (bypass_block): Save old dest block for dump text.
5256         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
5257         Allow only true SET insns, not single_set.
5258
5259 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
5260
5261         * diagnostic.c (diagnostic_finish): Rename to output_flush.
5262         (clear_disgnostic_info): Rename to output_clear_data.  Use false
5263         instead of 0 for boolean value.
5264         Adjust function call throughout.
5265
5266 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
5267
5268         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
5269         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
5270
5271 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5272
5273         * d30v.h (CPP_PREDEFINES): Replace with
5274         (TARGET_CPU_CPP_BUILTINS): New.
5275
5276 2002-06-02  Roger Sayle  <roger@eyesopen.com>
5277
5278         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
5279
5280 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
5281
5282         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
5283
5284 2002-06-02  Richard Henderson  <rth@redhat.com>
5285
5286         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
5287
5288 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5289
5290         Support for C++ constructors/destructors.
5291         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
5292         instead of looping if main() returns.
5293         (asm_file_start): Output global symbols that cause .data and .bss
5294         initialization code to be linked in, unconditionally for now.
5295         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
5296         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
5297         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5298         (LIBSTDCXX): New.
5299         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
5300         (__tablejump__): New.
5301         (__do_copy_data, __do_clear_bss): New.
5302         (__do_global_ctors, __do_global_dtors): New.
5303         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
5304         _ctors, _dtors.
5305
5306 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5307
5308         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
5309         (CPP_SPEC, CPP_PREDEFINES): Kill.
5310         * c4x/rtems.h (CPP_PREDEFINES): Kill.
5311         (TARGET_OS_CPP_BUILTINS): New.
5312
5313 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
5314
5315         * Makefile.in (tracer.o): New.
5316         * params.def (TRACER_*): New options.
5317         * rtl.h (tracer): Declare.
5318         * timevar.def (TV_TRACER): New.
5319         * toplev.c (dump_file_index): Add DFI_tracer.
5320         (dump_file_info): Add tracer.
5321         (flag_tracer): New.
5322         (lang_indepdenent_options): Add tracer.
5323         (rest_of_compilation): Call tracer.
5324         * tracer.c: New file.
5325         * invoke.texi (-ftracer): Document.
5326         (--param tracer-*): Document.
5327
5328 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
5329
5330         * tree-inline.c (expand_call_inline): Make the statement
5331         expression we generate have a COMPOUND_STMT.
5332
5333 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5334
5335         * gcse.c (cprop_cc0_jump): Function deleted.
5336         (cprop_jump): Take an additional argument which is the possibly
5337         NULL cc setting insn immediately before the conditional jump.
5338         When a MODE_CC set is present, substitute it into the JUMP_INSN
5339         before attempting the constant propagation.
5340         (cprop_insn):  Recognize cc setters followed by conditional jumps
5341         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
5342         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
5343         (find_bypass_set): New function based upon find_avail_set used by
5344         cprop, but finds constant expressions available at the end of
5345         basic blocks.
5346         (bypass_block): New function.  Given a basic block that begins
5347         with a conditional jump and multiple incoming edges, perform
5348         the jump bypass optimization.
5349         (bypass_conditional_jumps): New function.  Call bypass_block with
5350         each suitable basic block in the CFG using a simple single pass.
5351
5352 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5353
5354         * tree.c (real_minus_onep): New function to test for -1.0.
5355         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
5356
5357 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5358
5359         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
5360         and "!p && !q" into "(p|q) == 0" under suitable conditions.
5361
5362 2002-06-01  Andreas Jaeger  <aj@suse.de>
5363
5364         * cppexp.c (cpp_classify_number): Cast precission to int for
5365         correct printf format.
5366
5367 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5368
5369         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
5370         expected, but don't really exist: atmega83, atmega85, attiny10.
5371         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
5372         emulations for all devices.
5373         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
5374         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
5375
5376 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
5377
5378         * config/h8300/h8300-protos.h: Add a prototype for
5379         h8300_shift_needs_scratch_p.
5380         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
5381         * config/h8300/h8300.h (OK_FOR_R): New.
5382         (OK_FOR_S): Likewise.
5383         (OK_FOR_T): Likewise.
5384         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
5385         * config/h8300/h8300.md (anonymous shift patterns): Use
5386         constraints R, S, and T.
5387
5388 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5389
5390         * basic-block.h (struct basic_block_def): New field loop_father.
5391         (BB_VISITED): New flag.
5392         (struct loop): New field pred, removed field shared.
5393         (struct loops): New field parray.
5394         (LOOP_EXITS_DOMS): Removed.
5395         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
5396         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
5397         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
5398         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
5399         verify_loop_structure): Declare.
5400         * cfg.c (entry_exit_blocks): Initialize loop_father field.
5401         * cfganal.c (dfs_enumerate_from): New function.
5402         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
5403         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5404         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
5405         flow_loop_dump, flow_loops_dump, flow_loops_free,
5406         flow_loop_tree_node_add, flow_loop_level_compute,
5407         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
5408         flow_loop_outside_edge_p): Modified for new infrastructure.
5409         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
5410         redirect_edge_with_latch_update, flow_loop_free): New static functions.
5411         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
5412         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
5413         find_common_loop, verify_loop_structure, loop_latch_edge,
5414         loop_preheader_edge): New functions.
5415         (flow_loops_cfg_dump): Do not show dominators, as this information
5416         does not remain up to date long.
5417         (flow_loops_find): Store results in new format.
5418         * predict.c (propagate_freq, estimate_probability,
5419         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
5420         infrastructure.
5421
5422 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
5423
5424         * except.c (nothrow_function_p): Walk epilogue delay list
5425         checking the insn, not the chain for potential throws.
5426
5427 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
5428
5429         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
5430         (install): Refer to install-cpp directly.
5431         (uninstall-cpp): Folded into uninstall rule.
5432         * configure.in: Delete all code relating to --disable-cpp.
5433         * configure: Regenerate.
5434         * config/t-install-cpp: Delete.
5435
5436 2002-05-31  Richard Henderson  <rth@redhat.com>
5437
5438         * configure.in (HAVE_AS_TLS): Add alpha tests.
5439         * configure: Rebuild.
5440         * config/alpha/alpha.c (TARGET_AS_TLS): New.
5441         (alpha_tls_size, alpha_tls_size_string): New.
5442         (overide_options): Set it.  Always install machine_status hooks.
5443         (input_operand): Accept got tls predicates.
5444         (local_symbol_p): Merge into ...
5445         (local_symbolic_operand): ... here.  Reject tls symbols.
5446         (global_symbolic_operand): Likewise.
5447         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
5448         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
5449         (tp16_symbolic_operand, tp32_symbolic_operand): New.
5450         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
5451         (alpha_encode_section_info): Handle TLS symbols.
5452         (alpha_strip_name_encoding): Likewise.
5453         (alpha_legitimate_address_p): Likewise.
5454         (alpha_legitimize_address): Likewise.
5455         (alpha_expand_mov): Early exit to avoid nop moves.
5456         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
5457         (alpha_init_machine_status, alpha_mark_machine_status,
5458         alpha_free_machine_status): Always define.
5459         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
5460         (print_operand, print_operand_address): Add TLS relocs.
5461         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
5462         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
5463         (TARGET_SWITCHES): Add -mtls-kernel.
5464         (alpha_tls_size, alpha_tls_size_string): New.
5465         (TARGET_OPTIONS): Add -mtls-size=.
5466         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
5467         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
5468         (ASM_OUTPUT_LABELREF): Skip %.
5469         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
5470         (PREDICATE_CODES): Update.
5471         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
5472         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
5473         UNSPEC_TP, UNSPECV_SET_TP): New.
5474         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
5475         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
5476         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
5477         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
5478         (call_value_osf_2_er): Accept anything as op4.
5479         * config/alpha/alpha-protos.h: Update.
5480         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
5481
5482 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
5483
5484         * cppinit.c (append_include_chain): Always pay attention to
5485         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
5486         marker on argument.
5487
5488 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
5489
5490         * target.h: Fix formatting.
5491         * timevar.h: Likewise.
5492         * tlink.c: Likewise.
5493         * toplev.c: Likewise.
5494         * toplev.h: Likewise.
5495         * tree.c: Likewise.
5496         * tree-dump.h: Likewise.
5497         * tree.h: Likewise.
5498         * tree-inline.h: Likewise.
5499         * unroll.c: Likewise.
5500         * unwind-dw2.c: Likewise.
5501         * unwind-dw2-fde.c: Likewise.
5502         * unwind-dw2-fde-glibc.c: Likewise.
5503         * unwind-dw2-fde.h: Likewise.
5504         * unwind.h: Likewise.
5505         * unwind-sjlj.c: Likewise.
5506         * varasm.c: Likewise.
5507         * varray.h: Likewise.
5508         * vmsdbg.h: Likewise.
5509         * vmsdbgout.c: Likewise.
5510         * xcoffout.h: Likewise.
5511
5512 2002-05-31  Igor Shevlyakov <igor@microunity.com>
5513
5514         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
5515         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
5516
5517 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
5518
5519         * gcc.c (cpp_unique_options): Remove "-d" options.
5520         (cpp_debug_options): New spec string.
5521         (default_compilers): Use it.
5522         * objc/lang-specs.h: Likewise.
5523
5524 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
5525
5526         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
5527         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
5528         * gcc/mklibgcc.in: Likewise.
5529         * gcc/config/arc/t-arc: Likewise.
5530         * gcc/configure.in: Likewise.
5531         * gcc/configure: Regenerate.
5532
5533 2002-05-31  Stan Shebs  <shebs@apple.com>
5534             Turly O'Connor  <turly@apple.com>
5535
5536         * c-decl.c (struct binding_level): Change int field n_incomplete
5537         to tree list incomplete_list.
5538         (clear_binding_level): Init field with NULL.
5539         (pushdecl): Add incomplete type to list.
5540         (mark_binding_level): Mark the incomplete list.
5541         (finish_struct): Scan the incomplete list for types instead
5542         of all decls in the current binding level.
5543
5544 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5545
5546         * pa.c (output_millicode_call): Add missing '%' characters.
5547         (output_call): Likewise.
5548
5549 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
5550
5551         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
5552         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
5553
5554 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
5555
5556         * varasm.c (mark_constant_pool): Walk epilogue delay list
5557         checking the insn, not the chain for potential constants.
5558
5559 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
5560
5561         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
5562
5563 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
5564
5565         * i386.c (classify_argument): Properly handle base types.
5566
5567         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
5568         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
5569         registers.
5570
5571 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
5572
5573         * gcse.c (gcse_emit_move_after): New.
5574         (pre_delete, hoist_store): Use it.
5575
5576         * reload1.c (emit_input_reload_insns): Use constrain_operands
5577         instead of constraint_accepts_reg_p to verify optimization.
5578         (constraint_accepts_reg_p): Kill
5579
5580         * reload1.c (reload_cse_delete_noop_set): Kill.
5581         (reload_cse_simplify): use delte_insn_and_edges.
5582
5583 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5584
5585         * cfgloop.c (flow_loops_find): Initialize first and last fields
5586         correctly.
5587
5588 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5589
5590         * c-common.c (builtin_define_std): Correct logic.
5591
5592 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5593
5594         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
5595         (output_call): Likewise.
5596
5597 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5598
5599         * pa.c: Move output.h include after tree.h include.
5600         (pa_asm_output_mi_thunk): Constify identifier lab.
5601
5602 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5603
5604         * config/ns32k/ns32k.h: Define named constants for the
5605         bits in target_flags and use them.
5606         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
5607
5608 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5609
5610         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
5611         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
5612         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
5613         default scheduling model.
5614         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
5615         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
5616         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
5617         * doc/install.texi (hppa*-*-*): Document default scheduling.
5618
5619 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5620
5621         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
5622
5623 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5624
5625         * config.gcc (ns32k-*-netbsd*): Set tm_file to
5626         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
5627         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
5628         netbsd.h, or netbsd-aout.h.
5629
5630 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5631
5632         * longlong.h (count_trailing_zeros): Add missing \, and clean up
5633         whitespace in __ns32000__ case.
5634
5635 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
5636
5637         * expr.c (expand_expr): Output partially zeroed out vectors with
5638         output_constant_def.
5639
5640 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
5641
5642         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
5643         (sh-*-netbsdelf*)
5644         (shl*-*-netbsdelf*): New targets.
5645         * config/sh/netbsd-elf.h: New file.
5646         * config/sh/t-netbsd: New file.
5647
5648 2002-05-30  Richard Henderson  <rth@redhat.com>
5649             Eric Botcazou  <ebotcazou@multimania.com>
5650
5651         PR optimization/6822
5652         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
5653         to unsigned int for op1 comparisons.  Use gen_int_mode.
5654
5655 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
5656
5657         * expmed.c (const_mult_add_overflow_p): New.
5658         * expr.h: Declare it.
5659         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
5660         Don't eliminate the biv if the giv has a constant multiplier and
5661         the rhs argument of the comparison does satisfy the predicate.
5662         Use expand_mult_add to compute the replacement constant.
5663
5664 2002-05-30  Osku Salerma  <osku@iki.fi>
5665
5666         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
5667         (c_common_get_alias_set): Handle it.
5668         * doc/extend.texi: Document it.
5669
5670 2002-05-30  Richard Henderson  <rth@redhat.com>
5671
5672         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
5673         * toplev.c (process_options): Don't check it.
5674         * doc/tm.texi: Don't document it.
5675         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
5676         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
5677         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
5678         frame pointer optimization if current_function_profile.
5679
5680 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
5681
5682         * langhooks.c: Fix formatting.
5683         * langhooks.h: Likewise.
5684         * lcm.c: Likewise.
5685         * libgcc2.c: Likewise.
5686         * lists.c: Likewise.
5687         * local-alloc.c: Likewise.
5688         * loop.c: Likewise.
5689         * loop.h: Likewise.
5690
5691 2002-05-30  Marc Espie <espie@openbsd.org>
5692
5693         * config.gcc (sparc64-*-openbsd*): New.
5694         * config/sparc/openbsd1-64.h: New.
5695         * config/sparc/openbsd64.h: New.
5696
5697 2002-05-30  Jeff Law <law@redhat.com>
5698
5699         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
5700         a dead insn with a REG_RETVAL note when the entire libcall is not
5701         dead and remove the associated REG_LIBCALL note at the same time.
5702
5703 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
5704
5705         * lcm.c (output.h): #include.
5706         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
5707         as an ordinary block.
5708         (optimize_mode_switching): Don't pretend that the exit block is
5709         an ordinary block, or handle sucessors of entry block specially.
5710         Instead, split edges from entry block and to exit block, and
5711         put a computing definition on the thus gained post-entry-block,
5712         and a need on the pre-exit-block.
5713
5714 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
5715
5716         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
5717         * rtl.texi: Document 'B'
5718
5719 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
5720
5721         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
5722         at run-time.
5723         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
5724
5725 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
5726
5727         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
5728         const0_rtx instead of NULL_RTX when in error.
5729         (altivec_expand_abs_builtin): Same.
5730         (rs6000_expand_binop_builtin): Same.
5731         (altivec_expand_predicate_builtin): Same.
5732         (altivec_expand_stv_builtin): Same.
5733         (rs6000_expand_ternop_builtin): Same.
5734         (altivec_expand_builtin): Same.
5735
5736 2002-05-29  David S. Miller  <davem@redhat.com>
5737
5738         * rtl.h (clear_emit_caches): Delete.
5739         * integrate.c (output_inline_function): Don't call it.
5740         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
5741         (clear_emit_caches): Delete definition.
5742         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
5743
5744 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
5745
5746         * config/mmix/mmix.c: Include real.h.
5747         (mmix_constant_address_p): Remove redundant test before switch.
5748
5749 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5750
5751         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
5752         only if not already defined.
5753
5754 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5755
5756         * config/h8300/h8300-protos.h: Remove prototypes for
5757         ok_for_bclr and small_power_of_two.
5758         * config/h8300/h8300.c (small_power_of_two): Remove.
5759         (ok_for_blcr): Likewise.
5760         (fix_bit_operand): Make WHAT deal with an integer instead of a
5761         constraint character.
5762         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
5763         (CONST_OK_FOR_P): Likewise.
5764         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
5765         CONST_OK_FOR_P any more.
5766         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
5767         of fix_bit_operand.
5768         (iorqi3): Likewise.
5769         (xorqi3): Likewise.
5770
5771 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5772
5773         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5774         (CPP_PREDEFINES): Make sure this is undefined.
5775         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
5776         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
5777         or -U__MIPSEB__ before defining one or the other.  Instead,
5778         use %(subtarget_endian_default) if neither -EB nor -EL are
5779         specified.
5780         (SUBTARGET_EXTRA_SPECS): Define.
5781         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
5782         %(netbsd_cpp_spec).
5783
5784 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
5785
5786         * doc/md.texi (Patterns): Note pattern condition pitfall
5787         for unnamed insn.
5788
5789 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
5790
5791         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
5792         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
5793         ternary operations from here...
5794         (rs6000_expand_builtin): ...to here.
5795         New argument expandedp.
5796         Change all instances of altivec_expand_binop_builtin to
5797         rs6000_expand_binop_builtin.
5798         (altivec_expand_unop_builtin): Rename to
5799         rs6000_expand_unop_builtin.
5800         (altivec_expand_binop_builtin): Rename to
5801         rs6000_expand_binop_builtin.
5802         (altivec_expand_ternop_builtin): Rename to
5803         rs6000_expand_ternop_builtin.
5804
5805 2002-05-29  Richard Henderson  <rth@redhat.com>
5806
5807         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
5808         (TARGET_BI_ARCH): Likewise.
5809         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
5810         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
5811         (TARGET_64BIT_DEFAULT): Default to 0.
5812         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
5813
5814 2002-05-29  Richard Henderson  <rth@redhat.com>
5815
5816         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
5817         (get_pc_thunk_name): New.
5818         (output_set_got): Use it.
5819         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
5820         into linkonce sections.
5821
5822 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5823
5824         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5825         (CPP_PREDEFINES): Make sure this is undefined.
5826         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
5827         (CPP_SUBTARGET_SPEC): Don't provide different versions for
5828         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
5829         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
5830         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
5831         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5832         (CPP_PREDEFINES): Make sure this is undefined.
5833         (SUBTARGET_EXTRA_SPECS): Define.
5834         (CPP_SPEC): Use %(netbsd_cpp_spec).
5835
5836 2002-05-29  Jeff Law <law@redhat.com>
5837
5838         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
5839
5840         * flow.c (propagate_one_insn): Do not remove a dead insn if it
5841         contains a REG_RETVAL note.
5842
5843         * haifa-sched (sched_analyze): Remove another useless clearing
5844         of SCHED_GROUP_P I missed yesterday.
5845
5846         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
5847         * pa.c (pa_asm_output_mi_thunk): New function.
5848         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
5849
5850 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5851             Marek Michalkiewicz  <marekm@amelek.gda.pl>
5852
5853         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
5854         (avr_asm_only_p): Make non-static.
5855         (enum avr_arch): Remove.
5856         (avr_arch_types): New.
5857         (avr_mcu_types): Update.
5858         (avr_override_options): Use avr_arch_types table instead of switch.
5859         * avr.h (CPP_PREDEFINES): Die.
5860         (avr_base_arch_macro, avr_extra_arch_macro): New.
5861         (TARGET_CPU_CPP_BUILTINS): New.
5862         (CPP_SPEC, EXTRA_SPECS): Simplify.
5863         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
5864         CPP_AVR5_SPEC): Die.
5865
5866 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5867
5868         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
5869         NETBSD_OS_CPP_BUILTINS_AOUT.
5870         (SUBTARGET_EXTRA_SPECS): Define.
5871         (CPP_SPEC): Use %(netbsd_cpp_spec).
5872
5873 2002-05-29  Richard Henderson  <rth@redhat.com>
5874
5875         * config/i386/i386.c (ix86_output_function_epilogue): New.
5876         (TARGET_ASM_FUNCTION_EPILOGUE): New.
5877         (pic_label_name): Remove.
5878         (pic_labels_used): New.
5879         (ix86_asm_file_end): Emit one pc load stub for each register used.
5880         (output_set_got): Generate deep pc load to any register.
5881         (ix86_select_alt_pic_regnum): New.
5882         (ix86_save_reg): Don't save pic register if we can find a valid
5883         call-clobbered replacement.
5884         (ix86_expand_prologue): If we found a valid replacement, renumber
5885         pic_offset_table_rtx.
5886         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
5887         pic_offset_table_rtx after reload.
5888         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
5889         * config/i386/i386.md (set_got): Make insn, not expander.
5890         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
5891
5892 2002-05-29  Richard Henderson  <rth@redhat.com>
5893
5894         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
5895         alignment for alloca.
5896
5897 2002-05-29  Richard Henderson  <rth@redhat.com>
5898
5899         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
5900         (print_operand_address): Only add rip for symbolic addresses
5901         for which we do not have another relocation type.
5902
5903 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5904
5905         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5906         (EXTRA_SPECS): Add netbsd_cpp_spec.
5907         (CPP_SPEC): Use %(netbsd_cpp_spec).
5908         (CPP_PREDEFINES): Remove.
5909         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5910         (EXTRA_SPECS): Define.
5911         (CPP_SPEC): Use %(netbsd_cpp_spec).
5912         (CPP_PREDEFINES): Remove.
5913
5914 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5915
5916         PR preprocessor/6844
5917         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
5918         NUL.
5919
5920 2002-05-29  Eric Christopher  <echristo@redhat.com>
5921
5922         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
5923         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
5924
5925 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
5926
5927         * config/fr30/fr30.md: Remove previous restriction on splits.
5928         Enforce conformance through gen_lowpart and cont_int_operand.
5929         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
5930         as the assembler does not support ".bss".
5931
5932 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5933
5934         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5935         (CPP_PREDEFINES): Remove.
5936         (SUBTARGET_EXTRA_SPECS): Define.
5937         (CPP_SPEC): Use %(netbsd_cpp_spec).
5938         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5939         (CPP_PREDEFINES): Remove.
5940         (SUBTARGET_EXTRA_SPECS): Define.
5941         (CPP_SPEC): Use %(netbsd_cpp_spec).
5942         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
5943         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
5944         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
5945         Add netbsd_cpp_spec.
5946         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
5947
5948 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5949             Zack Weinberg <zack@codesourcery.com>
5950
5951         * cppexp.c (cpp_num): Move to cpplib.h.
5952         (CPP_ERROR): Remove.
5953         (interpret_float_suffix, interpret_int_suffix): New.
5954         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
5955         (cpp_classify_number, cpp_interpret_integer): New.
5956         (interpret_number): Remove.
5957         (eval_token): Update to use new routines.
5958         * cpphash.h (cpp_num_part): Move to cpplib.h.
5959         * cppinit.c (cpp_post_options): Set warn_long_long.
5960         * cpplib.h (struct cpp_options): Add warn_long_long.
5961         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
5962         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
5963         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
5964         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
5965         cpp_interpret_integer): New.
5966
5967 2002-05-29  Joel Sherrill <joel@OARcorp.com>
5968
5969         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
5970
5971 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5972
5973         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
5974         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
5975         (CPP_SUBTARGET_SPEC): Define.
5976         (SUBTARGET_EXTRA_SPECS): Define.
5977         (CPP_SPEC): Remove.
5978
5979 2002-05-29  Chris Lattner  <sabre@nondot.org>
5980
5981         * ssa.c (rename_insn_1): Rename uses of undefined registers to
5982         prevent confusion if/when the register is defined.
5983
5984 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
5985
5986         PR target/6838
5987         * config/cris/cris.md: Fix typos and thinkos in comments.
5988         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
5989         second alternative.
5990         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
5991         ("*mov_sideqi_mem"): Similar, but for operand 3.
5992         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
5993         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
5994         Remove spurious mode specifier on operand 2.
5995
5996 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5997
5998         * config/h8300/h8300-protos.h: Remove the prototype for
5999         o_operand.
6000         Add prototypes for single_one_operand and single_zero_operand.
6001         * config/h8300/h8300.c (o_operand): Remove.
6002         (single_one_operand): New.
6003         (single_zero_operand): Likewise.
6004         (print_operand): For 'V' operand, and the operand with 0xff.
6005         For 'V' and 'W' operands, do not and the bit position with 7.
6006         * config/h8300/h8300.md (various anonymous patterns): Replace
6007         use of exact_log2 with single_one_operand/single_zero_operand.
6008
6009 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6010
6011         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
6012
6013 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6014
6015         * config/s390/s390.c (legitimate_pic_operand_p): Do not
6016         accept symbolic LARL operands.
6017         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
6018         epilogue insns.
6019
6020 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
6021
6022         * config/s390/s390.md (cmpstr_64/31): Mark whole
6023         input registers as used.
6024
6025 2002-05-28  Richard Henderson  <rth@redhat.com>
6026
6027         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
6028         not current_function_uses_pic_offset_table and
6029         current_function_uses_const_pool; examine current_function_profile.
6030         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
6031         input to blockage if needed.
6032         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
6033         (legitimize_pic_address): Likewise.  Set regs_ever_live for
6034         pic_offset_table_rtx when invoked during reload.
6035         * config/i386/i386.h (FINALIZE_PIC): Remove.
6036         * config/i386/i386.md (tablejump): Reformat.  Do not set
6037         current_function_uses_pic_offset_table.
6038         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
6039         (blockage): Accept anything as operand 0.
6040
6041 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
6042
6043         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
6044         common CPP built-ins for all NetBSD a.out targets.
6045         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
6046         common CPP built-ins for all NetBSD ELF targets.
6047         * config/netbsd.h: Add missing notice.
6048         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
6049         for all NetBSD targets.
6050         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
6051         for all NetBSD targets using an LP64 code model.
6052         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
6053         NetBSD targets.
6054
6055 2002-05-28  Richard Henderson  <rth@redhat.com>
6056
6057         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
6058         update if UPDATE_LIFE_LOCAL.
6059
6060 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6061
6062         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
6063
6064 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6065                           Jason R. Thorpe <thorpej@wasabisystems.com>
6066
6067         config/sh reorganization to factor out endianness and coff:
6068
6069         * config/sh/little.h: New file.
6070         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
6071         defined, define to 0 to select big-endian.
6072         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
6073         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6074         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6075         * config/sh/t-be: New file.
6076         * config/sh/t-le: New file.
6077
6078         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
6079         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
6080         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
6081         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
6082         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
6083         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
6084         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
6085         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
6086         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
6087         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
6088         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
6089         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
6090         (LINK_SPEC): Define to SH_LINK_SPEC.
6091         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
6092         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
6093         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6094         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
6095         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
6096         * config/sh/coff.h: New file.
6097         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
6098         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6099         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
6100         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
6101         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
6102         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
6103         (PTRDIFF_TYPE): Likewise.
6104         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
6105         (CPP_PREDEFINES): Don't define.
6106         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6107         (LINK_SPEC): Define to SH_LINK_SPEC.
6108         (LINK_EMUL_PREFIX): Redefine.
6109         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
6110         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
6111         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
6112         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
6113         (TARGET_OS_CPP_BUILTINS): Define.
6114         (TARGET_DEFAULT): Redefine.
6115         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6116         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
6117         (LINK_SPEC): Don't redefine.
6118         (LINK_DEFAULT_CPU_EMUL): Redefine.
6119         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6120         * sh.c (sh_asm_named_section): Don't declare / define.
6121         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
6122         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
6123         (sh64-*-elf* tm_file): Likewise.
6124         (sh-*-rtemself* tm_file): Likewise.
6125         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
6126         (sh-*-linux* tmake_file): Add sh/t-le.
6127         (sh-*-rtems* tm_file): Add sh/coff.h
6128         (sh-*-* tm_file): Likewise.
6129
6130 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6131
6132         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
6133         CONSTANT_POOL_ADDRESS_P.
6134
6135         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
6136
6137 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
6138             Jeff Law <law@redhat.com>
6139
6140         * optabs.c (expand_binop): Fix nwords sign warnings.
6141         generate pseudo for add_optab.
6142
6143         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
6144         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
6145
6146 2002-05-28      Marc Espie <espie@openbsd.org>
6147
6148         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
6149         inherited from gas.h.
6150         (ASM_QUAD):  Undef.  OpenBSD does not support it.
6151
6152 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
6153
6154         * doc/install.texi (binaries): Change mingw binaries
6155         link to www.mingw.org.
6156
6157 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6158
6159         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
6160
6161 2002-05-28  Richard Henderson  <rth@redhat.com>
6162
6163         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
6164         bottom alignment for leaf functions.
6165
6166 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
6167
6168         * config/pa/milli32.S, config/pa/lib1funcs.asm,
6169         config/sparc/sol2-g1.asm: Delete unused files.
6170
6171 2002-05-28  Richard Henderson  <rth@redhat.com>
6172
6173         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
6174
6175         * flow.c (calculate_global_regs_live): Rename call_used to
6176         invalidated_by_call.  Initialize from regs_invalidated_by_call
6177         instead of call_used_regs.
6178
6179         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
6180         DECL_EXTERNAL.
6181
6182 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
6183
6184         * tree.h: Don't include real.h.
6185         Forward-declare struct realvaluetype.
6186         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
6187         contain it.
6188         (TREE_REAL_CST_PTR): New accessor.
6189         (TREE_REAL_CST): Update.
6190         * real.h: Include machmode.h.
6191         (realvaluetype): Make it struct realvaluetype, not a typedef.
6192         (build_real): Prototype here.
6193
6194         * tree.c: Include real.h.
6195         (build_real): Allocate the REAL_VALUE_TYPE as a separate
6196         object in GC memory, set TREE_REAL_CST_PTR to point to it.
6197         (build_real_from_int_cst): Use build_real.
6198         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
6199         REAL_CST.
6200
6201         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
6202         fold-const.c, print-tree.c, real.c: Include real.h.
6203         * Makefile.in: Update dependency lists.
6204
6205 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6206
6207         * basic-block.h (last_basic_block): Declare.
6208         (expunge_block_nocompact): Declaration removed.
6209         (compact_blocks): Declare.
6210         * cfg.c (last_basic_block): New variable.
6211         (expunge_block_nocompact): Removed.
6212         (expunge_block): Do not compact basic blocks.
6213         (compact_blocks): New.
6214         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
6215         longer change.
6216         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
6217         last_basic_block.
6218         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
6219         real positions of blocks.
6220         (delete_unreachable_blocks): Simplified -- quadratic behavior now
6221         cannot occur.
6222         (cleanup_cfg): Compact blocks.
6223         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
6224         basic_block_info varray.
6225         (flow_delete_block): Comment update.
6226         (back_edge_of_syntactic_loop_p): Modify position check code.
6227         (verify_flow_info): Update checking.
6228         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
6229         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
6230         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
6231         indices no longer change.
6232         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
6233         last_basic_block.
6234         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
6235         * profile.c (branch_prob): Compact blocks.
6236         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
6237         last_basic_block.
6238
6239 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
6240
6241         * config/h8300/h8300.md (two anonymous patterns): New.
6242
6243 2002-05-28  David S. Miller  <davem@redhat.com>
6244
6245         * config/sparc/sparc.md (cpu): Tidy.
6246         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
6247         'trap'.
6248         (in_call_delay): Delete reference to 'return' type.
6249         (eligible_for_return_delay, in_return_delay, define_delay
6250         referencing those): Delete.
6251         (rest of file): Use new type attributes as appropriate.
6252         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
6253         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
6254         * config/sparc/ultra1_2.md (us1_single): New reservation.
6255         (us1_ialuX): Likewise.
6256         * config/sparc/ultra3.md (us3_single): Likewise.
6257         (us3_ialuX): Likewise.
6258         (us3_imul, us3_idiv): Tweak.
6259
6260 2002-05-28  Richard Henderson  <rth@redhat.com>
6261
6262         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
6263         STRING_CST.
6264
6265 2002-05-28  Richard Henderson  <rth@redhat.com>
6266
6267         * config.gcc: Obsolete mn10200.
6268
6269 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6270
6271         * cppexp.c (interpret_number): Optimize for single-digit
6272         and less-than-half-precision cases.
6273         (num_trim, num_positive, num_div_op): Cast constants.
6274
6275 2002-05-27  Bo Thorsen  <bo@suse.de>
6276
6277         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
6278         3.1 branch. The file was made by Jakub Jelinek.
6279         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
6280         support so multilib doesn't break. And don't define this at all
6281         when -Dinhibit_libc is used.
6282         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
6283         * config/i386/t-linux64: Implement full multilib support. Patch
6284         originally done by Andreas Jaeger and Jakub Jelinek.
6285
6286 2002-05-27  Roger Sayle  <roger@eyesopen.com>
6287
6288         * c-common.c: Add support for __attribute__((nothrow)) to specify
6289         that a function cannot throw an exception (using TREE_NOTHROW).
6290         (handle_nothrow_attribute): New function to process this attribute.
6291
6292         * doc/extend.texi: Document the new nothrow function attribute.
6293
6294 2002-05-27  H.J. Lu  (hjl@gnu.org)
6295
6296         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
6297         (num_positive): Likewise.
6298         (num_div_op): Likewise.
6299
6300 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6301
6302         * c-common.c (c_common_init): Always use intmax_t.
6303
6304 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6305
6306         * c-common.c (c_common_init): Use intmax_t for now.
6307
6308 2002-05-24  Andrew Haley  <aph@redhat.com>
6309
6310         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
6311         if T is a boolean type.
6312
6313 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6314
6315         * basic-block.h (last_basic_block): Defined as synonym for
6316         n_basic_blocks.
6317         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
6318         flow_depth_first_order_compute, flow_preorder_transversal_compute,
6319         flow_dfs_compute_reverse_init): Replaced relevant occurences of
6320         n_basic_blocks with last_basic_block.
6321         * cfgbuild.c (make_edges): Likewise.
6322         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
6323         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
6324         * combine.c (combine_instructions): Likewise.
6325         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
6326         iterative_dataflow_bitmap): Likewise.
6327         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
6328         calc_idoms, idoms_to_doms): Likewise.
6329         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
6330         Likewise.
6331         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
6332         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
6333         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
6334         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
6335         delete_null_pointer_checks, compute_code_hoist_vbeinout,
6336         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
6337         compute_store_table, build_store_vectors): Likewise.
6338         * haifa-sched.c (sched_init): Likewise.
6339         * ifcvt.c (if_convert): Likewise.
6340         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
6341         pre_edge_lcm, compute_available, compute_nearerout,
6342         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
6343         Likewise.
6344         * predict.c (estimate_probability, process_note_prediction,
6345         note_prediction_to_br_prob): Likewise.
6346         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
6347         * recog.c (split_all_insns, peephole2_optimize): Likewise.
6348         * regrename.c (copyprop_hardreg_forward): Likewise.
6349         * resource.c (init_resource_info): Likewise.
6350         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
6351         init_regions, schedule_insns): Likewise.
6352         * ssa-ccp.c (ssa_const_prop): Likewise.
6353         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6354         * ssa.c (compute_dominance_frontiers,
6355         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
6356
6357         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
6358         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
6359         sizes consistently.
6360
6361 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
6362
6363         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
6364         new.
6365         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
6366         hoist_insn_after, hoist_insn_to_edge): New.
6367
6368 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
6369
6370         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
6371         (PROP_FINAL): Include.
6372         * flow.c (life_analysis, update_life_info,
6373         init_propagate_block_info, mark_set_1, mark_used_rgs):
6374         Support SCAN_DEAD_STORE.
6375
6376 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6377
6378         * c-common.c (c_common_init): Set CPP arithmetic precision.
6379         * cppexp.c (cpp_num_part): Move typedef ...
6380         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
6381         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
6382         (sanity_checks): Update.
6383
6384 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
6385
6386         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
6387         (mkheaders): New rule.
6388         (install-mkheaders): New rule.
6389         * configure.in (all_outputs): Add mkheaders.
6390         * configure: Regenerate.
6391         * mkheaders.in: New file.
6392
6393 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
6394
6395         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
6396
6397 2002-05-26  Andreas Jaeger  <aj@suse.de>
6398
6399         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
6400
6401 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6402
6403         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
6404         right_shift): Remove.
6405         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
6406         HIGH_PART): New.
6407         (struct op): Use cpp_num.
6408         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
6409         num_part_mul, num_unary_op, num_binary_op, num_negate,
6410         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
6411         num_div_op, num_lshift, num_rshift, append_digit): New.
6412         (interpret_number, parse_defined, eval_token, reduce): Update
6413         for two-integer arithmetic.
6414         (binary_handler): New typedef.
6415         (optab): Update.
6416         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
6417         (_cpp_parse_expr, reduce): Update to handle two-integers.
6418         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
6419
6420 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6421
6422         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
6423         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
6424         branch insn into account, do not assume 1.
6425         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
6426         over single word insn.  Handle upper half of I/O space too.
6427         * config/avr/avr.md (*sbrx_branch): Use it.
6428         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
6429         (*sbix_branch, *sbix_branch_bit7): Likewise.
6430         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
6431         Use RTL peepholes to optimize register operand sign tests.
6432
6433 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6434
6435         * config/avr/avr.c (avr_asm_only_p): New variable.
6436         (avr_override_options): Set it here if AVR1.
6437         (asm_file_start): Test it here, report an error if set.
6438
6439 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
6440
6441         * alias.c: Fix formatting.
6442         * attribs.c: Likewise.
6443         * bb-reorder.c: Likewise.
6444         * bitmap.c: Likewise.
6445         * bitmap.h: Likewise.
6446         * builtins.c: Likewise.
6447
6448 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
6449
6450         * reload.c (find_valid_class): Accept new argument DEST,
6451         choose class accordingly.
6452         (push_reload): Update callers.
6453
6454 2002-05-26  Andreas Jaeger  <aj@suse.de>
6455
6456         * combine.c (combine_instructions): Do not indent #if for
6457         traditional C.
6458
6459 2002-05-25  Richard Henderson  <rth@redhat.com>
6460
6461         * c-pragma.c (apply_pragma_weak): Convert value identifier to
6462         string for decl_attributes.
6463         (handle_pragma_weak): Call assemble_alias if we're modifying
6464         an existing decl.
6465
6466 2002-05-25  Richard Henderson  <rth@redhat.com>
6467
6468         PR target/6788
6469         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
6470         using rtl instead of fprintf.
6471         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
6472         * config/sparc/sparc-protos.h: Update.
6473
6474 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
6475
6476         * Makefile.in (C_COMMON_H): Fix.
6477         Update other targets.
6478         * c-common.c: Don't include c-lex.h.
6479         (builtin_define_with_value): Make static and prototype.
6480         (builtin_define_std): Move from c-lex.h.
6481         * c-common.h (init_c_lex): Move from c-lex.h.
6482         * c-decl.c: Don't include c-lex.h.
6483         (make_pointer_declarator): Move from c-parse.in.
6484         * c-lex.c: Don't include c-lex.h.
6485         * c-lex.h: Remove.
6486         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
6487         (make_pointer_declarator): Move to c-decl.c.
6488         * c-pragma.c: Don't include c-lex.h.
6489         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
6490         * c-tree.h (make_pointer_declarator): New.
6491 doc:
6492         * passes.texi, tm.texi: Update.
6493 objc:
6494         * Make-lang.in: Update and correct.
6495         * objc-act.c: Don't include c-lex.h or cpplib.h.
6496 treelang:
6497         * treetree.c: Don't include c-lex.h.
6498 config:
6499         * darwin-c.c: Don't include c-lex.h.
6500         * c4x/c4x-c.c: Don't include c-lex.h.
6501         * c4x/t-c4x: Update.
6502         * i370/i370-c.c: Don't include c-lex.h.
6503         * i370/t-i370: Update.
6504         * i960/i960-c.c: Don't include c-lex.h.
6505         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
6506         * i960/t-960bare: Update.
6507         * i960/t-vxworks: Update.
6508         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
6509         * rs6000/t-darwin: Update.
6510         * rs6000/t-rs6000-c-rule: Update.
6511         * v850/v850-c.c: Don't include c-lex.h.
6512         * v850/v850.c: Don't include c-lex.h or cpplib.h.
6513
6514
6515 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
6516
6517         * tree.def: Fix typos.
6518         * doc/install.texi: Likewise.
6519
6520 2002-05-25  Richard Henderson  <rth@redhat.com>
6521
6522         * configure.in (HAVE_AS_TLS): Add ia64 test.
6523         * configure: Rebuild.
6524         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
6525         (override_options): Set it.
6526         (TARGET_HAVE_TLS): New.
6527         (sdata_symbolic_operand): Look for 's'.
6528         (tls_symbolic_operand): New.
6529         (ia64_expand_load_address): Abort for tls symbols.
6530         (gen_tls_get_addr): New.
6531         (gen_thread_pointer): New.
6532         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
6533         (rtx_needs_barrier): Add new unspecs.
6534         (ia64_encode_section_info): Handle tls symbols.
6535         (ia64_strip_name_encoding): Strip two encoding chars.
6536         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
6537         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
6538         (TARGET_OPTIONS): Add tls-size.
6539         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
6540         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
6541         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
6542         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
6543         (movsf, movdf): Likewise.
6544         (movdi_symbolic): Use match_scratch.  Don't split if we won't
6545         have a scratch availiable.
6546         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
6547         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
6548         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
6549         * config/ia64/ia64-protos.h: Update.
6550         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
6551         sdata_symbolic_operand.
6552         (ASM_OUTPUT_LABELREF): Strip two characters.
6553
6554 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
6555
6556         * combine.c (simplify_set): Remove an unnecessary subreg.
6557
6558 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6559
6560         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
6561
6562         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
6563
6564 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6565
6566         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
6567
6568 2002-05-25  Roger Sayle  <roger@eyesopen.com>
6569
6570         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
6571         (cond (compare x y) 0) into the equivalent (cond x y).
6572
6573 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6574
6575         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
6576
6577 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
6578
6579         * config.gcc: Remove all stanzas for previously obsoleted
6580         systems.  Where necessary, add explicit error stanzas to
6581         prevent removed systems from being misidentified as something
6582         else.  Begin a fresh obsoletions list, with the systems that
6583         were reprieved last round.
6584         * doc/install.texi: Remove all mention of dead targets.
6585         * fixinc/mkfixinc.sh: Likewise.
6586
6587         * config/arm/arm.h: Bit 31 of target_flags is no longer
6588         reserved.
6589
6590         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
6591         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
6592         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
6593         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
6594         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
6595         config/alpha/osf12.h, config/alpha/osf2or3.h,
6596         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
6597         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
6598         config/clipper/clipper-protos.h, config/clipper/clipper.c,
6599         config/clipper/clipper.h, config/clipper/clipper.md,
6600         config/clipper/clix.h, config/convex/convex-protos.h,
6601         config/convex/convex.c, config/convex/convex.h,
6602         config/convex/convex.md, config/convex/fixinc.convex,
6603         config/convex/proto.h, config/elxsi/elxsi-protos.h,
6604         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
6605         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
6606         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
6607         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
6608         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
6609         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
6610         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
6611         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
6612         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
6613         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
6614         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
6615         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
6616         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
6617         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
6618         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
6619         config/m68k/altos3068.h, config/m68k/apollo68.h,
6620         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
6621         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
6622         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
6623         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
6624         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
6625         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
6626         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
6627         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
6628         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
6629         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
6630         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
6631         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
6632         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
6633         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
6634         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
6635         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
6636         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
6637         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
6638         config/mips/dec-osf1.h, config/mips/elflorion.h,
6639         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
6640         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
6641         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
6642         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
6643         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
6644         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
6645         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
6646         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
6647         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
6648         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
6649         config/ns32k/sequent.h, config/ns32k/tek6000.h,
6650         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
6651         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
6652         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
6653         config/sparc/rtems.h, config/we32k/we32k-protos.h,
6654         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
6655         Delete file.
6656
6657 2002-05-24  Richard Henderson  <rth@redhat.com>
6658
6659         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
6660         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
6661         * config/i386/i386.c (tls_model_chars): Add leading space.
6662         (tls_symbolic_operand): Don't bias by 1.
6663         (legitimize_address): Don't unbias by 1.
6664
6665 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6666
6667         * lcm.c (optimize_mode_switching): Change bb used as indices
6668         to bb->index.
6669
6670 2002-05-24  Richard Henderson  <rth@redhat.com>
6671
6672         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
6673         of update_life_info_in_dirty_blocks.
6674
6675 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
6676
6677         PR other/6782
6678         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
6679
6680 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6681
6682         PR preprocessor/6780
6683         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
6684
6685 2002-05-24  Jim Blandy  <jimb@redhat.com>
6686
6687         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
6688         entry with a type code of zero, marking the end of the compilation
6689         unit's macro info.
6690
6691 2002-05-24  Richard Henderson  <rth@redhat.com>
6692
6693         * varasm.c (asm_output_bss): Always output one byte.
6694         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
6695
6696 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
6697
6698         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
6699         namespace.
6700
6701 2002-05-24  Andreas Jaeger  <aj@suse.de>
6702
6703         * ggc-page.c (alloc_page): Cast variables of type size_t to
6704         unsigned long, adjust printf format string.
6705         (ggc_alloc): Likewise.
6706         (ggc_print_statistics): Likewise.
6707         (ggc_print_statistics): Correct printf format string for SCALE to
6708         use unsigned long.
6709
6710 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
6711
6712         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
6713
6714 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
6715             Zack Weinberg     <zack@codesourcery.com>
6716
6717         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
6718         quoted strings.
6719         * dwarf2out.c (lookup_filename): Properly quote filename in .file
6720         directive in assembly file.
6721         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
6722         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
6723         * config/pj/pj.h (ASM_FILE_START): Likewise.
6724         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
6725         * config/avr/avr.c (asm_file_end): Likewise.
6726         * toplev.c (output_quoted_string): Handle possibly signed plain
6727         char.
6728         * toplev.h (output_clean_symbol_name): Declare
6729         * toplev.c (output_clean_symbol_name): Define.
6730         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
6731         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
6732
6733 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
6734
6735         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
6736
6737 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
6738
6739         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
6740         of size of unsigned.
6741
6742 2002-05-23  Richard Henderson  <rth@redhat.com>
6743
6744         * configure.in (HAVE_AS_TLS): New test.
6745         * config.in, configure: Rebuild.
6746         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
6747         (ix86_tls_dialect_string, ix86_tls_dialect): New.
6748         (override_options): Set it.
6749         (tls_model_chars, tls_symbolic_operand): New.
6750         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
6751         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
6752         (local_exec_symbolic_operand): New.
6753         (get_pic_label_name): Merge into output_set_got.
6754         (ix86_asm_file_end): Emit pic_label_name if defined.
6755         (legitimate_constant_p, constant_address_p): New.
6756         (legitimate_pic_operand_p): New.
6757         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
6758         (legitimate_address_p): Likewise.
6759         (ix86_encode_section_info): Rename from i386_; handle tls decls.
6760         (ix86_strip_name_encoding): New.
6761         (get_thread_pointer): New.
6762         (legitimize_address): Handle tls symbols.
6763         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
6764         Remove UNSPEC_PLT.
6765         (struct machine_function): Add some_ld_name.
6766         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
6767         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
6768         (output_addr_const_extra): New.
6769         (maybe_get_pool_constant): New.
6770         (ix86_split_to_parts): Use it.
6771         (ix86_expand_move): Handle tls symbols.
6772         (ix86_tls_get_addr): New.
6773         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
6774         (TARGET_OPTIONS): Add tls-dialect.
6775         (CONSTANT_ADDRESS_P): Use new out-of-line function.
6776         (LEGITIMATE_CONSTANT_P): Likewise.
6777         (LEGITIMATE_PIC_OPERAND_P): Likewise.
6778         (TARGET_STRIP_NAME_ENCODING): New.
6779         (ASM_OUTPUT_LABELREF): New.
6780         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
6781         (OUTPUT_ADDR_CONST_EXTRA): New.
6782         (PREDICATE_CODES): Update.
6783         (ix86_tls_dialect, ix86_tls_dialect_string): New.
6784         * config/i386/i386.md: Regroup and renumber unspec constants.
6785         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
6786         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
6787         (tls_global_dynamic, tls_local_dynamic_base): New.
6788         (tls_local_dynamic_once): New.
6789         * config/i386/i386-protos.h: Update.
6790
6791 2002-05-23  Richard Henderson  <rth@redhat.com>
6792
6793         * genemit.c (gen_insn): Print file:lineno comment before function.
6794         (main): likewise.
6795         * gensupport.c (struct queue_elem): Add filename member.
6796         (queue_pattern): Initialize it; update all callers.
6797         (process_include): Don't free filename.
6798         (read_md_rtx): Set read_rtx_filename.
6799
6800 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
6801
6802         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
6803
6804 2002-05-23  Richard Henderson  <rth@redhat.com>
6805
6806         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
6807
6808 2002-05-23  Richard Henderson  <rth@redhat.com>
6809
6810         * doc/extend.texi (C++98 Thread-Local Edits): Update with
6811         commentary from Mark.
6812
6813 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6814
6815         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
6816         Use FOR_EACH_BB macros to iterate over basic block chain.
6817         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
6818         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
6819         Likewise.
6820         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
6821         find_unreachable_blocks, create_edge_list, verify_edge_list,
6822         remove_fake_edges, add_noreturn_fake_exit_edges,
6823         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
6824         Likewise.
6825         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
6826         find_sub_basic_blocks): Likewise.
6827         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
6828         Likewise.
6829         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
6830         Likewise.
6831         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
6832         Likewise.
6833         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
6834         commit_edge_insertions, commit_edge_insertions_watch_calls,
6835         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
6836         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
6837         * conflict.c (conflict_graph_compute): Likewise.
6838         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
6839         df_modified_p, df_refs_unlink, df_dump): Likewise.
6840         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
6841         * final.c (compute_alignments): Likewise.
6842         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
6843         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
6844         count_or_remove_death_notes): Likewise.
6845         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
6846         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
6847         classic_gcse, compute_transp, cprop, compute_pre_data,
6848         compute_transpout, invalidate_nonnull_info,
6849         delete_null_pointer_checks_1, delete_null_pointer_checks,
6850         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
6851         compute_store_table, build_store_vectors, store_motion): Likewise.
6852         * global.c (global_conflicts, mark_elimination): Likewise.
6853         * graph.c (print_rtl_graph_with_bb): Likewise.
6854         * haifa-sched.c (sched_init): Likewise.
6855         * ifcvt.c (if_convert): Likewise.
6856         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
6857         compute_available, compute_nearerout, compute_rev_insert_delete,
6858         optimize_mode_switching): Likewise.
6859         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
6860         * predict.c (estimate_probability, note_prediction_to_br_prob,
6861         propagate_freq, counts_to_freqs, expensive_function_p,
6862         estimate_bb_frequencies): Likewise.
6863         * profile.c (instrument_edges, get_exec_counts,
6864         compute_branch_probabilities, compute_checksum, branch_prob,
6865         find_spanning_tree): Likewise.
6866         * recog.c (split_all_insns, peephole2_optimize): Likewise.
6867         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
6868         Likewise.
6869         * regclass.c (scan_one_insn, regclass): Likewise.
6870         * regmove.c (mark_flags_life_zones, regmove_optimize,
6871         record_stack_memrefs): Likewise.
6872         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
6873         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
6874         * resource.c (find_basic_block): Likewise.
6875         * sched-ebb.c (schedule_ebbs): Likewise.
6876         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
6877         find_single_block_region, find_rgns, schedule_insns)
6878         * sibcall.c (optimize_sibling_and_tail_recursive_call)
6879         * ssa-ccp.c (optimize_unexecutable_edges,
6880         ssa_ccp_df_delete_unreachable_insns): Likewise.
6881         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6882         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
6883         rename_block, convert_to_ssa, compute_conservative_reg_partition,
6884         compute_coalesced_reg_partition, rename_equivalent_regs,
6885         convert_from_ssa): Likewise.
6886         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
6887         process_for_unwind_directive): Likewise.
6888
6889         * df.c (FOR_ALL_BBS): Removed.
6890         * gcse.c (struct null_pointer_info): Type of current_block field
6891         changed.
6892         (struct reg_avail_info): Type of last_bb field changed.
6893         * config/ia64/ia64.c (block_num): Removed.
6894         (need_copy_state): Type changed.
6895         (last_block): New.
6896
6897 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6898
6899         * cppinit.c (mark_named_operators): Split out from init_builtins.
6900         (cpp_finish_options): Call it from here instead.
6901
6902 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
6903
6904         * builtin-attrs.def: Update copyright years.
6905         (ATTR_NONNULL): New attribute identifier.
6906         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
6907         attribute tree lists.
6908         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
6909         format operand.
6910         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
6911         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
6912         attribute lists.  Chain the appropriate nonnull attribute.
6913         * c-format.c (check_format_arg): Remove null format string
6914         warning.
6915         * testsuite/gcc.dg/format/null-1.c: New test.
6916
6917 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6918
6919         * Makefile.in (ADAC): Define.
6920         (SYSLIBS): Define.
6921         (.SUFFIXES): Move before language makefile fragments.
6922         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
6923
6924 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
6925
6926         * varasm.c (make_decl_rtl): Don't allow weak variables to be
6927         placed in common.
6928
6929 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
6930
6931         * cfg.c (dump_flow_info): Print results of
6932         maybe_hot/probably_never_executed predicates.
6933         * toplev.c (open_dump_file): Print function frequency.
6934
6935 2002-05-23  David S. Miller  <davem@redhat.com>
6936
6937         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
6938         regsets.
6939
6940 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
6941
6942         * c-common.c (warn_nonnull): Declare.
6943         (c_common_attribute_table): Add "nonnull" attribute.
6944         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
6945         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
6946         check_function_arguments_recurse): New functions.
6947         * c-common.h (warn_nonnull): Declare extern.
6948         (check_function_arguments, check_function_arguments_recurse): New
6949         prototypes.
6950         * c-decl.c (c_decode_option): Add -Wnonnull option.
6951         * c-format.c (set_Wformat): Set warn_nonnull if enabling
6952         format checking.
6953         (format_check_context): New structure.
6954         (check_format_info_recurse): Remove recursion and rename to...
6955         (check_format_arg): ...this.  Update comment.
6956         (check_format_info): Use check_function_arguments_recurse.
6957         * c-typeck.c (build_function_call): Call check_function_arguments
6958         instead of check_function_format.
6959         * doc/extend.texi: Document "nonnull" attribute.
6960         * doc/invoke.texi: Docuemnt -Wnonnull option.
6961         * testsuite/gcc.dg/nonnull-1.c: New test.
6962         * testsuite/gcc.dg/nonnull-2.c: New test.
6963
6964 2002-05-23  David S. Miller  <davem@redhat.com>
6965
6966         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
6967         * cfgcleanup.c (cleanup_cfg): If it is set do not
6968         attempt to delete trivially dead insns.
6969         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
6970         * toplev.c (rest_of_compilation): Document non-trivial aspect
6971         the RTL before optimize_save_area_alloca is run.
6972
6973 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6974
6975         * c-lex.c (indent_level): Remove.
6976         (cb_file_change, c_lex): Remove indent level handling.
6977         * c-lex.h (indent_level): Remove.
6978         * input.h (struct file_stack): Remove indent_level.
6979         * toplev.c (push_srcloc): Remove indent_level handling.
6980
6981 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
6982
6983         PR target/6753
6984         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
6985         of x in constraints for clarity.
6986         (sse_mov?fcc split): abort if op2 == op3.
6987         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
6988         sse_movsfcc_const0_4): Add earlyclobber.
6989         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
6990         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
6991         Use Y instead of x in constraints.
6992
6993 2002-05-23  Richard Henderson  <rth@redhat.com>
6994
6995         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
6996         (C++98 Thread-Local Edits): New subsection.
6997
6998         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
6999         (ix86_arch): Set type to enum processor_type.
7000
7001         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
7002         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
7003
7004 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
7005
7006         * configure.in: Fix as version test for binutils 2.12.1 releases
7007         (without dates).
7008         * configure: Rebuilt.
7009
7010 2002-05-23  Richard Henderson  <rth@redhat.com>
7011
7012         * config/i386/i386.c (get_pic_label_name): New.
7013         (load_pic_register): Remove.
7014         (output_set_got): New.
7015         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
7016         * config/i386/i386.md (UNSPEC_SET_GOT): New.
7017         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
7018         (prologue_set_got, prologue_get_pc): Remove.
7019         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
7020         (builtin_setjmp_receiver): Use gen_set_got.
7021         * config/i386/i386-protos.h: Update.
7022
7023 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
7024
7025         * gcse.c (hash_expr): Do not use alias set for hashing.
7026
7027 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
7028
7029         * dbxout.c (dbxout_class_name_qualifiers): New function.
7030         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
7031
7032 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7033
7034         * cpperror.c (_cpp_begin_message): No special casing
7035         of CPP_FATAL_LIMIT.
7036         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
7037         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
7038         * cpplib.c (do_include_common): Use DL_ERROR.
7039         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
7040         (DL_ICE): Renumber.
7041         * fix-header.c (read_scan_file): Update.
7042
7043 2002-05-22  Richard Henderson  <rth@redhat.com>
7044
7045         * config/i386/i386.c (ix86_expand_call): New function, extracted
7046         from md call patterns.  Add pic_offset_table_rtx to
7047         CALL_INSN_FUNCTION_USAGE when needed.
7048         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
7049         (call_value_pop, call_value, untyped_call): Likewise.
7050         (call_exp, call_value_exp): Remove.
7051         * config/i386/i386-protos.h: Update.
7052
7053 2002-05-22  Richard Henderson  <rth@redhat.com>
7054
7055         * varasm.c (default_section_type_flags): Check for VAR_DECL
7056         before using DECL_THREAD_LOCAL.
7057
7058 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
7059
7060         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
7061         (STARTFILE_SPEC): Delete PE crt0.o.
7062         * config/rs6000/aix51.h: Same.
7063         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
7064         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
7065         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
7066         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
7067         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
7068
7069 2002-05-22  Richard Henderson  <rth@redhat.com>
7070
7071         * varasm.c (default_section_type_flags): Handle tls data and
7072         default sections.
7073         (default_unique_section): Handle tls sections.
7074
7075 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
7076
7077         * configure.in (CROSS): Define NATIVE_CROSS.
7078         * configure: Regenerate.
7079         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
7080         (startfile_prefix_spec): New var.
7081         (static_specs): Add startfile_prefix_spec.
7082         (do_spec_2): Split out from..
7083         (do_spec): ..here.
7084         (main): Process startfile_prefix_spec.
7085         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
7086         dynamic linker.
7087         (STARTFILE_PREFIX_SPEC): Define.
7088         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
7089         absolute paths.
7090
7091 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
7092
7093         * cpperror.c: Fix formatting.
7094         * cppexp.c: Likewise.
7095         * cppfiles.c: Likewise.
7096         * cpphash.c: Likewise.
7097         * cpphash.h: Likewise.
7098         * cppinit.c: Likewise.
7099         * cpplex.c: Likewise.
7100         * cpplib.c: Likewise.
7101         * cppmacro.c: Likewise.
7102         * cppmain.c: Likewise.
7103         * cppspec.c: Likewise.
7104
7105 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7106
7107         * combine.c (force_to_mode): Use gen_int_mode.
7108         Don't clear CONST_INT bits outside of mode.
7109
7110 2002-05-22  Richard Henderson  <rth@redhat.com>
7111
7112         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
7113         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7114
7115 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7116
7117         PR c/6643
7118         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
7119         if DECL_SIZE_UNIT is INTEGER_CST.
7120
7121 2002-05-22  Richard Henderson  <rth@redhat.com>
7122
7123         * flow.c (life_analysis): Delete broken reg_label check.
7124
7125 2002-05-22  Richard Henderson  <rth@redhat.com>
7126
7127         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
7128         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7129
7130 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
7131
7132         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
7133         (embed-bb.c): New rule.
7134         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
7135         * config/sh/embed_bb.c: Delete.
7136
7137 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
7138
7139         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
7140
7141 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
7142
7143         * config/h8300/h8300.md (*andorqi3): New.
7144
7145 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7146
7147         PR preprocessor/6517
7148         * Makefile.in: Update.
7149         * c-common.c (c_common_post_options): Add preprocessor
7150         errors to the error count.
7151         * c-lang.c (c_post_options): Kill.
7152         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
7153         * hooks.h: Add header guards.
7154         * langhooks-def.h: Include hooks.h.
7155         (LANG_HOOKS_POST_OPTIONS): Update.
7156         * langhooks.h (struct lang_hooks): Update post_options.
7157         * toplev.c (parse_options_and_default_flags): Update.
7158 objc:
7159         * objc-lang.c (objc_post_options): Kill.
7160         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
7161
7162 2002-05-21  Bruce Korb  <bkorb@gnu.org>
7163
7164         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
7165         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
7166         * fixinc/fixincl.x: regen.
7167
7168 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
7169
7170         * cfgbuild.c: Fix formatting.
7171         * cfg.c: Likewise.
7172         * cfgcleanup.c: Likewise.
7173         * cfglayout.c: Likewise.
7174         * cfgloop.c: Likewise.
7175         * cfgrtl.c: Likewise.
7176
7177 2002-05-21  Richard Henderson  <rth@redhat.com>
7178
7179         * c-common.h (enum rid): Add RID_THREAD.
7180         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
7181         (grokdeclarator): Grok __thread.
7182         * c-parse.in (reswords): Add __thread.
7183         (rid_to_yy): Add RID_THREAD.
7184
7185         * tree.h (DECL_THREAD_LOCAL): New.
7186         (struct tree_decl): Add thread_local_flag.
7187         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
7188         * tree.c (staticp): TLS variables are not static.
7189
7190         * target-def.h (TARGET_HAVE_TLS): New.
7191         * target.h (have_tls): New.
7192         * output.h (SECTION_TLS): New.
7193         * varasm.c (assemble_variable): TLS variables can't be common for now.
7194         (default_section_type_flags): Handle .tdata and .tbss.
7195         (default_elf_asm_named_section): Handle SECTION_TLS.
7196         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
7197
7198         * flags.h (flag_tls_default): Declare.
7199         * toplev.c (flag_tls_default): Define.
7200         (display_help): Display help for it.
7201         (decode_f_option): Set it.
7202
7203         * doc/extend.texi (Thread-Local): New node describing language-level
7204         thread-local storage.
7205         * doc/invoke.texi (-ftls-model): Document.
7206
7207         * fixinc/inclhack.def (thread_keyword): New.
7208         * fixinc/fixincl.x: Rebuild.
7209
7210 2002-05-21  Jeffrey A Law  <law@redhat.com>
7211
7212         * optabs.c (expand_binop): For double-word integer multiplies,
7213         do not compute intermediate results into something that is
7214         not a register (such as a SUBREG or MEM).
7215
7216         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
7217         (ix86_sched_reorder): Make sure to initialize scheduling
7218         data even when there's only one insn in the ready queue.
7219
7220 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
7221
7222         * genautomata.c (reserv_sets_hash_value): Fix a typo.
7223
7224 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
7225
7226         * genautomata.c (reserv_sets_hash_value): Define hash_value as
7227         set_el_t.  Transform the hash value into unsigned.
7228         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
7229         (transform_3): Add code to process `(A,B)+(D,E)'.
7230
7231 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
7232
7233         * reload1.c (do_output_reload): Run delete_output_reload
7234         only if optimizing.
7235
7236 2002-05-21  Roger Sayle  <roger@eyesopen.com>
7237
7238         PR middle-end/6600
7239         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
7240         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
7241         (can_store_by_pieces): ... and here to limit the largest mode used.
7242         Add a comment to document this function.
7243
7244 2002-05-21  Richard Henderson  <rth@redhat.com>
7245
7246         * flow.c (life_analysis): Fix test for deleted label.
7247
7248 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7249
7250         * doc/tm.texi: Fix typo.
7251
7252 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
7253
7254         * c-common.c (c_common_init): Set options->unsigned_char from
7255         flag_signed_char.
7256         (cb_register_builtins): Define __STRICT_ANSI__ and
7257         __CHAR_UNSIGNED__ here...
7258         * cppinit.c (init_builtins): Not here.
7259         (cpp_create_reader): unsigned_char option defaults to 0, not
7260         !DEFAULT_SIGNED_CHAR.
7261         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
7262         and -funsigned-char.
7263
7264         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
7265         * cpphash.c (_cpp_init_hashtable): Don't set it.
7266         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
7267         directly.  Clarify comment.
7268
7269 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7270
7271         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
7272         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
7273         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
7274         BASIC_BLOCK (n_basic_blocks - 1).
7275         * cfganal.c (can_fallthru, flow_call_edges_add,
7276         flow_preorder_transversal_compute): Too.
7277         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
7278         find_sub_basic_blocks): Too.
7279         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
7280         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
7281         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
7282         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
7283         * combine.c (this_basic_block): Type changed to basic_block.
7284         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
7285         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
7286         get_last_value, distribute_notes, distribute_links): Too.
7287         * final.c (compute_alignments): Too.
7288         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
7289         * function.c (thread_prologue_and_epilogue_insns): Too.
7290         * gcse.c (compute_code_hoist_vbeinout): Too.
7291         * global.c (build_insn_chain): Too.
7292         * ifcvt.c (find_if_block, find_cond_trap): Too.
7293         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
7294         * regmove.c (regmove_optimize): Too.
7295         * resource.c (find_basic_block): Too.
7296         * sched-ebb.c (schedule_ebbs): Too.
7297         * ssa-dce.c (find_control_dependence, find_pdom): Too.
7298
7299 2002-05-21  Andreas Jaeger  <aj@suse.de>
7300
7301         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
7302
7303 2002-05-21  Richard Henderson  <rth@redhat.com>
7304
7305         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
7306         unspec names, not numbers.
7307
7308 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7309
7310         * doc/sourcebuild.texi: Mention snapshot-README and
7311         snapshot-index.html as needing updating for new front ends.
7312
7313 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7314
7315         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
7316         disabling checking, and avoid multiple evaluation of RTX.
7317
7318 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
7319
7320         * bitmap.c (bitmap_find_bit): Return early if we have the correct
7321         element cached.
7322
7323 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
7324
7325         * profile.c (gen_edge_profiler):  Set alias set before the memory is
7326         used.
7327
7328 2002-05-20  David S. Miller  <davem@redhat.com>
7329
7330         * cselib.c (max_value_regs): New.
7331         (cselib_lookup, cselib_invalidate_regno): Initialize it when
7332         adding new entries to the REG_VALUES table and we are dealing with
7333         a hard register.
7334         (clear_table): Initialize it.
7335         (cselib_invalidate_regno): Use it to determine which hard
7336         registers to scan when mode is not VOIDmode.
7337
7338 2002-05-20  Duraid Madina   <duraid@fl.net.au>
7339
7340         * tradcpp.c (fixup_newlines): Use old-style function header.
7341
7342 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
7343
7344         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
7345
7346 2002-05-20  H.J. Lu  (hjl@gnu.org)
7347
7348         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
7349
7350         * config/mips/mips.h (DFMODE_NAN): Defined.
7351         (SFMODE_NAN): Likewise.
7352
7353 2002-05-20  Dale Johannesen  <dalej@apple.com>
7354
7355         * combine.c (cant_combine_insn_p):  Back out my
7356         previous patch.
7357
7358 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
7359
7360         * params.c: Fix formatting.
7361         * params.h: Likewise.
7362         * predict.c: Likewise.
7363         * prefix.c: Likewise.
7364         * print-rtl.c: Likewise.
7365         * print-tree.c: Likewise.
7366         * profile.c: Likewise.
7367
7368 2002-05-20  H.J. Lu  (hjl@gnu.org)
7369
7370         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
7371
7372 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
7373
7374         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
7375         switches straight on to the assembler, do not abbreviate them.
7376         * config/arm/elf.h (ASM_SPEC): As above.
7377         * config/arm/semi.h (ASM_SPEC): As above.
7378         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
7379         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
7380         -mcpu=xscale on to the assembler by default.
7381         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
7382
7383 2002-05-20  Richard Henderson  <rth@redhat.com>
7384
7385         * cse.c (canon_hash): Reorder do_not_record test.  Always
7386         allow pic_offset_table_rtx.
7387
7388 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
7389
7390         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
7391         (expand_binop): Ditto (3 times).
7392
7393 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
7394
7395         * Makefile.in (distclean): Remove QMTest stuff.
7396         (QMTEST_PATH): New variable.
7397         (QMTESTFLAGS): Likewise.
7398         (QMTESTRUNFLAGS): Likewise.
7399         (QMTEST): Likewise.
7400         (QMTEST_GPP_TESTS): Likewise.
7401         (QMTEST_DIR): Likewise.
7402         (QMTEST_DIR/context): New target.
7403         (qmtest-g++): Likeise.
7404         (qmtest-gui): Likewise.
7405         (QMTEST_DIR/gpp-expected.qmr): Likewise.
7406
7407 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
7408
7409         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
7410         an altivec register if TARGET_ALTIVEC.
7411
7412         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
7413         to ALTIVEC_VECTOR_MODE.
7414         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
7415         (rs6000_va_arg): Vectors may go in registers if they are not
7416         altivec vectors.
7417
7418 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
7419
7420         * protoize.c: Fix formatting.
7421
7422 2002-05-19  Richard Henderson  <rth@redhat.com>
7423
7424         * gensupport.c (init_include_reader): Merge into ...
7425         (process_include): ... here.  Simplify composite path creation.
7426         Plug memory leaks.  Fix file/line number tracking.  Do not
7427         process_define_cond_exec.  Return void.
7428         (process_rtx): Don't check process_include return value.
7429
7430 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7431
7432         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
7433         fields.
7434         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
7435         traversing basic block chain.
7436         (create_basic_block_structure, create_basic_block): Declaration changed.
7437         (link_block, unlink_block): Declare.
7438         * cfg.c (entry_exit_blocks): Initialize new fields.
7439         (link_block, unlink_block): New.
7440         (expunge_block_nocompact): Unlink basic block.
7441         (dump_flow_info): Print prev_bb/next_bb fields.
7442         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
7443         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
7444         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
7445         * cfgrtl.c (create_basic_block_structure, create_basic_block,
7446         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
7447         (verify_flow_info): Check that list agrees with numbering.
7448
7449 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7450
7451         * c-common.c (preprocessing_asm): New macro.
7452         * c-lex.h (builtin_define, builtin_assert): Use pfile.
7453 doc:
7454         * tm.texi: Update.
7455 config/alpha:
7456         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
7457         (CPP_SPEC): Simplify.
7458         (TARGET_CPU_CPP_BUILTINS): Update.
7459         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
7460         (CPP_SPEC): Simplify.
7461         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
7462         (TARGET_OS_CPP_BUILTINS): Update.
7463         * osf.h (CPP_XFLOAT_SPEC): Kill.
7464         (TARGET_OS_CPP_BUILTINS): Update.
7465         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
7466         * osf5.h (CPP_XFLOAT_SPEC): Kill.
7467         * vms.h (CPP_SUBTARGET_SPEC): Kill.
7468         (TARGET_OS_CPP_BUILTINS): Update.
7469
7470 2002-05-19  Richard Henderson  <rth@redhat.com>
7471
7472         * varasm.c (default_binds_local_p): Fix typo.
7473
7474 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7475
7476         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
7477         CONST_INT operand to the correct mode after adding 1 to it.
7478
7479 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
7480
7481         * config.gcc (powerpc-wrs-windiss*): New target.
7482
7483 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7484
7485         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
7486         (ashrdi3): Use it.
7487
7488 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
7489
7490         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
7491         alphasort.
7492         * config.in: Regenerated.
7493         * configure: Regenerated.
7494
7495 2002-05-19  Richard Henderson  <rth@redhat.com>
7496
7497         * target-def.h (TARGET_BINDS_LOCAL_P): New.
7498         * target.h (struct gcc_target): Move boolean fields to the end.
7499         Add binds_local_p.
7500         * varasm.c (default_binds_local_p): New.
7501         * output.h: Declare it.
7502
7503         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
7504         * config/cris/cris.c (cris_encode_section_info): Likewise.
7505         * config/i386/i386.c (i386_encode_section_info): Likewise.
7506         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
7507         * config/sh/sh.c (sh_encode_section_info): Likewise.
7508
7509         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
7510         (TARGET_BINDS_LOCAL_P): New.
7511
7512 2002-05-19  Richard Henderson  <rth@redhat.com>
7513
7514         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
7515         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
7516         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
7517
7518         * toplev.c (display_help): Kill -a -ax help.
7519
7520         * config/1750a/1750a.h, config/alpha/alpha.h,
7521         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
7522         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
7523         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
7524         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
7525
7526         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
7527         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
7528
7529         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
7530         (ix86_output_function_block_profiler): Kill.
7531         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
7532         (m68hc11_function_block_profiler): Kill.
7533         * config/m68hc11/m68hc11-protos.h: Update.
7534         * config/m88k/m88k.c (output_block_profiler): Kill.
7535         (output_function_block_profiler): Kill.
7536         * config/m88k/m88k-protos.h: Update.
7537
7538 2002-05-19  Richard Henderson  <rth@redhat.com>
7539
7540         * system.h (STRIP_NAME_ENCODING): Poison it.
7541         * output.h (STRIP_NAME_ENCODING): Remove.
7542         (default_strip_name_encoding): Declare.
7543         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
7544         * target.h (strip_name_encoding): New.
7545         * varasm.c (default_strip_name_encoding): New.
7546
7547         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
7548         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
7549         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
7550         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
7551         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
7552         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
7553         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
7554         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
7555         config/v850/v850.h: Use the hook, not the macro.
7556
7557         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
7558         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
7559         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
7560         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
7561         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
7562         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
7563         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
7564         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
7565         config/v850/v850.c, config/v850/v850.h:
7566         Move STRIP_NAME_ENCODING to out-of-line function and add
7567         TARGET_STRIP_NAME_ENCODING.
7568
7569         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
7570         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
7571         with TARGET_STRIP_NAME_ENCODING referencing existing function;
7572         make function static.
7573
7574         * xcoffout.c: Include target.h
7575         * Makefile.in (xcoffout.o): Update.
7576
7577         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
7578         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
7579         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
7580         reloc argument unused.
7581         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
7582
7583         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
7584         STRIP_NAME_ENCODING docs.
7585
7586 2002-05-19  Andreas Jaeger  <aj@suse.de>
7587
7588         * gengenrtl.c: Add prototype for excluded_rtx.
7589
7590         * real.h: Add prototype for exact_real_truncate.
7591
7592 2002-05-18  Richard Henderson  <rth@redhat.com>
7593
7594         * system.h (ENCODE_SECTION_INFO): Poison it.
7595         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
7596         * target.h (encode_section_info): New.
7597         * varasm.c (make_decl_rtl, output_constant_def): Use it.
7598         * hooks.c (hook_tree_int_void): New.
7599         * hooks.h: Declare it.
7600
7601         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
7602         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
7603         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
7604         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
7605         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
7606         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
7607         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
7608         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
7609         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
7610         config/mcore/mcore-protos.h, config/mcore/mcore.c,
7611         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
7612         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
7613         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
7614         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
7615         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
7616         referencing existing function.  Make function static.
7617
7618         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
7619         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
7620         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
7621         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
7622         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
7623         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
7624         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
7625         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
7626         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
7627         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
7628         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
7629         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
7630         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
7631         Move ENCODE_SECTION_INFO to out-of-line function and add
7632         TARGET_ENCODE_SECTION_INFO.
7633
7634         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
7635         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7636
7637         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
7638         from SUBTARGET_*
7639         (switch_to_section): Replace in_rdata case with in_readonly_data.
7640
7641         * config/h8300/h8300.c (h8300_encode_label): Make static.
7642         * config/h8300/h8300-protos.h: Update.
7643
7644         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
7645         from rs6000_encode_section_info; make static.
7646         (rs6000_xcoff_encode_section_info): New.
7647
7648         * config/v850/v850.c (v850_encode_data_area): Make static.
7649         * config/v850/v850-protos.h: Update.
7650
7651         * config/vax/vax.c: Include flags.h.
7652         (vms_select_section): Fix typo.
7653
7654         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
7655         ENCODE_SECTION_INFO docs.
7656
7657 2002-05-18  Richard Henderson  <rth@redhat.com>
7658
7659         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
7660         REGISTER_TARGET_PRAGMAS.
7661         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
7662
7663         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
7664
7665 2002-05-18  Richard Henderson  <rth@redhat.com>
7666
7667         * system.h (SELECT_RTX_SECTION): Poison.
7668         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
7669         * target.h (select_rtx_section): New.
7670         * varasm.c (output_constant_pool): Use it.
7671         (default_select_rtx_section, default_elf_select_rtx_section): New.
7672         * output.h: Declare them.
7673
7674         * config/darwin.h (SELECT_RTX_SECTION): Move ...
7675         * config/darwin.c (machopic_select_rtx_section): ... here.
7676         * config/darwin-protos.h: Update.
7677
7678         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
7679         * config/nextstep.c (machopic_select_rtx_section): ... here.
7680         (nextstep_select_section): Rename variable to avoid macro clash.
7681         * config/nextstep-protos.h: Update.
7682
7683         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
7684         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
7685         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
7686         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
7687         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
7688         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
7689         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
7690         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
7691         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
7692         (SELECT_RTX_SECTION): Remove.
7693
7694         * config/darwin.h, config/elfos.h, config/nextstep.h,
7695         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
7696         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
7697         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
7698         config/sparc/lynx.h, config/xtensa/xtensa.c
7699         (TARGET_ASM_SELECT_RTX_SECTION): New.
7700
7701         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
7702         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
7703         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
7704         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
7705         (ia64_aix_select_rtx_section): New.
7706         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
7707         redefining.
7708         * config/mips/mips.c (mips_select_rtx_section): Make static.
7709         Support ELF SHF_MERGE features.
7710         * config/mips/mips-protos.h: Update.
7711         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
7712         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
7713         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
7714         make static, fall back to default_elf_select_rtx_section.
7715         * config/rs6000/rs6000-protos.h: Update.
7716         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
7717         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
7718         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
7719         * config/romp/romp.c (romp_select_rtx_section): New.
7720         * config/s390/s390.c (s390_select_rtx_section): New.
7721         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
7722         declarations before target macro definition.
7723         (xtensa_emit_call): Use static buffer.
7724         (xtensa_select_rtx_section): New.
7725         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
7726         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
7727         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
7728
7729         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
7730         SELECT_RTX_SECTION docs.
7731
7732 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
7733
7734         * i386.md (movsi/movdi): Fix template.
7735         (sse2 patterns): Set attributes consistently.
7736
7737         * i386.md (pushqi2, ashrqi_*): Fix constraint.
7738
7739 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7740
7741         * optabs.c (complex_part_zero_p): New.
7742         * (expand_cmplxdiv_straight): Use it.
7743         * (expand_cmplxdiv_wide): Ditto.
7744         * (expand_binop): Ditto.
7745
7746 2002-05-18  Richard Henderson  <rth@redhat.com>
7747
7748         * final.c (HAVE_READONLY_DATA_SECTION): New.
7749         (shorten_branches): Use it instead of ifdefs.
7750         * varasm.c (enum in_section): Add in_readonly_data.
7751         (text_section, data_section): Tidy.
7752         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
7753
7754         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
7755         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
7756         (READONLY_DATA_SECTION): Don't undef.
7757
7758         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
7759         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
7760         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
7761
7762         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
7763         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
7764         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
7765         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
7766
7767         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
7768         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
7769         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
7770         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
7771         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
7772         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
7773         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
7774         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
7775         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
7776
7777         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
7778         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
7779         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
7780         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
7781         config/pa/pa64-hpux.h, config/sparc/litecoff.h
7782         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
7783
7784         * config/elfos.h, config/netware.h, config/svr3.h,
7785         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
7786         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
7787         config/h8300/h8300.h, config/i386/i386-interix.h,
7788         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
7789         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
7790
7791         * config/elfos.h, config/netware.h, config/svr3.h,
7792         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
7793         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
7794         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
7795         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
7796
7797         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
7798         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
7799         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
7800         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
7801         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
7802         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
7803         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
7804         config/rs6000/sysv4.h, config/v850/v850.h
7805         (EXTRA_SECTIONS): Remove in_const/in_rdata.
7806         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
7807
7808         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
7809         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
7810         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
7811         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
7812         * config/alpha/alpha.c (alpha_start_function): Likewise.
7813         (alpha_write_linkage): Likewise.
7814         * config/m32r/m32r.c (m32r_select_section): Likewise.
7815         * config/m88k/m88k.c (m88k_select_section): Likewise.
7816         * config/mips/mips.c (mips_select_rtx_section): Likewise.
7817         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
7818         (rs6000_elf_select_section): Likewise.
7819         * config/v850/v850.c (v850_select_section): Likewise.
7820
7821         * config/1750a/1750a.h, config/i860/sysv3.h
7822         (READONLY_DATA_SECTION_ASM_OP): New.
7823         READONLY_DATA_SECTION_ASM_OP.
7824         * config/i386/interix.c, config/i386/winnt.c
7825         (i386_pe_unique_section): Always use .rdata prefix.
7826         * config/pa/som.h (readonly_data): Always switch to read-only section.
7827         (READONLY_DATA_SECTION): Predicate on flag_pic.
7828         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
7829         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
7830         (READONLY_DATA_SECTION): Update.
7831
7832 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
7833
7834         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
7835         is used without -Wformat.
7836         * c-common.h (warn_format_zero_length): Declare extern.
7837         * c-decl.c (warn_options): Add "format-zero-length".
7838         * c-format.c (warn_format_zero_length): Declare.
7839         (set_Wformat): Set warn_format_zero_length for -Wformat.
7840         (check_format_info): Only warn about zero-length formats if
7841         warn_format_zero_length is true.  Include the format type
7842         name in the warning message.
7843         * doc/invoke.texi: Document -Wformat-zero-length.
7844         * testsuite/gcc.dg/format/zero-length-1.c: New test.
7845
7846 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
7847
7848         * timevar.c: Fix formatting.
7849         * tlink.c: Likewise.
7850         * toplev.c: Likewise.
7851         * tree-dump.c: Likewise.
7852         * tree-inline.c: Likewise.
7853
7854 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
7855
7856         * cppinit.c (cpp_post_options): If preprocessed, turn off
7857         traditional.  If traditional, turn off column numbers.
7858         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
7859         * cpptrad.c (handle_newline): Update line_base.
7860         (skip_comment): Handle -Wcomment.
7861
7862 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
7863
7864         * cppinit.c (struct builtin): Remove unused fields.
7865         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
7866         (operator_array): New - was second half of builtin_array.
7867         (init_builtins): Simplify loop over builtin_array/operator_array.
7868
7869 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
7870
7871         * defaults.h (UNIQUE_SECTION): Remove.
7872         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
7873
7874 2002-05-17  Richard Henderson  <rth@redhat.com>
7875
7876         * expr.c (init_expr_once): Don't use start/end_sequence.
7877         Use rtx_alloc instead of emit_insn.
7878         * toplev.c (lang_dependent_init): Run init_expr_once here ...
7879         (lang_independent_init): ... not here.
7880
7881 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
7882
7883         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
7884
7885 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7886
7887         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
7888         for fixed registers, possibly used for global register variables.
7889         (initial_elimination_offset, avr_output_function_prologue,
7890         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
7891
7892 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7893
7894         * Makefile.in: Update for cpptrad.c.
7895         * cpphash.h (struct cpp_buffer): New members for buffer
7896         overlays.
7897         (struct cpp_reader): New members for traditional output.
7898         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
7899         * cppinit.c (cpp_create_reader): Set trad_line.
7900         (cpp_destroy): Free trad_out_base if used.
7901         (cpp_read_main_file): Overlay an empty buffer if traditional.
7902         (cpp_finish_options): Don't do builtins.
7903         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
7904         (cpp_handle_option): Handle it.
7905         * cpplex.c (continue_after_nul): New.
7906         (_cpp_lex_direct): Use handle_nul.
7907         * cpplib.h (struct cpp_options): New traditional option.
7908         * cpptrad.c: New file.
7909
7910 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7911
7912         * c-common.c (c_common_init_options): Use C89 for Objective-C,
7913         and set the options flag.
7914         * cppinit.c (lang_flags): Remove objc.
7915         (lang_defaults): Remove OBJC and OBJCXX.
7916         (set_lang): Update.
7917         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
7918         (cpp_handle_option): Remove -+ and -lang-objc++.
7919         For ObjC, just set a flag.
7920         (print_help): Update.
7921         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
7922
7923 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7924
7925         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
7926         bootstrap with -mips3.
7927
7928 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
7929
7930         * final.c: Fix formatting.
7931         * fix-header.c: Likewise.
7932         * flow.c: Likewise.
7933         * fold-const.c: Likewise.
7934         * function.c: Likewise.
7935
7936 2002-05-17  David S. Miller  <davem@redhat.com>
7937
7938         PR c/6689, PR optimization/6615
7939         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
7940         and make it a pointer to rtx.  Update comments.
7941         (update_equiv_regs): When scanning for equivalences, record
7942         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
7943         it while making the equiv replacements.
7944
7945 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7946
7947         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
7948
7949 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
7950
7951         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
7952         when encoding visibility into SYMBOL_REF_FLAG.
7953
7954 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
7955
7956         * expr.c (force_operand): Fix reversed move.
7957
7958 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
7959
7960         * doc/install.texi (Testing): Mention two common DejaGnu warnings
7961         that can be ignored.
7962
7963 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7964
7965         * doc/install.texi (Final install): Recommend to install into a
7966         "clean" target directory.
7967
7968 2002-05-17  Richard Henderson  <rth@redhat.com>
7969
7970         * config/ia64/ia64.md: Use braced strings instead of quoted strings
7971         for code blocks.  Tidy whitespace.
7972
7973 2002-05-17  Richard Henderson  <rth@redhat.com>
7974
7975         * hooks.c (hook_tree_bool_false): New.
7976         * hooks.h: Declare it.
7977         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
7978         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
7979         * target.h (select_section, unique_section): New.
7980         (in_small_data_p): New.
7981         * varasm.c (resolve_unique_section): Use hooks instead of macros.
7982         (variable_section, output_constant_def_contents): Likewise.
7983         (default_select_section, default_unique_section): New.
7984         (categorize_decl_for_section, default_elf_select_section): New.
7985         * output.h: Declare them.
7986
7987         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
7988         (TARGET_ASM_SELECT_SECTION): New.
7989         (SELECT_SECTION): Move ...
7990         * config/darwin.c (machopic_select_section): ... here.
7991         * config/darwin-protos.h: Update.
7992
7993         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
7994         (SELECT_SECTION): Move ...
7995         * config/nextstep.c (nextstep_select_section): ... here.
7996         * config/nextstep-protos.h: Update.
7997
7998         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
7999         (TARGET_ASM_SELECT_SECTION): New.
8000         * config/svr3.h (SELECT_SECTION): Remove.
8001
8002         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
8003         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
8004         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
8005         (alpha_encode_section_info): Use it.
8006         * config/alpha/alpha-protos.h: Update.
8007         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
8008         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8009         (TARGET_ASM_SELECT_SECTION): New.
8010         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
8011
8012         * config/arm/pe.h (UNIQUE_SECTION): Remove.
8013         (TARGET_ASM_UNIQUE_SECTION): New.
8014
8015         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
8016         (avr_unique_section): Rename from unique_section; make static.
8017         * config/avr/avr-protos.h: Update.
8018         * config/avr/avr.h (UNIQUE_SECTION): Remove.
8019
8020         * config/c4x/c4x.h (SELECT_SECTION): Remove.
8021
8022         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
8023         (TARGET_ASM_UNIQUE_SECTION): New.
8024         * config/i386/i386-interix.h: Likewise.
8025         * config/i386/win32.h: Likewise.
8026         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
8027         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
8028         * config/i386/sco5.h (SELECT_SECTION): Remove.
8029         (TARGET_ASM_SELECT_SECTION): New.
8030         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
8031
8032         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
8033         instead of SELECT_SECTION.
8034         * config/m68k/dpx2.h: Likewise.
8035         * config/rs6000/lynx.h: Likewise.
8036
8037         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8038         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8039         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
8040         (ia64_in_small_data_p): New.
8041         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
8042         (ia64_aix_select_section, ia64_aix_unique_section): New.
8043         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
8044         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8045
8046         * config/m32r/m32r.h (SELECT_SECTION): Remove.
8047         (TARGET_ASM_SELECT_SECTION): New.
8048         * config/m32r/m32r.c (m32r_select_section): Take align argument.
8049         * config/m32r/m32r-protos.h: Update.
8050
8051         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
8052         (SELECT_SECTION): Move ...
8053         * config/m88k/m88k.c (m88k_select_section): ... here.
8054
8055         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
8056         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
8057         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
8058         (mcore_unique_section): Make static.
8059         * config/mcore/mcore-protos.h: Update.
8060
8061         * config/mips/elf.h (UNIQUE_SECTION): Remove.
8062         (TARGET_ASM_UNIQUE_SECTION): New.
8063         * config/mips/elf64.h: Likewise.
8064         * config/mips/iris6gld.h: Likewise.
8065         * config/mips/linux.h: Likewise.
8066         * config/mips/mips-protos.h: Update.
8067         * config/mips/mips.c (mips_select_section): Add align argument.
8068         * config/mips/mips.h (SELECT_SECTION): Remove.
8069         (TARGET_ASM_SELECT_SECTION): New.
8070
8071         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8072         * config/mmix/mmix.c (mmix_select_section): Remove.
8073         (mmix_unique_section): Remove.
8074         * config/mmix/mmix-protos.h: Update.
8075
8076         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
8077         (SELECT_SECTION): Move ...
8078         * config/pa/pa.c (pa_select_section): ... here.
8079         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
8080
8081         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
8082         from rs6000_select_section and make static.
8083         (rs6000_elf_unique_section): Similarly.
8084         (rs6000_xcoff_select_section): From xcoff.h.
8085         (rs6000_xcoff_unique_section): Likewise.
8086         * config/rs6000/rs6000-protos.h: Update.
8087         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8088         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8089         * config/rs6000/xcoff.h: Likewise.
8090
8091         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
8092         (SELECT_SECTION): Move ...
8093         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
8094
8095         * config/v850/v850.h (SELECT_SECTION): Move ...
8096         * config/v850/v850.c (v850_select_section): ... here.
8097         (TARGET_ASM_SELECT_SECTION): New.
8098
8099         * config/vax/vms.h (SELECT_SECTION): Move ...
8100         * config/vax/vax.c (vms_select_section): ... here.
8101         (TARGET_ASM_SELECT_SECTION): New.
8102
8103         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
8104         for the target hooks.
8105
8106 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
8107
8108         * config/arm/arm.c (emit_multi_reg_push): Do not set
8109         RTX_FRAME_RELATED_P on the SEQUENCE.
8110
8111 2002-05-16  Richard Henderson  <rth@redhat.com>
8112
8113         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
8114         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
8115
8116 2002-05-16  Richard Henderson  <rth@redhat.com>
8117
8118         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
8119
8120         * config/ia64/ia64.c (saveable_obstack): Do not declare.
8121
8122 2002-05-16  Richard Henderson  <rth@redhat.com>
8123
8124         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
8125         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
8126         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
8127         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
8128         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
8129         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
8130         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
8131         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
8132         Revert "Basic block renumbering removal", and two followup patches.
8133
8134 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
8135
8136         * lcm.c (optimize_mode_switching): Revert previous change.
8137
8138 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8139
8140         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
8141         with only extant block numbers.
8142
8143 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
8144
8145         * lcm.c (optimize_mode_switching): Fix typo.
8146
8147 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8148
8149         * flow.c (calculate_global_regs_live): Queue blocks in program order.
8150
8151 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8152
8153         * doc/install.texi (Configuration): Document PWDCMD.
8154
8155 2002-05-16  Dale Johannesen  <dalej@apple.com>
8156
8157         * combine.c (cant_combine_insn_p):  Reenable combinations
8158         involving hard regs unless CLASS_LIKELY_SPILLED_P.
8159
8160 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8161
8162         * c-common.c (cb_register_builtins): Handle more built-ins
8163         here rather than in gcc.c specs.
8164         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
8165         (cpp_options): Pass -O flags even when only preprocessing.
8166         * toplev.c (set_fast_math_flags): New prototype.
8167         (fast_math_flags_set_p): New.
8168         (set_no_fast_math_flags): Remove.
8169         (decode_f_option): Update.
8170         * toplev.h (set_fast_math_flags): Update.
8171         (fast_math_flags_set_p): New.
8172         (set_no_fast_math_flags): Remove.
8173 config:
8174         * c4x/c4x.c (c4x_override_options): Update.
8175
8176 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
8177
8178         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
8179         Default-define here.
8180         (builtin_define_with_value): Can now wrap the expansion in
8181         quotation marks if such is wanted.
8182         (cb_register_builtins): Update calls to builtin_define_with_value.
8183         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
8184         here.
8185         (c_common_init): Set options->stdc_0_in_system_headers.
8186         * c-lex.h: Update prototype of builtin_define_with_value.
8187         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
8188         and REGISTER_PREFIX.
8189
8190         * cppinit.c (VERS, ULP, C, X): Kill.
8191         (builtin_array): Remove entries for __VERSION__,
8192         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
8193         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
8194         a constant.
8195         (init_builtins): Kill off a bunch of now-dead code.
8196         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
8197         -fno-leading-underscore.
8198         (cpp_handle_option): Remove code to set user_label_prefix.
8199         (cpp_post_options): Likewise.
8200
8201         * cpplib.h (struct cpp_options): Remove user_label_prefix.
8202         (stdc_0_in_system_headers): New.
8203         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
8204         stdc_0_in_system_headers) too to decide the value of __STDC__.
8205
8206         * tradcpp.c (user_label_prefix): Kill.
8207         (main): Remove code handling -f(no-)leading-underscore.
8208         (initialize_builtins): Don't define __REGISTER_PREFIX__
8209         or __USER_LABEL_PREFIX__.
8210         (install_value): Wrap compound statement in dummy loop so the
8211         macro works properly in an if statement.
8212
8213
8214 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
8215
8216         * loop.h (struct loop_info): Add member has_prefetch.
8217         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
8218         (prescan_loop): Initialize has_prefetch.
8219         (struct prefetch_info): Change prefetch_in_loop and
8220         prefetch_before_loop from bit fields to ints.
8221         (emit_prefetch_instructions): Several small fixes.
8222         (check_dbra_loop): Don't reverse loop that uses prefetch.
8223
8224 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8225
8226         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
8227         * configure.in: Likewise.
8228         * fixinc/check.tpl: Likewise.
8229         * fixinc/fixinc.dgux: Likewise.
8230         * fixinc/fixinc.svr4: Likewise.
8231         * fixinc/fixinc.winnt: Likewise.
8232         * fixinc/fixincl.sh: Likewise.
8233         * fixproto: Likewise.
8234         * configure: Regenerate.
8235
8236 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8237
8238         Basic block renumbering removal:
8239         * basic_block.h (struct basic_block_def): Renamed index to sindex,
8240         added prev_bb and next_bb fields.
8241         (n_basic_blocks): Renamed to num_basic_blocks.
8242         (last_basic_block): New, index of last basic block.
8243         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
8244         traversing basic block chain.
8245         (BLOCK_NUM): index -> sindex.
8246         (create_basic_block_structure, create_basic_block): Declaration changed.
8247         (debug_num2bb): Declare.
8248         (expunge_block_nocompact): Declaration removed.
8249         (link_block, unlink_block, compact_blocks): Declare.
8250         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
8251         * cfg.c (entry_exit_blocks): Initialize new fields.
8252         (clear_edges, alloc_block, expunge_block, cached_make_edge,
8253         redirect_edge_pred, dump_flow_info, dump_edge_info,
8254         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
8255         free_aux_for_edges): Modified.
8256         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
8257         (expunge_block_nocompact): Removed.
8258         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
8259         find_unreachable_blocks, create_edge_list, print_edge_list,
8260         verify_edge_list, flow_edge_list_print, remove_fake_successors,
8261         remove_fake_edges, flow_reverse_top_sort_order_compute,
8262         flow_depth_first_order_compute, flow_preorder_transversal_compute,
8263         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
8264         flow_dfs_compute_reverse_execute): Modified.
8265         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
8266         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
8267         Modified.
8268         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8269         merge_blocks_move_predecessor_nojumps,
8270         merge_blocks_move_successor_nojumps, merge_blocks,
8271         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
8272         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
8273         * cfglayout.c (skip_insns_after_block, label_for_bb,
8274         record_effective_endpoints, scope_to_insns_finalize,
8275         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
8276         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
8277         cfg_layout_duplicate_bb): Modified.
8278         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
8279         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
8280         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
8281         flow_loops_find, flow_loop_outside_edge_p): Modified.
8282         * cfgrtl.c (create_basic_block_structure, create_basic_block,
8283         flow_delete_block, compute_bb_for_insn, split_block,
8284         try_redirect_by_replacing_jump, redirect_edge_and_branch,
8285         force_nonfallthru_and_redirect, tidy_fallthru_edge,
8286         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
8287         commit_edge_insertions, commit_edge_insertions_watch_calls,
8288         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
8289         purge_all_dead_edges): Modified.
8290         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
8291         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
8292         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
8293         Modified.
8294         * conflict.c (conflict_graph_compute): Modified.
8295         * df.c (FOR_ALL_BBS): Removed.
8296         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
8297         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
8298         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
8299         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
8300         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
8301         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
8302         * final.c (compute_alignments, final_scan_insn): Modified.
8303         * flow.c (verify_local_live_at_start, update_life_info,
8304         update_life_info_in_dirty_blocks, free_basic_block_vars,
8305         delete_noop_moves, calculate_global_regs_live,
8306         initialize_uninitialized_subregs, allocate_bb_life_data,
8307         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
8308         mark_used_reg, count_or_remove_death_notes): Modified.
8309         * function.c (thread_prologue_and_epilogue_insns): Modified.
8310         * gcse.c (struct null_pointer_info): Change typo of current_block
8311         to basic_block.
8312         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
8313         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
8314         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
8315         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
8316         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
8317         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
8318         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
8319         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
8320         pre_delete, one_pre_gcse_pass, compute_transpout,
8321         invalidate_nonnull_info, delete_null_pointer_checks_1,
8322         free_code_hoist_mem, compute_code_hoist_vbeinout,
8323         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
8324         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
8325         compute_store_table, build_store_vectors, insert_insn_start_bb,
8326         insert_store, replace_store_insn, free_store_memory, store_motion):
8327         Modified.
8328         * global.c (global_alloc, global_conflicts, mark_elimination,
8329         build_insn_chain): Modified.
8330         * graph.c (print_rtl_graph_with_bb): Modified.
8331         * haifa-sched.c (sched_init): Modified.
8332         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
8333         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
8334         if_convert): Modified.
8335         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
8336         compute_insert_delete, pre_edge_lcm, compute_available,
8337         compute_farthest, compute_nearerout, compute_rev_insert_delete,
8338         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
8339         Modified.
8340         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
8341         * loop.c (loop_dump_aux): Modified.
8342         * predict.c (combine_predictions_for_insn, estimate_probability,
8343         last_basic_block_p, process_note_prediction, process_note_predictions,
8344         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
8345         expensive_function_p, estimate_bb_frequencies,
8346         compute_function_frequency): Modified.
8347         * print-rtl.c (print_rtx): Modified.
8348         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
8349         get_exec_counts, compute_branch_probabilities, compute_checksum,
8350         branch_prob, find_spanning_tree): Modified.
8351         * recog.c (split_all_insns, peephole2_optimize): Modified.
8352         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
8353         convert_regs_1, convert_regs_2, convert_regs): Modified.
8354         * regclass.c (scan_one_insn, regclass): Modified.
8355         * regmove.c (mark_flags_life_zones, regmove_optimize,
8356         combine_stack_adjustments): Modified.
8357         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
8358         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
8359         * reorg.c (dbr_schedule): Modified.
8360         * resource.c (find_basic_block, init_resource_info): Modified.
8361         * sbitmap.c (sbitmap_intersection_of_succs,
8362         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
8363         sbitmap_union_of_preds): Modified.
8364         * sched-deps.c (init_dependency_caches): Modified.
8365         * sched-ebb.c (schedule_ebbs): Modified.
8366         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
8367         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
8368         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
8369         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
8370         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
8371         ssa_const_prop): Modified.
8372         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
8373         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
8374         * ssa.c (remove_phi_alternative, find_evaluations,
8375         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
8376         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
8377         make_regs_equivalent_over_bad_edges,
8378         make_equivalent_phi_alternatives_equival,
8379         compute_conservative_reg_partition,
8380         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
8381         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
8382         Modified.
8383
8384 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
8385
8386         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
8387
8388 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
8389
8390         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
8391         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
8392         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
8393         calling CONSTANT_POOL_ADDRESS_P.
8394         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
8395         to decide whether to define __arm__ or __thumb.
8396         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
8397         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
8398
8399 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8400
8401         * config/arc/arc.h (CPP_PREDEFINES): Remove.
8402         (CPP_SPEC): Update.
8403         (TARGET_CPU_CPP_BUILTINS): New.
8404
8405 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8406
8407         * cpphash.h (cpp_macro): Move here, and make expansion a union.
8408         * cppmacro.c (cpp_macro): Remove.
8409         (enter_macro_context, replace_args, warn_of_redefinition,
8410         _cpp_create_definition, cpp_macro_definition): Update.
8411
8412 2002-05-16  Jason Merrill  <jason@redhat.com>
8413
8414         * config/mips/mips.c (mips_output_external): Don't do sdata
8415         optimization for a variable with DECL_COMDAT set.
8416
8417 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8418
8419         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
8420         Cleanups for accepting modifiers on pointers.
8421         Fix predicate typos.
8422         Allow long pointers as well as int pointers.
8423
8424 2002-05-15  Richard Henderson  <rth@redhat.com>
8425
8426         * varasm.c (merge_weak): Remove special case for extern and common.
8427
8428 2002-05-15  Matt Hiller  <hiller@redhat.com>
8429
8430         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
8431         XFAILing.
8432         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
8433         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
8434         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
8435         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
8436         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
8437         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
8438
8439 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8440
8441         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
8442
8443 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8444
8445         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
8446         ("altivec_mfvscr"): Read from VSCR.
8447
8448         Add vscr sets for the following insns: altivec_vctuxs,
8449         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
8450         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
8451         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
8452         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
8453         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
8454         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
8455         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
8456         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
8457         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
8458         altivec_vsum2sws, altivec_vsumsws.
8459
8460         * config/rs6000/rs6000.h: Add VSCR fixed register.
8461         (CALL_REALLY_USED_REGISTERS): Add vscr.
8462         (CALL_USED_REGISTERS): Same.
8463         (FIXED_REGISTERS): Same.
8464         (REG_ALLOC_ORDER): Same.
8465         (reg_class): Add VSCR_REGS.
8466         (REG_CLASS_NAMES): Same.
8467         (REG_CLASS_CONTENTS): Same.
8468         (VSCR_REGNO): New.
8469         (REGISTER_NAMES): Add vscr.
8470         (DEBUG_REGISTER_NAMES): Same.
8471         (ADDITIONAL_REGISTER_NAMES): Same.
8472         (FIRST_PSEUDO_REGISTER): Increment.
8473         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
8474
8475 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
8476
8477         * fold-const.c (fold): Fix a typo.
8478
8479 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
8480
8481         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
8482         comparison against the highest or lowest integer value before
8483         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
8484         transformation and that of an unsigned comparison against 0
8485         right after.
8486
8487 2002-05-15  Richard Henderson  <rth@redhat.com>
8488
8489         * varasm.c (merge_weak): Error for any weakening after definition.
8490         Adjust weakening after use warning to catch more cases.
8491         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
8492         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
8493
8494 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
8495
8496         * invoke.texi (-malign-double): Re-add lost warning.
8497
8498         * i386-protos.h (x86_output_mi_thunk): Declare.
8499         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
8500         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
8501
8502         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
8503         when flag_asynchronous_unwind_tables is set.
8504
8505         * flags.h (flag_reorder_functions): Declare.
8506         * function.c (prepare_function_start): Initialize frequnecy.
8507         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
8508         * Makefile.in (predict.o): Add dependency on target.h and params.h
8509         * defaults.h (HOT_TEXT_SECTION_NAME,
8510         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
8511         * predict.c (choose_function_section): New function.
8512         (estimate_bb_frequencies): Use it.
8513         * toplev.c (flag_reorder_functions): New global variable.
8514         (lang_independent_options): New.
8515         (parse_options_and_default_flags): Set.
8516         * varasm.c (assemble_start_function): Bypass functdion alignment
8517         for never executed functions.
8518         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
8519         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
8520         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
8521         Document.
8522
8523         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
8524
8525         * predict.c: Inlude profile.h
8526         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
8527         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
8528         Use the information about maximal counter in the program.
8529
8530         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
8531
8532         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
8533         probably_never_executed_bb_p): New functions.
8534         * cfgcleanup.c (outgoing_edges_match): Use them.
8535         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
8536         (maybe_hot_bb_p, probably_cold_bb_p,
8537         probably_never_executed_bb_p): New functions.
8538
8539         * function.h (function): Add new field function_frequency.
8540         * predict.c (compute_function_frequency): New function.
8541         (estimate_probability): Call it.
8542
8543 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8544
8545         PR optimization/5172, optimization/5200
8546         * gcse.c (gcse_main): Disable store_motion.
8547
8548 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
8549
8550         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
8551         (c_common_nodes_and_builtins): Use it.
8552         (builtin_define_with_value): New function.
8553         (cb_register_builtins): Define __SIZE_TYPE__,
8554         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
8555         using builtin_define_with_value.  Use consistent notation when
8556         defining __GXX_WEAK__.
8557         (WCHAR_TYPE_SIZE): Don't redefine.
8558         (combine_strings): Don't use WCHAR_TYPE_SIZE.
8559
8560         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
8561         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
8562         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
8563         * tradcpp.c (initialize_builtins): Likewise.
8564         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
8565
8566         * c-lex.h (builtin_define_with_value): Prototype.
8567         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
8568         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
8569         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
8570
8571         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8572         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
8573         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
8574         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
8575         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
8576         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
8577         config/sparc/sol2-bi.h, config/sparc/sparc.h:
8578         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
8579         to __SIZE_TYPE__ etc from all spec strings. When this makes
8580         extra specs empty, delete them.
8581
8582 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8583
8584         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
8585         for PA8000 or generating dwarf2 call frame information.
8586         (output_call): Remove DO_FRAME_NOTES check from return pointer
8587         optimization.
8588         (following_call): Return 0 when scheduling for PA8000 or generating
8589         dwarf2 call frame information.  Revise comment.
8590
8591 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8592
8593 config/alpha:
8594         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
8595         and __IEEE_FP_INEXACT as appropriate.
8596         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
8597         (CPP_SPEC): Remove ieee defines.
8598         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
8599
8600 2002-05-14  Richard Henderson  <rth@redhat.com>
8601
8602         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
8603         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
8604
8605 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8606
8607         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
8608         (CPP_SPEC): Update.
8609         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
8610         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
8611         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
8612         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
8613         (EXTRA_SPECS): Update.
8614         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
8615         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
8616         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
8617         define TARGET_OS_CPP_BUILTINS if necessary.
8618
8619 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8620
8621         * gcc.c (cpp_options): Must pass -m* and -f* options
8622         to the front end even when only preprocessing.
8623         (cc1_options): Remove redundant -lang-c.
8624         * tradcpp.c (main): Ignore -m options.
8625 objc:
8626         * lang-specs.h: Similarly.
8627
8628 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
8629
8630         * genautomata.c (transform_3): Add code for transformation
8631         `(A,B,...)+C -> A+C,B,...'.
8632
8633 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
8634
8635         * final.c (end_final): Do not output profile_arcs constructor, when
8636         no functions are instrumented.
8637
8638 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
8639
8640         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
8641
8642 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8643
8644         * doc/install.texi: Remove special markup originally required for
8645         HTML generation with texi2html.
8646
8647 2002-05-14  Andreas Schwab  <schwab@suse.de>
8648
8649         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
8650         SELECT_SECTION.
8651         (UNIQUE_SECTION): Define to get small data correctly.
8652
8653         * varasm.c (resolve_unique_section): Add third parameter
8654         flag_function_or_data_sections and use it instead of
8655         flag_function_sections.
8656         (assemble_start_function): Pass flag_function_sections.
8657         (asm_emit_uninitialised): Pass flag_data_sections.
8658         (assemble_variable): Likewise.
8659
8660 2002-05-14  Richard Henderson  <rth@redhat.com>
8661
8662         * config/i386/i386.md: Use define_constants for unspec numbers.
8663         * config/i386/i386.c: Likewise.
8664
8665 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8666
8667         * doc/contrib.texi: Update my entry.
8668
8669 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
8670
8671         * fixinc/inclhack.def (winidss_valist): Limit applicability.
8672         * fixinc/fixincl.x: Regenerated.
8673         * fixinc/tests/base/math.h: Update.
8674         * fixinc/tests/base/testing.h: Likewise.
8675
8676 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
8677
8678         * genattr.c (gen_attr): Don't emit a comma after the last
8679         enumerator.
8680
8681 2002-05-13  Richard Henderson  <rth@redhat.com>
8682
8683         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
8684         by non-local gotos.
8685         * recog.c (peephole2_optimize): Likewise.
8686
8687 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
8688
8689         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
8690         input to O_BINARY.
8691
8692 2002-05-13  Jeffrey A Law  (law@redhat.com)
8693
8694         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
8695         Update prototype and callers.
8696         (propagate_one_insn): Stack pointer adjustments kill MEMs on
8697         the mem_set_list which reference the stack pointer, as do
8698         calls to constant functions as they may clobber outgoing
8699         argument space.
8700
8701         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
8702
8703         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8704         (ia32_multipass_dfa_lookahead): New function.
8705
8706 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8707
8708         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
8709         (translate_options): Remove 'V'.
8710         (process_command): Similarly.
8711 doc:
8712         * invoke.texi: Remove documentation of 'V'.
8713
8714 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
8715
8716         * config/s390/linux.h: Revert 2002-04-22 changes.
8717
8718 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
8719
8720         * config/fr30/fr30.md: Only allow splits of immediate loads
8721         if the destination is a register.
8722
8723 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8724
8725         * Makefile.in (c-common.o, cppinit.o): Update.
8726         * c-common.c: Include except.h.
8727         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
8728         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
8729         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
8730         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
8731         CPP_PREDEFINES): Handle here.
8732 config:
8733         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
8734         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
8735         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
8736         TARGET_OS_CPP_BUILTINS.
8737         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
8738         (CPP_SPEC, EXTRA_SPECS): Update.
8739         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
8740         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
8741         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
8742         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
8743         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
8744 doc:
8745         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
8746         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
8747
8748 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
8749
8750         * emit-rtl.c (global_rtl): Update comment.
8751         (const_double_htab, const_double_htab_hash,
8752         const_double_htab_hash, lookup_const_double): New.
8753         (const_int_htab_hash, const_int_htab_eq): Remove const
8754         qualifiers, which cause tons of warnings with RTL checking on.
8755         (gen_rtx_CONST_DOUBLE): Deleted.
8756         (const_double_from_real_value): New function - bears some
8757         resemblance to the former immed_real_const_1.
8758         (immed_double_const): Moved here from varasm.c and
8759         simplified.
8760         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
8761         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
8762         (gen_rtx): Use immed_double_const.
8763         (init_emit_once): Initialize the const_double_htab.  Use
8764         REAL_VALUE_FROM_INT where possible.  Can now use
8765         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
8766         * varasm.c (struct varasm_status): Remove x_const_double_chain.
8767         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
8768         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
8769         (init_varasm_status, mark_varasm_status): Don't touch
8770         x_const_double_chain.
8771
8772         * output.h: Delete prototype for clear_const_double_mem.
8773         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
8774         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
8775         const_double_from_real_value, not immed_real_const_1, and use
8776         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
8777         CONST_DOUBLE_ATOF.
8778         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
8779         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
8780         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
8781         (gen_rtx_REG): Second arg is unsigned.
8782
8783         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
8784         (excluded_rtx): New, return true for CONST_DOUBLE.
8785         (genmacro): Write nothing for excluded codes.
8786         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
8787         * expr.c (expand_expr): Likewise.
8788         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
8789         CONST_DOUBLE_CHAIN.
8790         * toplev.c (rest_of_compilation): Don't call
8791         clear_const_double_mem.
8792
8793         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
8794         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
8795         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
8796         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
8797         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
8798         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
8799         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
8800         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
8801
8802 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8803
8804         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
8805
8806 2002-05-12  Tom Tromey  <tromey@redhat.com>
8807
8808         * tree.h (copy_node): Don't mention TREE_PERMANENT.
8809
8810 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
8811
8812         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
8813         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
8814         * gensupport.h: Prototype new routines.
8815         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
8816         use of printf.
8817         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
8818         (next_comma_elt): Use scan_comma_elt.
8819
8820         * config/i386/i386.md: Use new attribute notation to break up
8821         long lines in define_attr forms.
8822
8823 2002-05-12  Richard Henderson  <rth@redhat.com>
8824
8825         * expr.c (compress_float_constant): New.
8826         (emit_move_insn): Use it.
8827         (float_extend_from_mem): New.
8828         (init_expr_once): Initialize it.
8829         * real.c (exact_real_truncate): New.
8830
8831         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
8832         dropped into memory; penalize for size.
8833         (RTX_COSTS): FLOAT_EXTEND is free.
8834         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
8835         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
8836
8837 2002-05-12  Richard Henderson  <rth@redhat.com>
8838
8839         * profile.h (profile_info): Add missing extern to declaration.
8840         * profile.c (profile_info): Define it.
8841
8842 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8843
8844         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
8845         used for DImode and TImode.
8846
8847 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8848
8849         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
8850         fake a newline.
8851
8852 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
8853
8854         * config/rs6000/rs6000.c (rs6000_default_long_calls,
8855         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
8856         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
8857         (rs6000_override_options): Handle -m(no-)longcall.
8858         (init_cumulative_args, output_mi_thunk): Check for both
8859         longcall and shortcall attributes on the function.
8860         (rs6000_attribute_table): Add "shortcall".
8861         (rs6000_handle_longcall_attribute): Update comment.
8862         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
8863         altivec_expand_ternop_builtin): Add default clauses to switches
8864         to silence warnings.
8865
8866         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
8867         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
8868         (TARGET_OPTIONS): Add longcall and no-longcall.
8869
8870         * config/rs6000/rs6000.md (call_nonlocal_sysv,
8871         call_value_nonlocal_sysv): Split by alternatives.  One pair
8872         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
8873         the call cookie.  The other pair accepts only LR/CTR and has
8874         no restriction.
8875
8876         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
8877         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
8878         tmake_file.
8879         * config/rs6000/rs6000-c.c: New file.
8880         * config/rs6000/t-rs6000-c-rule: New file.
8881         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
8882         Prototype rs6000_pragma_longcall.
8883
8884         * doc/extend.texi: Document shortcall attribute.
8885         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
8886
8887 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8888
8889         * reorg.c (dbr_schedule): Remove unnecessary test.
8890
8891 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
8892
8893         * i386.md (testsi to testqi spliters): New.
8894
8895         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
8896
8897         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
8898
8899         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
8900
8901         * basic-block.h: New flag EDGE_CAN_FALLTHRU
8902         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
8903         that can be made fallthru.
8904
8905         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
8906
8907         * cfglayout.c (cleanup_unconditional_jumps): New static function.
8908         (cfg_layout_initialize): Use it.
8909
8910 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8911
8912         * config/avr/avr.c (avr_mcu_types): Update supported devices.
8913         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8914         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8915
8916 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
8917
8918         * dbxout.c: Fix formatting.
8919         * dependence.c: Likewise.
8920         * df.c: Likewise.
8921         * diagnostic.c: Likewise.
8922         * doloop.c: Likewise.
8923         * dominance.c: Likewise.
8924         * doschk.c: Likewise.
8925         * dwarf2asm.c: Likewise.
8926         * dwarf2out.c: Likewise.
8927         * dwarfout.c: Likewise.
8928
8929 2002-05-10  Richard Henderson  <rth@redhat.com>
8930
8931         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
8932         Convert integers constants as needed.  Replace "nwords" field with
8933         "sizeof_bb".
8934         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
8935         * function.h: Fix typo in comment.
8936         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
8937
8938 2002-05-10  Roger Sayle  <roger@eyesopen.com>
8939
8940         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
8941         into the equivalent (signed char)c > 0.
8942
8943 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
8944
8945         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
8946         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
8947         (struct prefetch_info): Fix spelling of member bytes_accessed.
8948         (emit_prefetch_instructions): Make dump messages more regular;
8949         restructure code to add more dump messages; use new macros for
8950         heuristics. (There are no code generation changes in any of this).
8951
8952 2002-05-10  David S. Miller  <davem@redhat.com>
8953
8954         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
8955         (struct rtx_def): Update unchanging flag comment.
8956         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
8957         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
8958         to be handled to INSN too.
8959         (dbr_schedule): Likewise.
8960         * resource.c (next_insn_no_annul): Likewise.
8961
8962         * cse.c (rtx_cost): Remove multiplication by power of 2 special
8963         casing.
8964
8965 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8966
8967         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
8968         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
8969         (possibly) work around broken /bin/sh.
8970
8971 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8972
8973         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
8974         . as N64/N32 libgcc_s.so subdirs.
8975
8976 2002-05-10  David S. Miller  <davem@redhat.com>
8977
8978         * config/sparc/sparc.md: Use define_constants for unspec numbers.
8979
8980         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
8981         more accurately.
8982         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
8983         comment.
8984         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
8985         * doc/rtl.texi: Document these macros more accurately.
8986         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
8987         JUMP_INSNs and CALL_INSNs.
8988         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
8989         or INSN_FROM_TARGET_P if the code is appropriate.
8990
8991 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8992
8993         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
8994         before using SYMBOL_REF_FLAG (addr).
8995
8996         * config/avr/avr-protos.h (avr_io_address_p): Declare.
8997         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
8998         Make non-static.  Update all callers.
8999         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
9000         New insns to clear/set/test a single bit in I/O address space.
9001
9002 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9003
9004         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
9005
9006 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9007
9008         * Makefile.in: Update.
9009         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
9010         builtin_define_std): New.
9011         (c_common_init): Register CPP builtins callback.
9012         * c-common.h (flag_iso, flag_undef): New.
9013         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
9014         * c-lex.c: Don't include target.h.
9015         (cb_register_builtins): Move to c-common.c.
9016         (init_c_lex): Don't register hook here.
9017         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
9018         (cpp_define, cpp_assert): Remove.
9019         * gcc.c (cc1_options): Pass -undef to front end.
9020         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
9021         (TARGET_INITIALIZER): Update.
9022         * target.h (struct cpp_reader): Don't predeclare.
9023         (struct gcc_target): Remove cpp builtin hook.
9024         * tree.c (default_register_cpp_builtins): Remove.
9025 doc:
9026         * tm.texi: Update.
9027
9028 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9029
9030         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
9031
9032 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9033
9034         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
9035         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
9036
9037 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9038
9039         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
9040         * config/sparc/libgcc-sparc-glibc.ver: New file.
9041         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
9042         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
9043
9044 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9045
9046         PR target/6429
9047         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
9048         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
9049         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
9050         base multilibs.
9051         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
9052         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
9053         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9054         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9055
9056 2002-05-09  Richard Henderson  <rth@redhat.com>
9057
9058         * config/ia64/ia64.md: Use define_constants for unspec numbers.
9059         * config/ia64/ia64.c: Likewise.
9060
9061 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
9062
9063         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
9064         (save_restore_insns): Likewise.
9065         (mips_expand_prologue, mips_expand_epilogue): Update callers.
9066         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
9067
9068 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
9069
9070         * athlon.md, k6.md, pentium.md, ppro.md): New files.
9071         * i386.md: Move scheduling information into new files.
9072
9073         * i386.md (type attribute): Add "rotate" for rotate insns.
9074         (rotate insns): Set type to "rotate".
9075         (various attributes and function units): Treat rotate like shift.
9076         (pent_pair attribute): Only rotates by one bit position are
9077         pairable.
9078         (sbb insns): Explicitly set pent_pair attribute on a couple
9079         that were missing it.
9080
9081 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
9082
9083         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
9084         make sure that buffer starts on odd word address.
9085         (sh_va_arg): Skip odd fp registers when reading a double precision
9086         value.
9087
9088 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9089
9090         * tree.h (preserve_data, object_permanent_p, type_precision):
9091         Remove.
9092
9093 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9094
9095         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
9096         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
9097 doc:
9098         * cpp.texi: Update for removal of obsolete features.
9099
9100 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
9101                           Jeffrey A Law  (law@redhat.com)
9102
9103         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
9104         the DFA interface for Pentium processors.
9105         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
9106         (attr_pent_pair, ix86_pent_find_pair): Remove.
9107         (ix86_sched_reorder_pentium): Remove.
9108         (ix86_sched_reorder): Remove reordering for Pentium.
9109         * i386.md (Pentium scheduling): Rewrite using DFA description.
9110
9111 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
9112
9113         * cfganal.c (can_fallthru): Fix fast path.
9114         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
9115         with edges to the next block.
9116
9117 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
9118                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
9119
9120         * final.c (end_final): Use C trees to output data structures for profiling.
9121
9122         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
9123         (profile.o): New dependency profile.h
9124         (final.o): New dependency profile.h
9125         * profile.h: New file. New global structure profile_info.
9126         * final.h (count_edges_instrumented_now): Declare.
9127         (current_function_cfg_checksum): Declare.
9128         (function_list): New structure.
9129         (functions_head, functions_tail): New static variables.
9130         (end_final): Emits more data, removed some -ax stuff.
9131         (final): Stores function names and chcksums.
9132         * gcov-io.h (__write_gcov_string): New function.
9133         (__read_gcov_string): New function.
9134         * gcov.c (read_profile): New function.
9135         (create_program_flow_graph): Uses read_profile instead of reading
9136         da_file.
9137         (read_files): Removed da_file checking, it's done by read_profile now.
9138         * libgcc2.c (bb_function_info): New structure.
9139         (bb): New field in structure, removed some -ax stuff.
9140         (__bb_exit_func): Changed structure of da_file.
9141         * profile.c (count_edges_instrumented_now): New global variable.
9142         (current_function_cfg_checksum): New global variable.
9143         (max_counter_in_program): New global variable.
9144         (get_exec_counts): New function.
9145         (compute_checksum): New function.
9146         (instrument_edges): Sets count_edges_instrumented_now.
9147         (compute_branch_probabilities): Uses get_exec_counts instead of
9148         reading da_file.
9149         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
9150         (init_branch_prob): Removed da_file checking, done in get_exec_counts
9151         now.
9152         (end_branch_prob): Removed da_file checking, done in get_exec_counts
9153         now.
9154         * gcov.texi: Updated information about gcov file format.
9155
9156 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
9157
9158         * sbitmap.c: Fix formatting.
9159         * scan.c: Likewise.
9160         * scan-decls.c: Likewise.
9161         * sched-deps.c: Likewise.
9162         * sched-ebb.c: Likewise.
9163         * sched-rgn.c: Likewise.
9164         * sched-vis.c: Likewise.
9165         * sdbout.c: Likewise.
9166         * sibcall.c: Likewise.
9167         * simplify-rtx.c: Likewise.
9168         * ssa.c: Likewise.
9169         * ssa-ccp.c: Likewise.
9170         * ssa-dce.c: Likewise.
9171         * stmt.c: Likewise.
9172         * stor-layout.c: Likewise.
9173         * stringpool.c: Likewise.
9174
9175 2002-05-09  David S. Miller  <davem@redhat.com>
9176
9177         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
9178
9179 2002-05-07  David S. Miller  <davem@redhat.com>
9180
9181         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
9182         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
9183         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
9184         library implementation clobbers the output before the inputs
9185         are fully consumed, use stack temporary for the output.
9186
9187 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
9188
9189         * config/netbsd.h (CPP_SPEC): Remove.
9190         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
9191         * config/i386/netbsd.h (CPP_SPEC): Define.
9192         * config/ns32k/netbsd.h (CPP_SPEC): Define.
9193         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
9194         * config/sparc/netbsd.h (CPP_SPEC): Define.
9195         * config/vax/netbsd.h (CPP_SPEC): Define.
9196
9197 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
9198
9199         * read-rtl.c: Fix formatting.
9200         * real.c: Likewise.
9201         * recog.c: Likewise.
9202         * regclass.c: Likewise.
9203         * regmove.c: Likewise.
9204         * reg-stack.c: Likewise.
9205         * reload1.c: Likewise.
9206         * reload.c: Likewise.
9207         * resource.c: Likewise.
9208         * rtlanal.c: Likewise.
9209         * rtl.c: Likewise.
9210         * rtl-error.c: Likewise.
9211
9212 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9213
9214         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
9215         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
9216
9217 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
9218
9219         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
9220         use __SSE2__ macro instead.
9221         * config/i386/xmmintrin.h: Likewise.
9222
9223 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
9224
9225         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
9226         and use it in all invocations of these macros.  Clean up comments.
9227         * rtl.c (rtl_check_failed_flag): Add an argument for the name
9228         of the flag access macro whose check failed.
9229         * doc/rtl.texi (Flags): Document additional flag uses.
9230
9231 2002-05-08  Robert Spier <rspier@pobox.com>
9232             Neil Booth  <neil@daikokuya.demon.co.uk>
9233
9234         PR preprocessor/6521
9235         * cppfiles.c (handle_missing_header): Don't do anything
9236         different for <> includes.
9237 doc:
9238         * cppopts.texi: Update documentation for -MG.
9239
9240 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9241
9242         * cpplex.c (cpp_interpret_charconst): Truncate as well as
9243         sign-extend.
9244 doc:
9245         * cpp.texi: Clarify multichar charconst valuation.
9246
9247 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
9248
9249         * doc/invoke.texi: Document -mwindiss option.
9250
9251 2002-05-08  Jason Merrill  <jason@redhat.com>
9252
9253         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
9254
9255         * dwarf2out.c (gen_type_die): Abort on broken recursion.
9256
9257         PR c++/6381
9258         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
9259         REAL_CST.
9260
9261 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
9262
9263         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
9264         little-endian multilibs to override arm/thumb multilibs.
9265         Do not build hardware floating point multilibs, nor apcs-26
9266         multilibs for the Thumb.
9267
9268 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
9269
9270         PR c/6569.
9271         * varasm.c (mark_weak): New function.
9272         (merge_weak): Use it.  Do not call declare_weak.
9273         (declare_weak): Use merge_weak.
9274
9275 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
9276
9277         * cse.c (dead_libcall_p): Update counts.
9278         (delete_trivially_dead_insns): Update call of dead_libcall_p.
9279
9280 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
9281
9282         * cfglayout.c (function_tail_eff_head): Rename to ...
9283         (function_footer): ... this one.
9284         (unlink_insn_chain): New functions.
9285         (label_for_bb): Only call block_label and emit debug message.
9286         (record_effective_endpoints): Actually unlink the headers and footers.
9287         (fixup_reorder_cahin): Re-insert the unlinked sequences.
9288         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
9289         * cfglayout.h (struct reorder_block_def): New fields footer/header;
9290         remove eff_head/eff_end.
9291         * rtl.h (set_first_insn): Declare.
9292         * emit-rtl.c (set_first_insn): New function.
9293
9294         * cfglayout.c (fixup_reorder_chain): Dump duplicated
9295         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
9296         cfg_layout_duplicate_bb): New global function.
9297         (duplicate_insn_chain): New static function.
9298         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
9299         cfg_layout_duplicate_bb): Declare.
9300         (struct reorder_block_def): Add "original" field.
9301         * emit-rtl.c (emit_copy_of_insn_after): New function.
9302         * rtl.h (emit_copy_of_insn_after): Declare.
9303
9304         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
9305         (fixup_reorder_chain): properly handle edges to exit block.
9306
9307 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9308                                Jan Hubicka  <jh@suse.cz>
9309
9310         * basic-block.h (note_prediction_to_br_prob): declare.
9311         * c-semantics.c: Inlucde predit.h
9312         (expand_stmt): predict GOTO_STMT as not taken.
9313         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
9314         (cleanup_cfg): Do not free tail_recursion_list.
9315         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
9316         (flow_delete_block): Kill predictions past end of basic block.
9317         * output.h (delete_unreachable_blocks): Declare.
9318         * predict.c (predicted_by_p, process_note_predictions,
9319         process_note_prediction, last_block_p): New function.
9320         (estimate_probability): Bypass loop on PRED_CONTINUE;
9321         do not handle noreturn heuristics; kill PRED_RETURN; add
9322         PRED_EARLY_RETURN.
9323         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
9324         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
9325         * predict.h (IS_TAKEN): New constant.
9326         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
9327         * rtl.c (NOTE_INSN_PREDICTION): New.
9328         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
9329         New macro.
9330         (insn_note): add NOTE_INSN_PREDICTION.
9331         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
9332         CFG; free tail_recursion_label_list.
9333         * stmt.c: Include predict.h;
9334         (return_prediction): New.
9335         (expand_value_return): Use it.
9336         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
9337
9338 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
9339
9340         * config/mips/mips.md: Name the unspecs with define_constant.
9341         (*HILO_delay): Rename to 'hilo_delay' (no star).
9342         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
9343         (reload_outdi, reload_outsi): Likewise.
9344
9345 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
9346
9347         * toplev.c: Fix formatting.
9348
9349 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
9350
9351         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
9352         * configure.in (ac_rtlflag_checking): New.
9353         * doc/install.texi (--enable-checking): Document RTL flag checking.
9354
9355 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9356
9357         * c-common.c (c_common_init): Set options->unsigned_wchar.
9358         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
9359         group target dependencies.
9360         (init_builtins, cpp_handle_option): Update.
9361         * cpplex.c (cpp_interpret_charconst): Update.
9362         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
9363         signed_char to unsigned_char, group target dependencies.
9364         * defaults.h (WCHAR_UNSIGNED): Remove.
9365         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
9366 config:
9367         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
9368         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
9369         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
9370         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
9371         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
9372 doc:
9373         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
9374
9375 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
9376
9377         * fixinc/inclhack.def (windiss_math1): New fix.
9378         (windiss_math2): Likewise.
9379         (windiss_valist): Likewise.
9380         * fixinc/fixincl.x: Regenerated.
9381
9382 2002-05-07  Andreas Jaeger  <aj@suse.de>
9383
9384         * genautomata.c (output_internal_min_issue_delay_func): Add
9385         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
9386         (output_internal_trans_func): Likewise.
9387
9388 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
9389
9390         * pa.c (hppa_profile_hook): Use force_reg to get the address
9391         of the profile hook into an appropriate pseudo register.
9392
9393 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
9394
9395         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
9396         (LINK_START_SPEC): Handle it.
9397         (LINK_OS_SPEC): Likewise.
9398         (CPP_SPEC): Likewise.
9399         (STARTFILE_SPEC): Likewise.
9400         (LIB_SPEC): Likewise.
9401         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
9402         all platforms.
9403         (CRTSAVRES_DEFAULT_SPEC): New macro.
9404         (LIB_WINDISS_SPEC): New macro.
9405         (CPP_OS_WINDISS_SPEC): Likewise.
9406         (STARTFILE_WINDISS_SPEC): Likewise.
9407         (ENDFILE_WINDISS_SPEC): Likewise.
9408         (LINK_START_WINDISS_SPEC): Likewise.
9409         (LINK_OS_WINDISS_SPEC): Likewise.
9410         * config/rs6000/windiss.h: New file.
9411
9412 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
9413
9414         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
9415
9416 2002-05-06  David S. Miller  <davem@redhat.com>
9417
9418         * config/sparc/sparc.md (shift insns): Do not mask off
9419         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
9420         take care of it.
9421
9422 2002-05-06  Richard Henderson  <rth@redhat.com>
9423
9424         PR c++/6212
9425         * expr.c (highest_pow2_factor_for_type): New.
9426         (expand_assignment): Use it.
9427
9428 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
9429
9430         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
9431         unspec_volatile.
9432         ("altivec_mfvscr"): Same.
9433
9434 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
9435
9436         * rtl.h (struct rtx_def): Update comments.
9437         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
9438         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
9439         RTL_FLAG_CHECK macros with list of expected RTL codes.
9440         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
9441         (rtl_check_failed_flag): New.
9442         * reload1.c (reload): Use REG macro before changing rtx to MEM.
9443         (reload_cse_noop_set_p): Check rtx code before using access macro.
9444         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
9445         before using access macro.
9446
9447 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
9448
9449         * doc/rtl.texi (Flags): Update to reflect current usage.
9450
9451 2002-05-06  Roger Sayle  <roger@eyesopen.com>
9452
9453         PR opt/3995
9454         * fold-const.c (sign_bit_p): New function.
9455         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
9456         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
9457         Reapply fold when converting (A & C) == C into (A & C) != 0.
9458         (fold_binary_op_with_conditional_arg): Fix typo in comment.
9459
9460 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9461
9462         * c-common.c (warn_multichar): New.
9463         (c_common_init): Set CPP's warn_multichar.
9464         * c-common.h (warn_multichar): New.
9465         * c-decl.c (warn_multichar): Remove.
9466         * c-lex.c (lex_charconst): Update.
9467         * c-tree.h (warn_multichar): Remove.
9468         * cppexp.c (eval_token): Sign-extend charconst value.
9469         * cppinit.c (cpp_create_reader): Set warn_multichar.
9470         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
9471         each character.  Update prototype.  Sign-extend the result.
9472         * cpplib.h: Fix conditions.
9473         (struct cpp_options): Add new warning flag.
9474         (cpp_interpret_charconst): Update prototype.
9475 doc:
9476         * cpp.texi: Update documentation.
9477
9478 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
9479
9480         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
9481         Fix typo in usage of allof instead of unit.
9482
9483 2002-05-06  Richard Henderson  <rth@redhat.com>
9484
9485         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
9486         and any jump or call for IN.
9487
9488 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
9489
9490         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
9491         -msse2.
9492         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
9493
9494 2002-05-06  Roger Sayle  <roger@eyesopen.com>
9495
9496         * fold-const.c (lshift-double): Cast the high word to an unsigned
9497         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
9498         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
9499         avoid compiler warning.  (fold): Remove redundant code from
9500         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
9501
9502 2002-05-06  Jeff Law  <law@redhat.com>
9503
9504         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
9505         * pa.c (pa_adjust_cost): Remove all true dependency cost
9506         adjustments.  Also remove support for non-DFA scheduling.
9507         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
9508         to adjust true dependency costs.  Update various comments.
9509         (7100lc, 7200, 7300 scheduling): Simplify by combining the
9510         FP ALU & MPY units into a single unit.
9511
9512 2002-05-06  Catherine Moore  <clm@redhat.com>
9513
9514         * config/v850/v850.c (compute_register_save_size): Make sure
9515         to count all of the registers that will be saved.
9516
9517 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
9518
9519         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
9520
9521 2002-05-06  David S. Miller  <davem@redhat.com>
9522
9523         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
9524         allow result to overlap input operands in memory.
9525
9526 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9527
9528 doc:
9529         * cpp.texi: Update multichar charconst docs.
9530
9531 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9532
9533         * cpplex.c (cpp_interpret_charconst): Sign-extend each
9534         character.  Don't ignore excess characters.  Treat
9535         multicharacter character constants as signed.
9536         (cpp_parse_escape): Clarify diagnostic.
9537
9538 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
9539
9540         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
9541         use add instead of shift.
9542         (ashldi3_sp64): Likewise.
9543         (ashlsi3_const1, ashldi3_const1): Remove.
9544         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
9545         * config/sparc/sparc.c (const1_operand): New.
9546
9547 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
9548
9549         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
9550
9551 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
9552
9553         PR target/6561
9554         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
9555
9556 2002-05-05  Richard Henderson  <rth@redhat.com>
9557
9558         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
9559         memory latency adjustments.
9560         (alpha_variable_issue): Remove.
9561         (alpha_use_dfa_pipeline_interface): New.
9562         (alpha_multipass_dfa_lookahead): New.
9563         * config/alpha/alpha.md: Remove define_function_unit scheduling;
9564         include new dfa scheduling.
9565         (attr type): Add none.
9566         (blockage): Use it.
9567         * config/alpha/ev4.md: New.
9568         * config/alpha/ev5.md: New.
9569         * config/alpha/ev6.md: New.
9570
9571 2002-05-05  David S. Miller  <davem@redhat.com>
9572
9573         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
9574
9575 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
9576
9577         * cse.c: Fix formatting.
9578         * emit-rtl.c: Likewise.
9579
9580 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
9581
9582         * genautomata.c (initiate_states): Add additional guard to
9583         initialize `units_array'.
9584
9585 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
9586
9587         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
9588         process_unit_to_form_the_same_automaton_unit_lists,
9589         form_the_same_automaton_unit_lists
9590         check_unit_distributions_to_automata): New prototypes and
9591         functions.
9592         (check_automata): Rename it into `check_automata_insn_issues'.
9593         (unit_decl): New fields `the_same_automaton_unit' and
9594         `the_same_automaton_message_reported_p'.
9595         (unit_decl_t): New typedef.
9596         (the_same_automaton_lists): New gloval variable.
9597         (unit_regexp, unit_set_el, units_array, units_cmp,
9598         output_get_cpu_unit_code_func): Use the typedef.
9599         (evaluate_max_reserv_cycles): Increment
9600         `description->max_insn_reserv_cycles'.
9601         (initiate_states): Don't increment `max_cycles_num'.
9602         (transform_insn_regexps): Move code around transformation of
9603         regexps from `generate'.
9604         (generate): Remove call of `transform_insn_regexps'.
9605         (expand_automata): Call `transform_insn_regexps' and
9606         `check_unit_distributions_to_automata'.  Check errors before
9607         `generate'.
9608
9609         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
9610         automaton `ultrasparc3_1'.
9611
9612 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9613
9614         * c-common.c (c_common_init): Set up CPP arithmetic.
9615         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
9616         something reasonable for the host.
9617         (sanity_checks): Add checks.
9618         (cpp_read_main_file): Call sanity_checks() from here...
9619         (cpp_post_options): ... not here.
9620         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
9621         * cpplib.h (struct cpp_options): New member int_precision.
9622
9623 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9624
9625         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
9626
9627 2002-05-04  David S. Miller  <davem@redhat.com>
9628
9629         * config/sparc/linux.h, config/sparc/linux64.h
9630         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
9631
9632         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
9633         more RTX codes.
9634         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
9635
9636         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
9637         of SETs.
9638
9639 2002-05-05  Tim Josling  <tej@melbpc.org.au>
9640
9641         * treelang; New directory for new sample language treelang.
9642
9643 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9644
9645         * Makefile.in (c-lex.o): Update.
9646         * c-lex.c: Include target.h.
9647         (cb_register_builtins): New.
9648         (init_c_lex): Set builtins callback.
9649         * c-lex.h (cpp_define, cpp_assert): New prototypes.
9650         * cppinit.c (init_builtins): Use callback, including for
9651         GXX_WEAK.
9652         * cpplib.h (struct cpp_callbacks): New member.
9653         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
9654         (TARGET_INITIALIZER): Update.
9655         * target.h (struct gcc_target): New hook.
9656         * tree.c (default_register_cpp_builtins): New.
9657         * tree.h (default_register_cpp_builtins): New.
9658 doc:
9659         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
9660
9661 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9662
9663         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
9664         (cpp_post_options): Move sanity checks to...
9665         (sanity_checks): New.
9666         * cpplex.c (maybe_read_ucs): Fix prototype.
9667         (parse_string, cpp_parse_escape): Cast for %c format specifier.
9668         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
9669         if necessary.
9670
9671 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
9672
9673         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
9674         builtins.  Use V2DI patterns instead of TI for logical operations.
9675         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
9676         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
9677         (ix86_expand_builtins): Change the pattern used for movntdq.
9678         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
9679         sse2_nandv2di3): New patterns.
9680         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
9681         on operands.
9682         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
9683         (cvtdq2pd): Correct mode on operand 1.
9684         (sse2_umulsidi3): Describe without unspec.
9685         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
9686         machine modes.
9687         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
9688         (ashlv2di3): Likewise, from sse2_ashlv2di3.
9689         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
9690         ashlv4si3, ashlv2di3): Use SImode for shift count.
9691         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
9692         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
9693         New patterns.
9694         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
9695         New typedefs.
9696         (__m128i, __m128d): New macros.
9697         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
9698         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
9699         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
9700         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
9701         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
9702         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
9703         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
9704         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
9705         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
9706         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
9707         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
9708         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
9709         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
9710         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
9711         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
9712         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
9713         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
9714         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
9715         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
9716         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
9717         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
9718         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
9719         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
9720         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
9721         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
9722         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
9723         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
9724         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
9725         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
9726         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
9727         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
9728         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
9729         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
9730         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
9731         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
9732         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
9733         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
9734         functions.
9735         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
9736         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
9737
9738 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
9739
9740         * dwarf2out.c: Fix formatting.
9741         * varasm.c: Likewise.
9742
9743 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
9744
9745         PR c/6543
9746         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
9747         clobber and use result as temporary value.
9748
9749 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
9750
9751         * expr.c (force_operand): Use expand_simple_* to handle more
9752         cases.
9753
9754 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9755
9756         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
9757         and sign-extension.
9758         (lex_charconst): Update for change in prototype of
9759         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
9760         appropriately.
9761         * cpphash.h (BITS_PER_CPPCHAR_T): New.
9762         * cppinit.c (cpp_create_reader): Initialize them for no
9763         change in semantics.
9764         (cpp_post_options): Add sanity checks.
9765         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
9766         and truncation issues.  Calculate in type cppchar_t.
9767         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
9768         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
9769         run-time dependent precision correctly.  Return whether the
9770         result is signed or not.
9771         * cpplib.c (dequote_string): Use cppchar_t; update.
9772         * cpplib.h (cppchar_signed_t): New.
9773         struct cpp_options): New precision members.
9774         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
9775         * cppexp.c (eval_token): Update.
9776
9777 2002-05-03  David S. Miller  <davem@redhat.com>
9778
9779         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
9780         * config/sparc/sparc.c (sparc_rtx_costs): New function
9781         implementing RTX_COSTS and CONST_COSTS.
9782         * config/sparc/sparc.h (CONST_COSTS): Delete.
9783         (RTX_COSTS_CASES): Define.
9784         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
9785         the work.
9786
9787         * config/sparc/sparc.md (DFA schedulers): Split out...
9788         * config/sparc/cypress.md, config/sparc/hypersparc.md,
9789         config/sparc/sparclet.md, config/sparc/supersparc.md,
9790         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
9791
9792         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
9793         checks on it, always defined for Sparc.
9794
9795         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
9796         Tweak, and add more detailed comments.
9797
9798 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
9799
9800         * Re-apply patch accidentally reverted with
9801         DFA scheduler merge: remove all rules and variables to slurp
9802         source files out of libiberty and rebuild them with HOST_CC.
9803         ($(HOST_PREFIX_1)varray.o): New rule.
9804         (genattrtab rule): Word wrap.
9805
9806 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9807
9808         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
9809         (CPP_SUBTARGET_SPEC): Define.
9810         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
9811         cpp_subtarget specs.
9812         (CPP_SPEC): Redefine to include %(cpp_subtarget).
9813
9814 2002-05-03  David S. Miller  <davem@redhat.com>
9815
9816         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
9817         * target.h (struct gcc_target): Delete cycle_display member.
9818
9819         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
9820         (rtx_needs_barrier): Delete reference to cycle_display unspec.
9821         (ia64_sched_reorder2): Mention need for cycle display handling
9822         once such notes exist.
9823
9824 2002-05-03  Richard Henderson  <rth@redhat.com>
9825
9826         * real.c (etoasc): Strip most trailing zeros for clarity.
9827         * sched-vis.c: Include real.h.
9828         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
9829         * Makefile.in (sched-vis.o): Add real.h.
9830
9831 2002-05-03  David S. Miller  <davem@redhat.com>
9832
9833         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
9834         no longer needed.
9835
9836 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
9837
9838         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
9839         when we get an out of range literal.
9840         (altivec_expand_ternop_builtin): Same.
9841         (altivec_expand_unop_builtin): Same.
9842         (altivec_expand_builtin): Same, for dss.
9843         (altivec_expand_builtin): Use trees instead of rtl when
9844         determining literal argument validity.
9845
9846 2002-05-03  David S. Miller  <davem@redhat.com>
9847
9848         Delete cycle display scheduling hook.
9849         * config/ia64/ia64.c (ia64_cycle_display,
9850         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
9851         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
9852         and use emit_insn_before instead of ia64_emit_insn_before.
9853         * config/ia64/ia64.md (unspec usage): Delete cycle display.
9854         (cycle_display): Delete insn pattern.
9855         * config/sparc/sparc.md (unspec usage): Delete cycle display.
9856         (cycle_display): Delete insn pattern.
9857         * config/sparc/sparc.c (sparc_cycle_display,
9858         TARGET_SCHED_CYCLE_DISPLAY): Delete.
9859         * doc/md.texi (cycle_display): Don't mention.
9860         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
9861
9862 2002-05-03  Richard Henderson  <rth@redhat.com>
9863
9864         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
9865         * recog.h: Declare them.
9866
9867         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
9868         * config/sparc/sparc.md: Use store_data_bypass_p instead.
9869         * config/sparc/sparc-protos.h: Update.
9870
9871 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9872
9873         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
9874         -D__arch64__.  Add -D_LP64.
9875         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
9876         from sparc.h.
9877         (CPP_ARCH64_SPEC): Likewise.
9878         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
9879         (NO_BUILTIN_SIZE_TYPE): Undef.
9880
9881 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
9882
9883         * genautomata.c (min_issue_delay_pass_states): Change return type
9884         in the prototype.
9885         (min_issue_delay_pass_states): Change the algorithm.
9886         (min_issue_delay): Set up min_insn_issue_delay for the state.
9887         (output_min_issue_delay_table): Interchange the nested loops and
9888         and initiate min_insn_issue_delay for states.
9889
9890 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
9891
9892         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
9893         jump is simplejump.
9894
9895 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
9896
9897         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
9898         sequence.
9899
9900 2002-05-03  Richard Henderson  <rth@redhat.com>
9901
9902         PR opt/6534
9903         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
9904         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
9905         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
9906         code before JUMP, not EARLIEST.
9907
9908 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9909
9910         * c-format.c (check_format_info_main): Don't check for presence of
9911         parameter for * width until after operand number has been read,
9912         and only check for it if format parameters are available.
9913         Fixes PR c/6547.
9914
9915 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9916
9917         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
9918         (LINK_SPEC): Undef before defining.
9919
9920 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
9921
9922         PR preprocessor/6489
9923         * tradcpp.c (fixup_newlines): New.
9924         (main, finclude): Use it.
9925
9926 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
9927
9928         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
9929         * config/mips/mips.c (mips_unique_section): Strip encoding from
9930         decl name.
9931
9932 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
9933
9934         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
9935         mode.
9936
9937 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9938
9939         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
9940         (Specific): Removed buildstats references.
9941         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
9942         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
9943         Accomodate Solaris versions beyond 8.
9944         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
9945         (Specific, *-*-solaris2.8): Removed, obsolete.
9946
9947 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
9948
9949         PR target/6542
9950         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
9951         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
9952         fill leaf_reg_remap with identity.
9953         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
9954
9955 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
9956
9957         * config/h8300/crti.asm: Remove trailing spaces.
9958         * config/h8300/h8300.c: Likewise.
9959         * config/h8300/lib1funcs.asm: Likewise.
9960
9961 2002-05-02  Jason Merrill  <jason@redhat.com>
9962
9963         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
9964         * c-decl.c (c_init_decl_processing): Use it.
9965         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
9966         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
9967         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
9968
9969 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
9970
9971         * regrename.c: Fix formatting.
9972         * tree.c: Likewise.
9973
9974 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
9975
9976         * i386.md (attribute memory): Handle compares properly.
9977
9978 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
9979
9980         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
9981         to none.
9982
9983 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
9984
9985         * function.c: Fix formatting.
9986
9987 2002-05-02  Jan Hubicka  <jh@suse.cz>
9988
9989         * haifa-sched.c (schedule_insn): Print table of instructions and
9990         reservations.
9991         (sched_block): Do not print ready list at verbosity level 1.
9992         * sched-vis.c (print_insn): Make global.
9993         * sched-ebb.c (ebb_print_insn): Rename from...
9994         (print_insn): ... this one.
9995         * sched-int.h (print_insn): Declare
9996
9997 2002-05-02  Richard Henderson  <rth@redhat.com>
9998
9999         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
10000         emitted by cycle_display.
10001
10002 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
10003
10004         * doc/install.texi (*-*-freebsd*): Update to latest status.
10005
10006 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
10007
10008         PR target/6540
10009         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
10010         * config/float-sparc.h: Assume 128-bit long double if
10011         __LONG_DOUBLE_128__ is defined.
10012
10013 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
10014
10015         * genattrtab.c (write_function_unit_info): Add a dummy element
10016         when num_units == 0.
10017
10018 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10019
10020         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
10021         TYPE_MODE (double_type_node) instead of DFmode.
10022
10023 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
10024
10025         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
10026         jumps post reload.
10027         * toplev.c (rest_of_compilation): Revert Richard's patch.
10028
10029 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10030
10031         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
10032
10033 2002-05-02  Catherine Moore  <clm@redhat.com>
10034
10035         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
10036
10037 2002-05-02  Kazu Hirata  <kazu@hxi.com>
10038
10039         * combine.c: Fix comment typos.
10040         * expr.c: Likewise.
10041         * genautomata.c: Likewise.
10042         * stmt.c: Likewise.
10043         * tree.h: Likewise.
10044
10045 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10046
10047         * doc/install.texi: State GNAT version requirements.
10048
10049 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
10050
10051         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
10052         of the frame pointer or arg pointer register which strict register
10053         checking is not enabled.
10054
10055 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
10056
10057         * gcc.dg/altivec-8.c: New.
10058
10059         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
10060         PRE_INC and PRE_DEC for altivec modes.
10061
10062 2002-05-01  Bruce Korb  <bkorb@gnu.org>
10063
10064         * fixinc/check.tpl(set-writable): make sure the function exists first
10065         * fixinc/inclhack.def(alpha_assert): fix test_text
10066         * fixinc/tests/base/assert.h: add in missing result
10067
10068 2002-05-01  Jeff Law  <law@redhat.com>
10069
10070         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
10071         'T' constraint.
10072
10073 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
10074
10075         * dbxout.c (dbxout_type): Emit size information for range types,
10076         as well, but only when using GDB extensions.
10077
10078 2002-05-01  Richard Henderson  <rth@redhat.com>
10079
10080         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
10081         target-independent gnu binutils date test.
10082
10083 2002-05-01  Richard Henderson  <rth@redhat.com>
10084
10085         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
10086         info before expunging the block.
10087
10088 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
10089
10090         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
10091         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
10092         -M -or -MM is in effect.
10093
10094 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
10095
10096         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
10097         A29k configurations.
10098         * doc/install.texi: Update to match.
10099
10100 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10101
10102         PR bootstrap/6514
10103         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
10104         for duplicates. Always loop over whole list.
10105
10106 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10107
10108         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
10109
10110 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10111
10112         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
10113         support routines.
10114
10115 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10116
10117         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
10118
10119 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
10120
10121         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
10122         (nabs_nopower): Same.
10123         (floatdisf2): New pattern.
10124         (absdi2): Convert to define_insn_and_split.
10125         (nabsdi2): Same.
10126         (trunctfsf2): Same.
10127         (floatditf2): Same.
10128         (floatsitf2): Same.
10129         (fix_trunctfdi2): Same.
10130         (fix_trunctfsi2): Same.
10131
10132 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10133
10134         * doc/install.texi: Update Texinfo version requirement
10135         documentation.
10136
10137 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
10138
10139         PR target/6512, PR target/5628
10140         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
10141         when memory is not aligned.
10142         (movdf_insn_v9only_vis): Likewise.
10143         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
10144         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
10145         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
10146
10147 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
10148
10149         * gcc.dg/altivec-7.c: New.
10150
10151         * config/rs6000/altivec.h: Cleanup.
10152
10153 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
10154
10155         * doc/invoke.texi (Option Summary): Add -mvrsave=.
10156         (RS/6000 and PowerPC Options): Document -mvrsave=.
10157
10158         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
10159         (rs6000_altivec_vrsave_string): Same.
10160         (rs6000_override_options): Call rs6000_parse_vrsave_option.
10161         (rs6000_parse_vrsave_option): New.
10162         (rs6000_stack_info): Only generate vrsave instructions when
10163         TARGET_ALTIVEC_VRSAVE.
10164
10165         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
10166         (rs6000_altivec_vrsave_string): Define extern.
10167         (rs6000_altivec_vrsave): Same.
10168         (TARGET_ALTIVEC_VRSAVE): New.
10169
10170 2002-04-30  Richard Henderson  <rth@redhat.com>
10171
10172         PR opt/6516
10173         * toplev.c (rest_of_compilation): Don't run cross-jump before
10174         bb-reorder.
10175
10176 2002-04-30  Tom Rix  <trix@redhat.com>
10177
10178         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
10179         check which_alternative.
10180
10181 2002-04-30  Kazu Hirata  <kazu@hxi.com>
10182
10183         * cpplex.c: Fix comment formatting.
10184         * function.c: Likewise.
10185         * integrate.c: Likewise.
10186         * regrename.c: Likewise.
10187         * sibcall.c: Likewise.
10188         * simplify-rtx.c: Likewise.
10189         * tree-inline.c: Likewise.
10190
10191 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10192
10193         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
10194         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
10195         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
10196         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
10197         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
10198         * pa/x-ada: New file.  Define ADA_CFLAGS.
10199
10200 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
10201
10202         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
10203         from MMIX_LAST_REGISTER_FILE_REGNUM.
10204         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
10205         (struct machine_function): New member highest_saved_stack_register
10206         previously static variable in mmix.c.
10207         (MACHINE_DEPENDENT_REORG): Define.
10208         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
10209         (MMIX_OUTPUT_REGNO): New.
10210         (mmix_target_asm_function_prologue): Move calculation of last used
10211         saved-stack-register into...
10212         (mmix_machine_dependent_reorg): New function.  Update to also handle
10213         !TARGET_ABI_GNU.
10214         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
10215         register names, simplify somewhat by new variable regno.
10216         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
10217         register.
10218         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
10219         emitting register names.
10220         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
10221         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
10222         Remove fixed FIXME.
10223         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
10224         Declare.
10225
10226         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
10227
10228 2002-04-30  Richard Henderson  <rth@redhat.com>
10229
10230         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
10231         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
10232         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
10233         emit_tfmode_cvt): New.
10234         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
10235         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
10236         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
10237         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
10238         * config/sparc/sparc-protos.h: Update.
10239
10240 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
10241
10242         * install.texi (Final install): Add to the list of info to include
10243         in a report of a successful bootstrap, and add link to 3.1 list.
10244
10245 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
10246
10247         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
10248         (mode): Add vector modes
10249         (i387): Kill attribute.
10250         (unit): New attribute.
10251         (length_immediate): Grok new types.
10252         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
10253         (modrm): Use "unit".
10254         (memory): Handle MMX/SSE properly.
10255         (scheduling descriptions): Kill uses of fop1.
10256         (sse, mmx, fp patterns): Set type and mode properly.
10257
10258 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
10259
10260         * pa.c (override_options): Default to PA8000 scheduling.
10261         * doc/invoke.texi (HP-PA options): Mention newly added 7300
10262         scheduling parameter.
10263
10264         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
10265         handling of double precision multiplies.
10266
10267         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
10268         fpdiv and fpsqrt instructions.
10269         (7200 & 7300 scheduling): Fix typo in handling of
10270         store-load and store-store penalties.
10271
10272 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10273
10274         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
10275         mips.  Add two missing commas.
10276
10277 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
10278
10279         * doc/contrib.texi (Contributors): Update Paolo Carlini's
10280         and Benjamin Kosnik's entries.
10281
10282 2002-04-29  David S. Miller  <davem@redhat.com>
10283
10284         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
10285         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
10286         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
10287         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10288
10289 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10290
10291         * combine.c (find_split_point): Use gen_int_mode.
10292
10293 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
10294
10295         Merging code from dfa-branch:
10296
10297         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
10298
10299         * genautomata.c (output_reserv_sets): Fix typo.
10300
10301         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
10302
10303         * genautomata.c (output_reserv_sets): Remove
10304         next_cycle_output_flag.
10305
10306         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
10307
10308         * sched-rgn.c (init_ready_list): Make the DFA code handle
10309         USE/CLOBBER insns in the same way as the traditional
10310         scheduler.
10311         (new_ready): Similarly..
10312
10313         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
10314
10315         * haifa-sched.c (schedule_block): Change the DFA state only after
10316         issuing insn.
10317
10318         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
10319
10320         * pa.c (hppa_use_dfa_pipeline_interface): New function.
10321         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
10322         (override_options): Add PA7300 scheduling support.
10323         (pa_adjust_cost): Update various comments.  Properly
10324         handle anti and output dependencies when using the
10325         DFA scheduler.
10326         (pa_issue_rate): Add PA7300 scheduling support.
10327         (pa_can_combine_p): Call extract_insn before calling
10328         constrain_operands (taken from mainline tree).
10329         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
10330         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
10331         descriptions using DFA descriptions.  Add PA7300
10332         scheduling support.
10333
10334         2002-03-30  David S. Miller  <davem@redhat.com>
10335
10336         Add UltraSPARC-III DFA scheduling support.
10337         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
10338         Update FP conditional move on register insn patterns to use it, as
10339         appropriate.
10340         (define_attr cpu): Add ultrasparc3.
10341         (define_attr us3load_type): New, update integer load patterns to
10342         set it, as appropriate.
10343         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
10344         (rest): Add UltraSPARC3 scheduling description.
10345         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
10346         (PROCESSOR_ULTRASPARC3): New.
10347         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
10348         ({ASM,CPP}_CPU_SPEC): Likewise.
10349         (REGISTER_MOVE_COST): Likewise.
10350         (RTX_COSTS): Likewise.
10351         * config/sparc/sparc.c (sparc_override_options,
10352         sparc_initialize_trampoline, sparc64_initialize_trampoline,
10353         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
10354         sparc_issue_rate): Likewise.
10355         * config/sparc/sol2.h: Likewise.
10356         * config/sparc/sol2-sld-64.h: Likewise.
10357         * config/sparc/linux64.h: Likewise.
10358
10359         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
10360
10361         * doc/md.texi: Add comments about usage the latency time for the
10362         different dependencies and about case when two or more conditions
10363         in different define_insn_reservations returns TRUE for an insn.
10364
10365         * doc/md.texi: Add reference for automaton based pipeline
10366         description.
10367
10368         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
10369
10370         * doc/passes.texi: Add missed information about genattrtab.
10371
10372         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
10373
10374         * genautomata.c (output_automata_list_transition_code): Check
10375         automata_list on NULL.
10376
10377         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
10378
10379         * genautomata.c (output_insn_code_cases,
10380         output_automata_list_min_issue_delay_code,
10381         output_automata_list_transition_code,
10382         output_automata_list_state_alts_code): Comment the functions.
10383
10384         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
10385
10386         * genautomata.c (automata_list_el_t): New typedef.
10387         (get_free_automata_list_el,free_automata_list_el,
10388         free_automata_list, automata_list_hash, automata_list_eq_p,
10389         initiate_automata_lists, automata_list_start, automata_list_add,
10390         automata_list_finish, finish_automata_lists,
10391         output_insn_code_cases, output_automata_list_min_issue_delay_code,
10392         output_automata_list_transition_code,
10393         output_automata_list_state_alts_code, add_automaton_state,
10394         form_important_insn_automata_lists): New functions and prototypes.
10395         (insn_reserv_decl): Add members important_automata_list and
10396         processed_p.
10397         (ainsn): Add members important_p.
10398         (automata_list_el): New structure.
10399         (first_free_automata_list_el, current_automata_list,
10400         automata_list_table): New global variables.
10401         (create_ainsns): Initiate member important_p.
10402         (output_internal_min_issue_delay_func): Generate the switch and
10403         call output_insn_code_cases.
10404         (output_internal_trans_func, output_internal_state_alts_func):
10405         Ditto.
10406         (generate): Call initiate_automata_lists.
10407         (automaton_states): New global variable.
10408         (expand_automata): Call form_important_insn_automata_lists.
10409         (write_automata): Call finish_automata_lists.
10410
10411         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
10412
10413         * genautomata.c (add_excls, add_presence_absence): Check that
10414         cpu units in the sets belong the same automaton.
10415
10416         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
10417         about that cpu units in the sets belong the same automaton.
10418
10419         * doc/md.texi: Ditto.
10420
10421         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
10422                     Nitin Gupta  <niting@noida.hcltech.com>
10423
10424         * config/sh/sh.c (sh_use_dfa_interface): New function.
10425
10426         (sh_issue_rate): New Function.
10427         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
10428         TARGET_SCHED_ISSUE_RATE: define.
10429
10430         * config/sh/sh.md: Add DFA based pipeline description for SH4.
10431
10432         (define_attr insn_class): New attribute used for DFA
10433          scheduling.
10434         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
10435         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
10436          cmpeqdi_t): Likewise.
10437
10438         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
10439          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
10440          ex_group.
10441         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
10442
10443         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
10444
10445         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
10446         break.
10447
10448         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
10449
10450         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
10451         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
10452         necessary.
10453         (output_dfa_start_func): Initiate new variable insn_codes_length,
10454         (write_automata): Output definition of the new variable.
10455
10456         2001-10-02  David S. Miller  <davem@redhat.com>
10457
10458         * haifa-sched.c (advance_one_cycle): New function.
10459         (schedule_block): Use it.
10460         (queue_to_ready): Use it, and also make sure to advance the DFA
10461         state on all stall cycles, not just those where insn_queue links
10462         are found.
10463
10464         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
10465
10466         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
10467         non-zero if the highest-priority instruction could be scheduled.
10468         (choose_ready): Remove last argument from max_issue call.
10469
10470         2001-09-28  David S. Miller  <davem@redhat.com>
10471
10472         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
10473         ultrasparc and 3 for other multi-issue sparcs.
10474
10475         2001-09-27  David S. Miller  <davem@redhat.com>
10476
10477         * config/sparc/sparc.md (cycle_display): New pattern.
10478         * config/sparc/sparc.c (sparc_cycle_display): New.
10479         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
10480
10481         2001-09-25  David S. Miller  <davem@redhat.com>
10482
10483         Convert all of Sparc scheduling to DFA
10484         * config/sparc/sparc.md: Kill all define_function_unit
10485         directives and replace with DFA equivalent.
10486         * config/sparc/sparc.c (ultrasparc_adjust_cost,
10487         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
10488         ultra_fpmode_conflict_exists, ultra_find_type,
10489         ultra_build_types_avail, ultra_flush_pipeline,
10490         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
10491         ultrasparc_variable_issue, ultrasparc_sched_init,
10492         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
10493         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
10494         ultra_cur_hist, ultra_cycles_elapsed): Kill.
10495         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
10496         ultrasparc_store_bypass_p): New.
10497         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
10498         Declare.
10499
10500         2001-09-24  David S. Miller  <davem@redhat.com>
10501
10502         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
10503         ready->vec[foo] not ready[foo].
10504
10505         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
10506
10507         * doc/md.texi: Correct examples for define_insn_reservations
10508         `mult' and `div'.
10509
10510         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
10511
10512         * genautomata.c (create_automata): Print message about creation of
10513         each automaton.
10514         (generate): Remove printing meease about creation of
10515         automata.
10516
10517         2001-09-05  David S. Miller  <davem@redhat.com>
10518
10519         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
10520         * config/sparc/linux64.h: Likewise.
10521
10522         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
10523
10524         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
10525         schedule_block, sched_init, sched_finish): Add missed calls of
10526         use_dfa_pipeline_interface.
10527
10528         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
10529         Ditto.
10530
10531         * sched-vis.c (get_visual_tbl_length): Ditto.
10532
10533         2001-08-27  Richard Henderson  <rth@redhat.com>
10534
10535         * genattr.c (main): Emit state_t even when not doing scheduling.
10536
10537         2001-08-27  Richard Henderson  <rth@redhat.com>
10538
10539         * genautomata.c (expand_automata): Always create a description.
10540
10541         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
10542
10543         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
10544         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
10545         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
10546         RTL constructions.
10547
10548         * genattr.c (main): New variable num_insn_reservations.  Increase
10549         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
10550         pipeline hazard recognizer interface.
10551
10552         * genattrtab.h: New file.
10553
10554         * genattrtab.c: Include genattrtab.h.
10555         (attr_printf, check_attr_test, make_internal_attr,
10556         make_numeric_value): Move protypes into genattrtab.h.  Define them
10557         as external.
10558         (num_dfa_decls): New global variable.
10559         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
10560         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
10561         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
10562         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
10563
10564         * genautomata.c: New file.
10565
10566         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
10567
10568         * sched-int.h: (curr_state): Add the external definition for
10569         automaton pipeline interface.
10570         (haifa_insn_data): Add comments for members blockage and units.
10571
10572         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
10573         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
10574         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
10575         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
10576         TARGET_SCHED_DFA_POST_CYCLE_INSN,
10577         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
10578         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
10579         macros.
10580         (TARGET_SCHED): Use the new macros.
10581
10582         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
10583         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
10584         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
10585         dfa_bubble): New members in gcc_target.sched.
10586
10587         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
10588         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
10589         (insn_queue): Redefine it as pointer to array.
10590         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
10591         INSN_QUEUE_SIZE.
10592         (max_insn_queue_index_macro_value): New variable.
10593         (curr_state, dfa_state_size, ready_try): New varaibles for
10594         automaton interface.
10595         (ready_element, ready_remove, max_issue): New function prototypes
10596         for automaton interface.
10597         (choose_ready): New function prototype.
10598         (insn_unit, blockage_range): Add comments.
10599         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
10600         FUNCTION_UNITS_SIZE == 0.
10601         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
10602         actual_hazard, potential_hazard): Add comments.
10603         (insn_cost): Use cost -1 as undefined value.  Remove
10604         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
10605         pipeline interface.
10606         (ready_element, ready_remove): New functions for automaton
10607         interface.
10608         (schedule_insn): Add new code for automaton pipeline interface.
10609         (queue_to_ready): Add new code for automaton pipeline interface.
10610         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
10611         (debug_ready_list): Print newline when the queue is empty.
10612         (max_issue): New function for automaton pipeline interface.
10613         (choose_ready): New function.
10614         (schedule_block): Add new code for automaton pipeline interface.
10615         Print ready list before scheduling each insn.
10616         (sched_init): Add new code for automaton pipeline interface.
10617         Initiate insn cost by -1.
10618         (sched_finish): Free the current automaton state and finalize
10619         automaton pipeline interface.
10620
10621         * sched-rgn.c: Include target.h.
10622         (init_ready_list, new_ready, debug_dependencies): Add new code for
10623         automaton pipeline interface.
10624
10625         * sched-vis.c: Include target.h.
10626         (get_visual_tbl_length): Add code for automaton interface.
10627         (target_units, print_block_visualization):  Add comments.
10628
10629         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
10630         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
10631         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
10632         (getruntime.o, genautomata.o): New entries.
10633         (genattrtab.o): Add new dependency file genattrtab.h.
10634         (genattrtab): Add new dependencies.  Link it with `libm.a'.
10635         (getruntime.o, hashtab.o): New entries for canadian cross.
10636
10637         * doc/md.texi: Description of automaton based model.
10638
10639         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
10640         Add comments.
10641         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
10642         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
10643         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
10644         TARGET_SCHED_DFA_POST_CYCLE_INSN,
10645         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
10646         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
10647         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
10648         hook descriptions.
10649         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
10650         MAX_DFA_ISSUE_RATE): New macro descriptions.
10651
10652         * doc/contrib.texi: Add dfa based scheduler contribution.
10653
10654         * doc/gcc.texi: Add more information about genattrtab.
10655
10656 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10657
10658         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
10659         adjust_address_nv call.
10660
10661 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
10662
10663         * doc/install.texi (Testing): Provide additional information, and
10664         a stronger encouragement, for running the testsuites.
10665
10666 2002-04-29  DJ Delorie  <dj@redhat.com>
10667
10668         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
10669         given in upper case.
10670
10671 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10672
10673         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
10674         Solaris 2 <widec.h> if missing.
10675         * fixinc/fixincl.x: Regenerate.
10676         * fixinc/tests/base/widec.h: New file.
10677
10678 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
10679
10680         * toplev.c (f_options): Add "profile" switch so that
10681         -fno-profile can be used to disable -p.
10682
10683 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
10684
10685         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
10686         UV2DImode.
10687         * tree.c (build_common_tree_nodes_2): Likewise.
10688         * tree.h (enum tree_index): Likewise.
10689         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
10690
10691         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
10692         entries.
10693         (init_mmx_sse_builtins): Initialize SSE2 builtins.
10694         (ix86_expand_builtin): Add support for SSE2 builtins.
10695         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
10696         (VALID_SSE_REG_MODE): Use it.
10697         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
10698         (enum ix86_builtins): Add SSE2 builtins.
10699         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
10700         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
10701         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
10702         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
10703         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
10704         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
10705         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
10706         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
10707         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
10708         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
10709         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
10710         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
10711         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
10712         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
10713         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
10714         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
10715         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
10716         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
10717         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
10718         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
10719         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
10720         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
10721         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
10722         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
10723         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
10724         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
10725         lfence_insn): New patterns.
10726         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
10727         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
10728
10729 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
10730
10731         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
10732
10733 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10734
10735         * doc/contrib.texi (Contributors): Add Paolo Carlini and
10736         Janis Johnson.
10737         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
10738         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
10739         and CPU instead of cpu.
10740
10741 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
10742
10743         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
10744         variables.
10745         (lang_independent_options): Add -fif-conversion, -fif-conversion2
10746         (rest_of_compilation): Do if conversion only when asked for.
10747         (parse_options_and_default_flags): Set new variables to 1 for -O1
10748         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
10749
10750 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
10751
10752         * i386.c (dbx64_register_map): Fix typo.
10753
10754 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
10755
10756         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
10757         real_one_half, real_bb_freq_max): New static variables.
10758         (debug_profile_bbauxs): Kill.
10759         (process_note_predictions): Kill unused variable.
10760         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
10761         volatile double.
10762         (propagate_freq): Use REAL_ARITHMETICS.
10763         (estimate_bb_frequencies): Likevise; init new static variables.
10764         * Makefile.in (predict.o): Add dependency on real.h
10765
10766 2002-04-28  David S. Miller  <davem@redhat.com>
10767
10768         PR target/6500
10769         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
10770         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
10771         several {reads,writes} instead.
10772         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
10773         Define.
10774
10775 2002-04-27  David S. Miller  <davem@redhat.com>
10776
10777         PR target/6494
10778         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
10779         of the stack bias.
10780
10781         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
10782         including signal.h and sys/ucontext.h, not needed.
10783
10784 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
10785
10786         * varasm.c (output_constant_def): Correct test for not calling
10787         ENCODE_SECTION_INFO for INTEGER_CST.
10788
10789 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10790
10791         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
10792         keep most cases as function eval_token.
10793         (eval_token): New function.
10794         (_cpp_parse_expr): Read token here for improved diagnostics.
10795         Don't use op_as_text.  Detect bad ':' here.
10796         (reduce): Don't detect bad ':' here.
10797         (op_as_text): Remove.
10798         * cpphash.h (_cpp_test_assertion): Change prototype.
10799         * cpplib.c (_cpp_test_assertion): Change prototype.
10800
10801 2002-04-28  Richard Henderson  <rth@redhat.com>
10802
10803         PR c/5154
10804         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
10805         (ggc_mark_rtx_children): New.
10806
10807 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10808
10809         PR target/6496
10810         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
10811         after call peepholes for UltraSPARC.
10812         (call + jump 64-bit peepholes): Remove.
10813
10814 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10815
10816         PR c/6497
10817         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
10818         result as temporary value.
10819
10820 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR c++/6396
10823         * toplev.c (rest_of_compilation): Only run regrename and copy
10824         propagation if optimizing.
10825
10826 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10827
10828         PR optimization/6475
10829         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
10830         register of REGNO_DECL (i).
10831         * Makefile.in (reload1.o): Add $(TREE_H).
10832
10833 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10834
10835         * cppexp.c (lex): Update to use state.skip_eval.
10836         (struct op): Remove prio and flags members.
10837         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
10838         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
10839         (LEFT_ASSOC): New macro.
10840         (optab): New table of operator priorities and flags.
10841         (SHIFT): Update.
10842         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
10843         malloc-ed parser stack.
10844         (reduce): New; reduce the operator stack.
10845         (_cpp_expand_op_stack): Expand the operator stack as necessary.
10846         * cpphash.h (struct op): Predeclare.
10847         (struct cpp_reader): New members op_stack, op_limit.
10848         (struct lexer_state): New member skip_eval.
10849         (_cpp_parse_expr): Update.
10850         (_cpp_expand_op_stack): New.
10851         * cpplib.c (do_if): Update.
10852         * cppinit.c (cpp_create_reader): Create op stack.
10853         (cpp_destroy): And destroy it.
10854         * cpplib.h (CPP_LAST_CPP_OP): Correct.
10855         (TTYPE_TABLE): Correct.
10856
10857 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10858
10859         PR c/6343
10860         * c-decl.c (duplicate_decls): Call merge_weak.
10861         * c-pragma.c (apply_pragma_weak): Warn about misuse.
10862         * output.h (merge_weak): Prototype merge_weak.
10863         * varasm.c (merge_weak): New function.
10864         (declare_weak): Make sure we don't give an error on VAR_DECLs.
10865         Mark RTL with SYMBOL_REF_WEAK.
10866
10867 2002-04-27  Kurt Garloff <garloff@suse.de>
10868
10869         * tree-inline.c (inlinable_function_p): Improve heuristics
10870         by using a smoother function to cut down allowable inlinable size.
10871         * param.def: Add parameters max-inline-insns-single,
10872         max-inline-slope, min-inline-insns that determine the exact
10873         shape of the above function.
10874         * param.h: Likewise.
10875
10876 2002-04-26  Richard Henderson  <rth@redhat.com>
10877
10878         * c-parse.in (malloced_yyss, malloced_yyvs): New.
10879         (yyoverflow): Re-add.  Set them.
10880         (free_parser_stacks): New.
10881         * c-common.h: Declare it.
10882         * c-lex.c (c_common_parse_file): Call it.
10883
10884 2002-04-26  Richard Henderson  <rth@redhat.com>
10885
10886         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
10887         for fallthru search.
10888
10889 2002-04-26  Eric Christopher  <echristo@redhat.com>
10890
10891         PR optimization/3700
10892         * config/mips/mips.c (mips_issue_rate): Define.  New function.
10893         (TARGET_SCHED_ISSUE_RATE): Use.
10894
10895 2002-04-25  David S. Miller  <davem@redhat.com>
10896
10897         PR target/6422
10898         * reorg.c (optimize_skip): Do not allow exception causing
10899         instructions to be considered for delay slots.
10900         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
10901         (relax_delay_slots): Do not try to consider exception causing
10902         instructions as redundant.
10903
10904 2002-04-26  Richard Henderson  <rth@redhat.com>
10905
10906         PR c/5225
10907         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
10908
10909 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
10910
10911         PR bootstrap/6445
10912         * config/i386/i386.md (untyped_call): Return the value in a float
10913         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
10914         TARGET_80387.
10915
10916 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
10917
10918         * tree.c (tree_int_cst_lt): Compare constants whose types differ
10919         in unsigned-ness correctly.
10920
10921 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10922
10923         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
10924         portable runtime model.
10925
10926 2002-04-26  Richard Henderson  <rth@redhat.com>
10927
10928         * c-parse.in (yyoverflow): Revert.
10929
10930 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
10931             Richard Henderson  <rth@redhat.com>
10932
10933         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
10934         result as temporary value.
10935
10936 2002-04-26  Richard Henderson  <rth@redhat.com>
10937
10938         PR c/3581
10939         * c-common.c (fix_string_type): Split out of ...
10940         (combine_strings): ... here.  Take a varray, not a tree list.
10941         (c_expand_builtin_printf): Use fix_string_type.
10942         * c-common.h: Update decls.
10943         * c-parse.in (string): Remove.  Update all uses to use STRING
10944         instead, and not call combine_strings.
10945         (yylexstring): New.
10946         (_yylex): Use it.
10947         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
10948         (build_asm_stmt): Likewise.
10949         * objc/objc-act.c (my_build_string): Use fix_string_type.
10950         (build_objc_string_object): Build varray for combine_strings.
10951
10952 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
10953
10954         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
10955         x86-64.
10956
10957 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10958
10959         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
10960         (HAVE_NO_R_OPERAND): Remove.
10961         (HAVE_VALUE): Remove.
10962         (op_to_prio): Update.
10963         (UNARY): Don't alter flags.
10964         (_cpp_parse_expr): want_value used to indicate whether
10965         a number or unary operator is expected next.  Distinguish
10966         unary and binary +/-.
10967         (op_as_text): Update for unary operators.
10968
10969 2002-04-25  Richard Henderson  <rth@redhat.com>
10970
10971         PR c/2161
10972         * c-parse.in (yyoverflow): New.
10973
10974 2002-04-25  Richard Henderson  <rth@redhat.com>
10975
10976         PR c/2098
10977         * c-common.c (shorten_compare): Simplfy conditions leading to
10978         the generation of a warning.
10979
10980 2002-04-25  Richard Henderson  <rth@redhat.com>
10981
10982         PR c/2035
10983         * expmed.c (extract_bit_field): Fall through to generic code rather
10984         than aborting on subreg special case.
10985
10986 2002-04-25  David S. Miller  <davem@redhat.com>
10987
10988         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
10989         for DECL being NULL.
10990
10991 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
10992
10993         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
10994
10995 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
10996
10997         * c-decl.c (grokdeclarator): Remove outdated ??? note
10998         on invalid declaration of flexible array members.
10999
11000 2002-04-25  Richard Henderson  <rth@redhat.com>
11001
11002         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
11003
11004 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
11005
11006         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
11007         needed by the compiler, even if they are used as global regs.
11008
11009 2002-04-25  Matt Hiller  <hiller@redhat.com>
11010
11011         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
11012         functions.
11013         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
11014         of the corresponding functions.
11015         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
11016         New prototypes.
11017
11018 2002-04-25  Matt Hiller  <hiller@redhat.com>
11019
11020         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
11021
11022         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
11023         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
11024         registers, adjust comment accordingly.
11025         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
11026         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
11027         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
11028         for coprocessor registers.
11029         (ADDITIONAL_REGISTER_NAMES): Include
11030         ALL_COP_ADDITIONAL_REGISTER_NAMES.
11031
11032         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
11033         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
11034         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
11035         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
11036         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
11037
11038         (mips_char_to_class): Adjust comment to include coprocessor
11039         constraint letters.
11040
11041         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
11042         New functions.
11043         (mips_reg_names, mips_regno_to_class): Include coprocessor
11044         information.
11045         (mips_sw_reg_names): Ditto, make non-static.
11046         (mips_move_1word): Handle moves to and from coprocessor registers.
11047         (mips_move_2words): Handle moves to and from coprocessor
11048         registers.
11049         (mips_class_max_nregs, mips_register_move_cost): Handle
11050         coprocessor register classes.
11051         (override_options): Initialize mips_char_to_class and
11052         mips_hard_regno_mode_ok properly for coprocessor registers.
11053
11054         * config/mips/mips.md (movdi_internal, movdi_internal2,
11055         movsi_internal1, movsi_internal2): Add constraint-sets for
11056         coprocessor registers.
11057         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
11058         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
11059         isn't mips.
11060         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
11061         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
11062         isn't mips.
11063         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
11064         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
11065         isn't mips.
11066         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
11067         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
11068         isn't mips.
11069
11070         * doc/tm.texi: Document feature.
11071
11072 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11073
11074         * integrate.c (function_attribute_inlinable_p): Simplify.
11075         Check the table pointer is not NULL.
11076
11077 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
11078
11079         * doc/c-tree.texi: Fix typo in introduction.
11080
11081 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11082
11083         * c-common.h (c_common_parse_file): Update.
11084         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11085         * c-lex.c (YYDEBUG): Get from c-lex.h.
11086         (c_common_parse_file): Update.
11087         * c-lex.h (YYDEBUG, yydebug): New.
11088         * c-parse.in (YYDEBUG): Get from c-lex.h.
11089         (c_set_yydebug): Remove.
11090         * c-tree.h (c_set_yydebug): Remove.
11091         * langhooks-def.h (lhd_do_nothing_i): New.
11092         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
11093         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
11094         * langhooks.c  (lhd_do_nothing_i): New.
11095         (lhd_set_yydebug): Remove.
11096         * langhooks.h (struct lang_hooks): Update.
11097         * toplev.c (set_yydebug): New.
11098         (compile_file): Update call to parse_file hook.
11099         (decode_d_option): Update.
11100 objc:
11101         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11102
11103 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
11104
11105         * loop.c (load_mems): Don't change the interface of called functions.
11106
11107         * calls.c (expand_call): Take current_function_pretend_args_size
11108         into account when setting argblock for sibcalls.
11109
11110 2002-04-24  Matt Hiller  <hiller@redhat.com>
11111
11112         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
11113         * c-lex.c: Ditto.
11114
11115         * cpplex.c (skip_line_comment): Process comment one multibyte
11116         character at a time rather than one char at a time, if
11117         appropriate.
11118         (parse_string): Process string one multibyte character at a time
11119         rather than one char at a time, if appropriate.
11120         * c-lex.c (lex_string): Lex and copy multibyte strings
11121         appropriately.
11122         * cpplib.h (cppchar_t): Change to unsigned.
11123
11124 2002-04-24  Richard Henderson  <rth@redhat.com>
11125
11126         PR c/3467
11127         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
11128         for c99.
11129
11130 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
11131
11132         * sh.c (sh_va_arg): If argument was passed by reference,
11133         dereference the pointer.
11134
11135         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11136
11137         * sh.md (divsi3_i4_media): Use match_operand for input values
11138         rather than hard registers.
11139         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
11140         unnecessarily through hard registers.  Keep copies of pseudo
11141         registers outside of the libcall sequence.
11142
11143         * sh.md (casesi_shift_media): Add modes.
11144
11145         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
11146         values in memory.
11147
11148 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11149
11150         * attribs.c (c_common_attribute_table): Move table and handlers
11151         to c-common.c.
11152         (format_attribute_table, lang_attribute_table,
11153         lang_attribute_common): Remove.
11154         (init_attributes): Replace NULL pointers with pointers to the
11155         empty table.
11156         (handle_packed_attribute, handle_nocommon_attribute,
11157         handle_common_attribute, handle_noreturn_attribute,
11158         handle_noinline_attribute, handle_always_inline_attribute,
11159         handle_used_attribute, handle_unused_attribute,
11160         handle_const_attribute, handle_transparent_union_attribute,
11161         handle_constructor_attribute, handle_destructor_attribute,
11162         handle_mode_attribute, handle_section_attribute,
11163         handle_aligned_attribute, handle_weak_attribute,
11164         handle_alias_attribute, handle_visibility_attribute,
11165         handle_no_instrument_function_attribute, handle_malloc_attribute,
11166         handle_no_limit_stack_attribute, handle_pure_attribute,
11167         handle_deprecated_attribute, handle_vector_size_attribute,
11168         vector_size_helper): Move to c-common.c.
11169         * c-common.c (c_common_attribute_table,
11170         handle_packed_attribute, handle_nocommon_attribute,
11171         handle_common_attribute, handle_noreturn_attribute,
11172         handle_noinline_attribute, handle_always_inline_attribute,
11173         handle_used_attribute, handle_unused_attribute,
11174         handle_const_attribute, handle_transparent_union_attribute,
11175         handle_constructor_attribute, handle_destructor_attribute,
11176         handle_mode_attribute, handle_section_attribute,
11177         handle_aligned_attribute, handle_weak_attribute,
11178         handle_alias_attribute, handle_visibility_attribute,
11179         handle_no_instrument_function_attribute, handle_malloc_attribute,
11180         handle_no_limit_stack_attribute, handle_pure_attribute,
11181         handle_deprecated_attribute, handle_vector_size_attribute,
11182         vector_size_helper): Move from attribs.c.
11183         * c-common.h (c_common_attribute_table,
11184         c_common_format_attribute_table): New.
11185         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
11186         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
11187         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11188         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
11189         (LANG_HOOKS_INITIALIZER): Update.
11190         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
11191         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
11192         * target.h: Update comment.
11193         * tree.c (default_target_attribute_table): Remove.
11194         * tree.h (default_target_attribute_table, format_attribute_table,
11195         lang_attribute_table, lang_attribute_common): Remove.
11196 objc:
11197         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
11198         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
11199
11200 2002-04-24  Jason Merrill  <jason@redhat.com>
11201
11202         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
11203         * dwarf2out.c (dwarf_attr_name): Support it.
11204         (gen_array_type_die): Emit it.
11205         (lookup_type_die): No special handling for VECTOR_TYPE.
11206         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
11207
11208 2002-04-24  Richard Henderson  <rth@redhat.com>
11209
11210         * config/mips/mips.md (movdi_usd): Renumber.
11211
11212 2002-04-24  David S. Miller  <davem@redhat.com>
11213
11214         PR target/6420
11215         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
11216         32-bit Sparc and current_function_returns_struct is true.
11217
11218 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
11219
11220         * loop.c (canonicalize_condition): Use gen_int_mode.
11221
11222 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
11223
11224         * config/rs6000/altivec.h: Cleanup file.  Add non individual
11225         variants.
11226         (vec_vaddubm): New.
11227         (vec_vadduhm): New.
11228         (vec_vadduwm): New.
11229         (vec_vaddfp): New.
11230         (vec_vaddcuw): New.
11231         (vec_vaddubs): New.
11232         (vec_vaddsbs): New.
11233         (vec_vadduhs): New.
11234         (vec_vadduws): New.
11235         (vec_vaddsws): New.
11236         (vec_vand): New.
11237         (vec_vandc): New.
11238         (vec_vavgub): New.
11239         (vec_vavgsb): New.
11240         (vec_vavguh): New.
11241         (vec_vavgsh): New.
11242         (vec_vavguw): New.
11243         (vec_vavgsw): New.
11244         (vec_vrfip): New.
11245         (vec_vcmpbfp): New.
11246         (vec_vcmpequb): New.
11247         (vec_vcmpequh): New.
11248         (vec_vcmpequw): New.
11249         (vec_vcmpeqfp): New.
11250         (vec_vcmpgefp): New.
11251         (vec_vcmpgtub): New.
11252         (vec_vcmpgtsb): New.
11253         (vec_vcmpgtuh): New.
11254         (vec_vcmpgtsh): New.
11255         (vec_vcmpgtuw): New.
11256         (vec_vcmpgtsw): New.
11257         (vec_vcmpgtfp): New.
11258         (vec_vcmpgefp): New.
11259         (vec_vcfux): New.
11260         (vec_vcfsx): New.
11261         (vec_vctsxs): New.
11262         (vec_vctuxs): New.
11263         (vec_vexptefp): New.
11264         (vec_vrfim): New.
11265         (vec_lvx): New.
11266         (vec_lvebx): New.
11267         (vec_lvehx): New.
11268         (vec_lde): Add vector float variant.
11269         (vec_lvewx): New.
11270         (vec_lvxl): New.
11271         (vec_vlogefp): New.
11272         (vec_vmaddfp): New.
11273         (vec_vmhaddshs): New.
11274         (vec_vmaxub): New.
11275         (vec_vmaxsb): New.
11276         (vec_vmaxuh): New.
11277         (vec_vmaxsh): New.
11278         (vec_vmaxuw): New.
11279         (vec_vmaxsw): New.
11280         (vec_vmaxsw): New.
11281         (vec_vmaxfp): New.
11282         (vec_vmrghb): New.
11283         (vec_vmrghh): New.
11284         (vec_vmrghw): New.
11285         (vec_vmrglb): New.
11286         (vec_vmrglh): New.
11287         (vec_vmrglw): New.
11288         (vec_vminub): New.
11289         (vec_vminsb): New.
11290         (vec_vminuh): New.
11291         (vec_vminsh): New.
11292         (vec_vminuw): New.
11293         (vec_vminsw): New.
11294         (vec_vminfp): New.
11295         (vec_vmladduhm): New.
11296         (vec_vmhraddshs): New.
11297         (vec_msumubm): New.
11298         (vec_vmsummbm): New.
11299         (vec_vmsumuhm): New.
11300         (vec_vmsumshm): New.
11301         (vec_vmsumuhs): New.
11302         (vec_vmsumshs): New.
11303         (vec_vmuleub): New.
11304         (vec_vmulesb): New.
11305         (vec_vmuleuh): New.
11306         (vec_vmulesh): New.
11307         (vec_vmuloub): New.
11308         (vec_mulosb): New.
11309         (vec_vmulouh): New.
11310         (vec_vmulosh): New.
11311         (vec_vnmsubfp): New.
11312         (vec_vnor): New.
11313         (vec_vor): New.
11314         (vec_vpkuhum): New.
11315         (vec_vpkuwum): New.
11316         (vec_vpkpx): New.
11317         (vec_vpkuhus): New.
11318         (vec_vpkshss): New.
11319         (vec_vpkuwus): New.
11320         (vec_vpkswss): New.
11321         (vec_vpkshus): New.
11322         (vec_vpkswus): New.
11323         (vec_vperm): New.
11324         (vec_vrefp): New.
11325         (vec_vrlb): New.
11326         (vec_vrlh): New.
11327         (vec_vrlw): New.
11328         (vec_vrfin): New.
11329         (vec_vrsqrtefp): New.
11330         (vec_vsel): New.
11331         (vec_vslb): New.
11332         (vec_vslh): New.
11333         (vec_vslw): New.
11334         (vec_vsldoi): New.
11335         (vec_vsl): New.
11336         (vec_vslo): New.
11337         (vec_vspltb): New.
11338         (vec_vsplth): New.
11339         (vec_vspltw): New.
11340         (vec_vspltisb): New.
11341         (vec_vspltish): New.
11342         (vec_vspltisw): New.
11343         (vec_vsrb): New.
11344         (vec_vsrh): New.
11345         (vec_vsrw): New.
11346         (vec_vsrab): New.
11347         (vec_vsrah): New.
11348         (vec_vsraw): New.
11349         (vec_vsr): New.
11350         (vec_vsro): New.
11351         (vec_stvx): New.
11352         (vec_stvebx): New.
11353         (vec_stvehx): New.
11354         (vec_stvewx): New.
11355         (vec_stvxl): New.
11356         (vec_vsububm): New.
11357         (vec_vsubuhm): New.
11358         (vec_vsubuwm): New.
11359         (vec_vsubfp): New.
11360         (vec_vsubcuw): New.
11361         (vec_vsububs): New.
11362         (vec_vsubsbs): New.
11363         (vec_vsubuhs): New.
11364         (vec_vsubshs): New.
11365         (vec_vsubuws): New.
11366         (vec_vsubsws): New.
11367         (vec_vsum4ubs): New.
11368         (vec_vsum4sbs): New.
11369         (vec_vsum4shs): New.
11370         (vec_vsum2sws): New.
11371         (vec_vsumsws): New.
11372         (vec_vrfiz): New.
11373         (vec_vupkhsb): New.
11374         (vec_vupkhpx): New.
11375         (vec_vupkhsh): New.
11376         (vec_vupklsb): New.
11377         (vec_vupklpx): New.
11378         (vec_vupklsh): New.
11379         (vec_vxor): New.
11380
11381 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
11382
11383         PR c/5430
11384         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
11385         added literals from substracted literals.
11386         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
11387         (fold) [associate]: Preserve MINUS_EXPR if needed.
11388
11389 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
11390
11391         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
11392         are obsoleted.
11393
11394 2002-04-23  Tom Tromey  <tromey@redhat.com>
11395
11396         * gcc.c: Added --resource.  For PR java/6314.
11397
11398 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
11399
11400         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
11401         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
11402         these libraries.
11403
11404 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
11405
11406         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
11407
11408 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
11409
11410         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
11411         workaround.
11412         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
11413         (ix86_expand_clrstr): Fix typo.
11414         * loop.c (gen_load_of_final_value): New.
11415         (loop_givs_rescan, strength_reduce, check_dbra_loop):
11416         Use it.
11417
11418 2002-04-23  Roger Sayle  <roger@eyesopen.com>
11419
11420         * builtins.c (builtin_memset_gen_str): New function.
11421         (expand_builtin_memset): Optimize the case of constant length, but
11422         unknown value.
11423
11424 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
11425
11426         * config/rs6000/altivec.h (vec_step): Remove extraneous
11427         parentheses.
11428         (vec_ctu): Cast return.
11429
11430 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
11431
11432         PR target/6413
11433         * function.h: (struct function): Add profile_label_no field.
11434         (current_function_profile_label_no): Define.
11435         * function.c: (profile_label_no): New static var.
11436         (expand_function_start): Increment it, and copy to
11437         current_function_profile_label_no.
11438         * output.h (profile_label_no): Delete.
11439         * final.c (profile_label_no): Delete.
11440         (profile_function): Use current_function_profile_label_no.
11441         (final_end_function): Don't increment profile_label_no here.
11442         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
11443         profile_label_no with current_function_profile_label_no.
11444         * config/pa/pa.c (current_function_number): Delete.
11445         (pa_output_function_prologue): Don't output profile label here.
11446         (hppa_profile_hook): Use label_no param rather than
11447         current_function_number.
11448         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
11449         * config/pa/pa.h: .. here.
11450         (FUNCTION_PROFILER): Output profile label here.
11451
11452 2002-04-22  Eric Christopher  <echristo@redhat.com>
11453
11454         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
11455         patch of 2002-04-09 due to binutils issues.
11456         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
11457
11458 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
11459
11460         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
11461         constraint to 'o' for m=r and r=m alternatives.
11462         ("*movv8hi_internal1"): Same.
11463         ("*movv16qi_internal1"): Same.
11464         ("*movv4sf_internal1"): Same.
11465
11466 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
11467
11468         * rtl.h (RTX_FLAG): New macro.
11469         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
11470         * final.c (alter_subreg): Use macro to access rtx flag.
11471         * integrate.c (copy_rtx_and_substitute): Use new access macro.
11472         * print-rtl.c (print_rtx): Use new access macro.
11473
11474         * cse.c (insert): Check rtx code before accessing flag.
11475
11476         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
11477         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
11478         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
11479         convert_const_symbol_ref, make_canonical, make_alternative_compare,
11480         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
11481         simplify_test_exp, optimize_attrs, simplify_by_exploding,
11482         find_and_mark_used_attributes, unmark_used_attributes,
11483         add_values_to_cover, simplify_with_current_value,
11484         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
11485         copy_rtx_unchanging, main): Use new access macros.
11486
11487 2002-04-22  Tom Rix  <trix@redhat.com>
11488
11489         * expmed.c (init_expmed): Generate shifted constant once.
11490
11491 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
11492
11493         * c-lex.c (lex_charconst): Call convert to get constant in
11494         proper type; don't just smash the type field.
11495         Fixes PR c/6300.
11496
11497         * config.gcc: Add list of obsolete configurations.  Disallow
11498         building these without --enable-obsolete.
11499         * doc/install.texi: Document --enable-obsolete and obsoletion
11500         policy.  Mention obsoletion of individual targets in
11501         appropriate places.
11502
11503 2002-04-22  Richard Henderson  <rth@redhat.com>
11504
11505         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
11506
11507 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
11508
11509         PR f/6138.
11510         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
11511         (walk_fixup_memory_subreg): Likewise.
11512         (fixup_var_refs_insn): Adjust accordingly.
11513         (fixup_var_refs_1): Likewise.
11514
11515 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
11516
11517         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
11518         LIBPATH_ARCH64_SPEC): Define.
11519         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
11520         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
11521         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
11522         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
11523
11524 2002-04-22      Joel Sherrill <joel@OARcorp.com>
11525
11526         * gthr-rtems.h: Correct prototypes to remove warnings.
11527
11528 2002-04-22  Richard Henderson  <rth@redhat.com>
11529
11530         PR c/6344
11531         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
11532
11533         * gcse.c (free_insn_expr_list_list): New.
11534         (clear_modify_mem_tables): Use it.  Fix bit set usage.
11535         (canon_list_insert): Use EXPR_LISTs for expressions.
11536         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
11537
11538 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11539
11540         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
11541         file change and include code to _cpp_pop_buffer.
11542         * cpphash.h (struct pending_option): Predeclare.
11543         (struct cpp_reader): New member next_include_file.
11544         (_cpp_pop_file_buffer): Update.
11545         (_cpp_push_next_buffer): Update, rename.
11546         * cppinit.c (cpp_destroy): Free include chain and pending here.
11547         (cpp_finish_options): Simplify.
11548         (_cpp_push_next_buffer): Rename and clean up.
11549         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
11550         Clarify.
11551         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
11552
11553 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
11554
11555         * config/rs6000/altivec.h (vec_xor): Add variant for both args
11556         being vector signed int.
11557         (vec_andc): Same.
11558         (vec_xor): Add variant for both args being vector signed char.
11559         Remove redundant variant.
11560         (vec_andc): Same.
11561
11562 2002-04-21  David S. Miller  <davem@redhat.com>
11563
11564         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
11565         compare mode in output RTL.
11566
11567 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
11568
11569         * config/rs6000/rs6000.c (rs6000_override_options): Correct
11570         style and formatting of previous patch.
11571
11572 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
11573
11574         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
11575         flag_pic for ABI_AIX.
11576
11577 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11578
11579         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
11580         * cppfiles.c (read_include_file): Similarly.
11581         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
11582         uxstrdup ustrchr, ufputs): Similarly.
11583         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
11584         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
11585         cpp_ideq, parse_identifier, parse_number): Similarly.
11586         * cpplib.c (struct directive, dequote_string, D, run_directive,
11587         cpp_push_buffer): Similarly.
11588         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
11589         _cpp_create_definition, check_trad_stringification,
11590         cpp_macro_definition): Similarly.
11591
11592 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11593
11594         * cppmacro.c (funlike_invocation_p): Don't step back
11595         over CPP_EOF.
11596
11597 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
11598
11599         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
11600         labelno.
11601
11602 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
11603
11604         * doc/invoke.texi: Remove Chill references.
11605         * doc/gcc.texi: Update last modified date.
11606
11607 2002-04-20  Kazu Hirata  <kazu@hxi.com>
11608
11609         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
11610         push and pop.  Replace add.l with add.w.
11611
11612 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11613
11614         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
11615         multiply instructions for H8/300H case.
11616
11617 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11618
11619         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
11620         Bum three instructions from each routine.
11621
11622 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11623
11624         * Makefile.in: Update.
11625         * decl.c (push_c_function_context, pop_c_function_context,
11626         mark_c_function_context): Rename for consistency.
11627         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
11628         * c-tree.h (push_c_function_context, pop_c_function_context,
11629         mark_c_function_context): Rename for consistency.
11630         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
11631         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
11632         * function.c (init_lang_status, save_lang_status,
11633         restore_lang_status, mark_lang_status, free_lang_status):
11634         Move to langhooks.h.
11635         (push_function_context_to, pop_function_context_from,
11636         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
11637         Update.
11638         * function.h (init_lang_status, save_lang_status,
11639         restore_lang_status, mark_lang_status, free_lang_status):
11640         Move to langhooks.h.
11641         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
11642         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11643         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
11644         LANG_HOOKS_FUNCTION_INITIALIZER): New.
11645         (LANG_HOOKS_INITIALIZER): Update.
11646         (lhd_do_nothing_f): New.
11647         * langhooks.h (struct lang_hooks_for_functions): New.
11648         (struct lang_hooks): New hooks.
11649         * langhooks.c (lhd_do_nothing_f): New.
11650 objc:
11651         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
11652         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
11653
11654 2002-04-19  David S. Miller  <davem@redhat.com>
11655
11656         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
11657         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
11658
11659 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
11660
11661         PR optimization/3756
11662         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
11663         x = ((int) y < 0) ? cst1 : cst2.
11664
11665 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
11666
11667         PR c/6358
11668         * function.c: Reapply patch for c/6358.
11669         (expand_function_end): Copy decl_rtl's mode, not
11670         current_function_return_rtx mode.
11671
11672 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
11673
11674         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
11675         targets.
11676
11677 2002-04-19  Tom Tromey  <tromey@redhat.com>
11678
11679         * doc/install.texi (Specific): Update status of Solaris 2.8.
11680         For PR libgcj/6158.
11681
11682 2002-04-19  Andreas Schwab  <schwab@suse.de>
11683
11684         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
11685         (PUT_REAL): Restore old definition.
11686
11687 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
11688             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11689
11690         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
11691         binutils 2.11.2 and higher generate smaller binaries than Sun's
11692         native tools.
11693
11694 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
11695
11696         PR c++/6352
11697         * toplev.c (rest_of_compilation): Do not defer functions for which
11698         TREE_SYMBOL_REFERENCED has already been set.
11699
11700 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
11701
11702         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
11703         alternative.
11704
11705 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11706
11707         * builtins.c: Include langhooks.h.
11708         (lang_type_promotes_to): Remove.
11709         (expand_builtin_va_arg): Use new hook.
11710         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
11711         (simple_type_promotes_to): Move to c-typeck.c.
11712         * c-common.h (simple_type_promotes_to): Remove.
11713         * c-decl.c (duplicate_decls, grokdeclarator): Update.
11714         * c-format.c: Include langhooks.h.
11715         (check_format_types): Update.
11716         * c-tree.h (c_type_promotes_to): New.
11717         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
11718         (type_lists_compatible_p): Update.
11719         * langhooks-def.h (lhd_type_promotes_to): New.
11720         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
11721         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
11722         * langhooks.c (lhd_type_promotes_to): New.
11723         * langhooks.h (struct lang_hooks_for_types): New hook.
11724         * tree.h (lang_type_promotes_to): Remove.
11725 objc:
11726         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
11727
11728 2002-04-18  Richard Henderson  <rth@redhat.com>
11729
11730         * function.c: Revert patch for c/6358.
11731
11732 2002-04-18  Richard Henderson  <rth@redhat.com>
11733
11734         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
11735         blocks.  Handle multiple references to the TRAP block.  Handle
11736         non-adjacent THEN and OTHER blocks.
11737
11738 2002-04-18  Richard Henderson  <rth@redhat.com>
11739
11740         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
11741         crash with no type for by-mode libcalls.
11742
11743         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
11744
11745 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
11746
11747         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
11748         __xtensa_nonlocal_goto): Use a syscall instructions to flush
11749         the register windows.
11750
11751 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
11752
11753         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
11754         appropriate.  Document need for extended precision even when
11755         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
11756         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
11757         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
11758         instead of relying on later syntax error when REAL_WIDTH > 5.
11759         * real.c: Define NE based only on whether or not we have a
11760         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
11761         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
11762         define GET_REAL and PUT_REAL as simple memcpy operations; no
11763         need to byteswap or round.
11764         Use #error instead of #ifdef-ing out the entire file, for
11765         prompt error detection.
11766
11767         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
11768
11769 2002-04-18  David S. Miller  <davem@redhat.com>
11770
11771         * config/sparc/sparc.h (BRANCH_COST): Define.
11772
11773         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
11774         does it.
11775
11776 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
11777
11778         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
11779         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
11780         propagate_block calls after relaxation loop using new variable
11781         stabilized_prop_flags.
11782
11783 2002-04-18  Richard Henderson  <rth@redhat.com>
11784
11785         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
11786         (ia64_va_arg): Expect variable sized types by reference.
11787         * config/ia64/ia64-protos.h: Update.
11788         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
11789         ia64_function_arg_pass_by_reference.
11790
11791 2002-04-18  Richard Henderson  <rth@redhat.com>
11792
11793         * ifcvt.c: Include except.h.
11794         (block_has_only_trap): Break out from find_cond_trap.
11795         (find_cond_trap): Use it.  Always delete the trap block.
11796         (merge_if_block): Allow then block null.  Be less simplistic about
11797         what insns can end a block.
11798         * Makefile.in (ifcvt.o): Depend on except.h.
11799
11800         * config/ia64/ia64.md (trap, conditional_trap): New.
11801
11802 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11803
11804         PR c/6358
11805         * function.c (assign_parms): Assign hard current_function_return_rtx
11806         register here...
11807         (expand_function_end): ...not here.
11808
11809 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
11810
11811         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
11812         * c-tree.h (c_incomplete_type_error): New.
11813         * c-typeck.c (require_complete_type, build_component_ref): Update.
11814         (incomplete_type_error): Rename.
11815         * langhooks-def.h (lhd_incomplete_type_error): New.
11816         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
11817         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
11818         * langhooks.c (lhd_incomplete_type_error): New.
11819         * langhooks.h (struct lang_hooks_for_types): New hook.
11820         * tree.c (size_in_bytes): Use new hook.
11821         * tree.h (incomplete_type_error): Remove.
11822 objc:
11823         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
11824
11825 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
11826
11827         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
11828         TARGET_FLOAT_FORMAT blocks.
11829
11830 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11831
11832         * doc/install.texi (Downloading the source): Do not mention Chill
11833         any longer, but mention Ada.
11834         (Configuration): Do not mention Chill any longer.
11835
11836 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
11837
11838         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
11839
11840 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
11841
11842         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
11843         in last patch.
11844
11845 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11846
11847         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
11848         instead of unsigned_type.
11849
11850 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
11851
11852         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
11853         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
11854         later.
11855
11856 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
11857
11858         * attribs.c (vector_type_node_list): New static variable.
11859         (handle_vector_size_attribute): Use it to avoid generating a
11860         new type node each time we are called.
11861
11862         * combine.c (subst): Avoid trying to make a vector mode subreg of
11863         an integer constant.
11864         (gen_lowpart_for_combine): Likewise.
11865
11866 2002-04-18  Roger Sayle  <roger@eyesopen.com>
11867             Jakub Jelinek  <jakub@redhat.com>
11868
11869         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
11870         for integer constant c (if x has unsigned type or sign bit is not
11871         set in c).  This folds the zero/sign extension into the bit-wise and
11872         operation.
11873
11874 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11875
11876         PR middle-end/6205
11877         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
11878         otherwise xorps.
11879
11880 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
11881
11882         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
11883
11884 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
11885
11886         * gcc.c (read_specs): Detect and fail if an attempt is made to
11887         rename a spec string to an already existing string.
11888
11889 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
11890
11891         * config/s390/s390.c (legitimize_pic_address): Do not generate
11892         illegal address constant without CONST.
11893
11894 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11895
11896         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
11897         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11898
11899 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
11900
11901         PR optimization/6305
11902         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
11903         to make sure previous reloads are taken into account.  Generate
11904         better code if one operand is an in-range immediate constant.
11905
11906 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
11907
11908         * doc/install.texi (Building): libgcj requires GNU make.
11909
11910 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
11911
11912         PR bootstrap/6315
11913         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
11914         even if hard quad and register is not floating.
11915         (movtf reg<-mem split): Disallow splitting if hard quad and
11916         register is floating.
11917         (movtf mem<-reg split): Likewise.
11918         * config/sparc/sparc.c (fp_register_operand): New predicate.
11919         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
11920
11921 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
11922
11923         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
11924         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
11925         (unprotoize.o): Ditto.  Build from protoize.c.  Define
11926         UNPROTOIZE on command line.
11927         * protoize.c: Include cppdefault.h.  Delete include_defaults.
11928         (in_system_include_dir): Use cpp_include_defaults (defined in
11929         cppdefault.o).
11930         * unprotoize.c: Delete file.
11931
11932 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
11933
11934         * config/rs6000/altivec.h (vec_ld): Add array variants.
11935         (vec_lde): Same.
11936         (vec_ldl): Same.
11937
11938 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
11939             Aldy Hernandez <aldyh@redhat.com>
11940
11941         * config/rs6000/altivec.h: Define __ALTIVEC__.
11942         (bool): New.
11943         (__pixel): New.
11944         (pixel): New.
11945         (vec_cfux): New.
11946         (vec_vmaddfp): New.
11947         (vec_vsldoi): New.
11948         Add parentheses to all macro arguments.
11949
11950 2002-04-16  Richard Henderson  <rth@redhat.com>
11951
11952         PR c++/6320
11953         * except.c (remove_eh_handler): Insert inner regions at beginning
11954         of sibling chain.  Refactor expressions.
11955
11956 2002-04-16  Richard Henderson  <rth@redhat.com>
11957
11958         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
11959         * config/sparc/sol2-gas-bi.h: New file.
11960         * config.gcc (sparc*-solaris): Add it as needed.
11961         * configure.in (AS_SPARC64_FLAG): Remove check.
11962         * config.in, configure: Regenerate.
11963
11964         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
11965
11966 2002-04-16  Richard Henderson  <rth@redhat.com>
11967
11968         * config/mips/mips.c (override_options): Don't override N32 for
11969         a 64-bit ISA.
11970
11971         PR 6202
11972         * config/mips/mips.md (can_delay): Split out of existing define_delays.
11973         (HILO_delay): Set can_delay false.
11974
11975 2002-04-16  Dale Johannesen <dalej@apple.com>
11976
11977         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
11978         instruction addresses.
11979         (rs6000_output_function_epilogue): Likewise.
11980
11981 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
11982
11983         * c-parse.in (poplevel, compstmt_start,
11984         compstmt_primary_start): Add ending ';', in accordance
11985         with POSIX.
11986
11987 2002-04-16  Richard Henderson  <rth@redhat.com>
11988
11989         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
11990         Adjust tm_file order to get TARGET_DEFAULT set properly.
11991         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
11992         * doc/install.texi (sparc-solaris): Update.
11993
11994 2002-04-16  Dale Johannesen <dalej@apple.com>
11995
11996         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
11997         comparison operands do not match each other or if modes of
11998         conditions do not match result.
11999
12000 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
12001
12002         PR target/6305
12003         * config/s390/s390.md (mulsidi3): Set both subregs of the
12004         multiword register.
12005
12006 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
12007
12008         * config/rs6000/altivec.h (vec_addc): Type check.
12009
12010 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12011
12012         PR middle-end/6279
12013         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
12014
12015         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
12016
12017 2002-04-15  Richard Henderson  <rth@redhat.com>
12018
12019         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
12020         call_really_used_regs too.
12021
12022 2002-04-15  Richard Henderson  <rth@redhat.com>
12023
12024         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
12025
12026 2002-04-15  David S. Miller  <davem@redhat.com>
12027
12028         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
12029         as being CLOBBERed.
12030
12031 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12032
12033         PR c/6290
12034         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
12035         CONST_VECTOR is { 0, ... 0 }.
12036
12037 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
12038
12039         * doc/install.texi (Installing GCC: Configuration): Clarify
12040         the only supported ways to configure gcc.
12041
12042 2002-04-15  Roland McGrath  <roland@frob.com>
12043
12044         * config.gcc (alpha*-*-gnu*): New target configuration.
12045         * config/alpha/gnu.h: New file for it.
12046         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
12047
12048 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
12049
12050         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
12051         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
12052         * tree.h (expand_start_stmt_expr): Update prototype.
12053         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
12054         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
12055         on the STMT_EXPR created for the inline function.
12056
12057 2002-04-15  Richard Henderson  <rth@redhat.com>
12058
12059         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
12060         config/i386/linux-aout.h, config/i386/linux-oldld.h,
12061         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
12062         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
12063         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
12064         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
12065         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
12066         Define __gnu_linux__, not gnu_linux.
12067         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
12068
12069 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
12070
12071         Remove Chill front end.
12072         * gcc.c (default_compilers): Remove Chill entries.
12073         * ch: Remove directory.
12074         * doc/frontends.texi: Remove information about Chill.
12075         * doc/sourcebuild.texi: Likewise.
12076         * doc/standards.texi: Likewise.
12077
12078 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
12079
12080         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
12081         (LONGLONG_STANDALONE): Define.
12082
12083 2002-04-15  David S. Miller  <davem@redhat.com>
12084
12085         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
12086         Call emit_library_call with LCT_NORMAL.
12087         (sparc_initialize_trampoline): Use LCT_foo instead of
12088         magic constant in emit_library_call invocations.
12089         (sparc64_initialize_trampoline): Likewise.
12090         (sparc_profile_hook): Likewise.
12091         * config/sparc/sparc.md: Likewise.
12092
12093         * config/sparc/sparc.c (sparc_extra_constraint_check):
12094         Fix type of argument 'c'.
12095         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
12096         Likewise.
12097
12098 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
12099
12100         * diagnostic.h (output_buffer_state): Redefine.
12101         (output_format_decoder): New macro.
12102         (output_prefixing_rule): Likewise.
12103         (output_line_cutoff): Likewise.
12104         (diagnostic_format_decoder): Adjust.
12105         (diagnostic_prefixing_rule): Likewise.
12106         (diagnostic_line_cutoff): Likewise.
12107         (diagnostic_state): Likewise.
12108         (diagnostic_kind_count): Likewise.
12109         (diagnostic_buffer): Now a macro.
12110
12111         * diagnostic.c (diagnostic_buffer): Remove definition.
12112         (output_is_line_wrapping): Adjust.
12113         (set_real_maximum_length): Likewise.
12114         (output_set_maximum_length): Likewise.
12115         (init_output_buffer): Likewise.
12116         (lhd_print_error_function): Likewise.
12117         (output_do_verbatim): Likewise.
12118
12119 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12120
12121         * cpperror.c (print_location): Don't print include chain
12122         if line == 0.
12123         (cpp_begin_message): Update to use DL_ macros.
12124         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
12125         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
12126         cpp_notice, cpp_notice_from_errno): Remove.
12127         (cpp_error, cpp_error_with_line): Update to take a diagnostic
12128         level.
12129         (cpp_errno): New.
12130         * cppexp.c (CPP_ICE): Remove.
12131         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
12132         lex, integer_overflow, _cpp_parse_expr): Update.
12133         * cppfiles.c (read_include_file, find_include_file,
12134         handle_missing_header, _cpp_read_file, remap_filename): Update.
12135         * cpphash.h (enum error_type): Remove.
12136         (_cpp_begin_message): Update.
12137         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
12138         cpp_handle_option, cpp_post_options): Update.
12139         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
12140         skip_whitespace, parse_identifier, parse_slow, parse_string,
12141         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
12142         cpp_interpret_charconst): Update.
12143         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
12144         lex_macro_node, do_undef, glue_header_name, parse_include,
12145         do_include_common, read_flag, do_line, do_linemarker, do_ident,
12146         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
12147         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
12148         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
12149         _cpp_pop_buffer, do_diagnostic): Update.
12150         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
12151         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
12152         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
12153         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
12154         cpp_notice, cpp_notice_from_errno): Remove.
12155         (cpp_error, cpp_error_with_line): Update to take a diagnostic
12156         level.
12157         (cpp_errno): New.
12158         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
12159         collect_args, enter_macro_context, save_parameter, parse_params,
12160         _cpp_create_definition, check_trad_stringification,
12161         cpp_macro_definition): Update.
12162         * cppmain.c (cpp_preprocess_file): Update.
12163         * fix-header.c (read_scan_file): Update.
12164
12165 2002-04-14  Andreas Schwab  <schwab@suse.de>
12166
12167         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
12168
12169 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
12170
12171         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
12172
12173 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
12174
12175         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
12176         not gnu_hurd.
12177
12178 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
12179
12180         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
12181
12182 2002-04-13      Joel Sherrill <joel@OARcorp.com>
12183
12184         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
12185         sparc-elf and sparc-rtems targets.
12186
12187 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
12188
12189         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
12190         defined, and __gnu_hurd__ wherever __GNU__ is defined.
12191         * arm/linux-elf.h: Likewise.
12192         * cris/aout.h: Likewise.
12193         * cris/linux.h: Likewise.
12194         * i370/linux.h: Likewise.
12195         * i386/gnu.h: Likewise.
12196         * i386/linux-aout.h: Likewise.
12197         * i386/linux-oldld.h: Likewise.
12198         * i386/linux.h: Likewise.
12199         * i386/linux64.h: Likewise.
12200         * ia64/linux.h: Likewise.
12201         * m68k/linux-aout.h: Likewise.
12202         * m68k/linux.h: Likewise.
12203         * mips/linux.h: Likewise.
12204         * pa/pa-linux.h: Likewise.
12205         * pj/linux.h: Likewise.
12206         * rs6000/sysv4.h: Likewise.
12207         * s390/linux.h: Likewise.
12208         * sh/linux.h: Likewise.
12209         * sparc/linux-aout.h: Likewise.
12210         * sparc/linux.h: Likewise.
12211         * sparc/linux64.h: Likewise.
12212         * xtensa/linux.h: Likewise.
12213
12214 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
12215
12216         * stmt.c (check_unique_operand_names): Expect operand names to
12217         be strings rather than identifiers.  Use simple_cst_equal to
12218         compare them.
12219         (resolve_operand_name_1): Make same identifier to string change here.
12220         * c-parse.in (asm_operand): Convert a named operand into a string.
12221         * cp/parse.y (asm_operand): Likewise.
12222
12223 2002-04-13  Andreas Schwab  <schwab@suse.de>
12224
12225         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
12226
12227 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
12228
12229         Revert these changes:
12230
12231         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
12232
12233         PR c++/5571
12234         * stor-layout.c (layout_decl): Reset the RTL for the decl.
12235
12236 2002-04-12  Richard Henderson  <rth@redhat.com>
12237
12238         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
12239         (sparc*-*-solaris): Clean up header files.
12240         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
12241         and plan on generating 64-bit code.
12242         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
12243         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
12244         * config/sparc/sol2-sld-64.h: Rename ...
12245         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
12246         for AS_SPARC64_FLAG not defined.
12247         * config/sparc/sol2-gld-bi.h: New.
12248         * config/sparc/sol2-sld.h: Remove.
12249         * config/sparc/sol26-sld.h: New.
12250         * config/sparc/sol2.h: Tidy comments.
12251         * doc/install.texi: Document sparc-solaris configury changes.
12252
12253 2002-04-12  Richard Henderson  <rth@redhat.com>
12254
12255         * recog.c (offsettable_address_p): Match the logic in adjust_address.
12256
12257         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
12258         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
12259
12260 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12261
12262         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
12263
12264 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
12265
12266         * pa.c (pa_can_combine_p): Call extract_insn before calling
12267         constrain_operands.
12268
12269 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
12270
12271         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
12272         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
12273         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
12274         (CPP_PREDEFINES): Handle __declspec.
12275         * config/i386/t-interix (USER_H): Remove.
12276
12277 2002-04-12  DJ Delorie  <dj@redhat.com>
12278
12279         * integrate.c (compare_blocks): Make comparisons safe for when
12280         sizeof(int) < sizeof(char *).
12281         (find_block): Likewise.
12282
12283 2002-04-12  Jan Hubicka  <jh@suse.cz>
12284             David Edelsohn  <edelsohn@gnu.org>
12285
12286         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
12287         registers.
12288         (symbol_ref_operand): New.
12289         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
12290         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
12291
12292 2002-04-12  Andreas Schwab  <schwab@suse.de>
12293
12294         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
12295         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
12296         overrides the definition in config/svr4.h.
12297
12298 2002-04-12      Eric Norum <eric.norum@usask.ca>
12299
12300         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
12301         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
12302         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
12303         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
12304         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
12305         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
12306         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
12307         definitions to config/rtems.h and make the targets more similar.
12308
12309 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12310
12311         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
12312         POINTERS_EXTEND_UNSIGNED.
12313         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
12314         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
12315
12316         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
12317         not specified.
12318
12319 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
12320
12321         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
12322         depends on TARGET_SHMEDIA, not TARGET_SH5.
12323
12324 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
12325
12326         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
12327         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
12328
12329 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
12330
12331         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
12332         no r0 clobber.
12333
12334 2002-04-12  Andreas Schwab  <schwab@suse.de>
12335
12336         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
12337
12338 2002-04-12  Richard Henderson  <rth@redhat.com>
12339
12340         PR bootstrap/4191
12341         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
12342
12343         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
12344         modes spanning multiple hard regs.
12345
12346         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
12347
12348 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12349
12350         * pa.c (pa_output_function_prologue): Don't accumulate the total
12351         number of code bytes when using TARGET_64BIT, or gas, SOM and not
12352         the portable runtime.
12353         (output_deferred_plabels): Handle 64bit plabels.
12354         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
12355         generating pic code using the GAS assembler for object formats that
12356         are not SOM (ie., ELF32 and ELF64).
12357         (output_millicode_call): Check attribute type if attribute length is 28.
12358         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
12359         dbr_sequence_length once.
12360         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
12361         dbr_sequence_length once.
12362         * pa.h (TARGET_SOM): Define if not defined.
12363         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
12364         with GAS and not SOM.
12365         (jump, call_internal_reg, call_value_internal_reg): Likewise.
12366         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
12367
12368 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12369
12370         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
12371         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
12372         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
12373         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
12374         elfos.h and dbxelf.h values are fine now.
12375         * config/i386/freebsd.h, config/alpha/freebsd.h
12376         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
12377
12378 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12379
12380         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
12381         or set Acpu or Amachine.  Reformat.
12382         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12383         define.
12384         (LINK_SPEC): Do not need to undef.
12385         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
12386         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
12387         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12388         define.
12389         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
12390         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
12391         (LINK_SPEC): Do not need to undef.
12392         (DONT_USE_BUILTIN_SETJMP): Do not define.
12393         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
12394         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
12395         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
12396         Remove trailing spaces.
12397         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
12398         __ELF__, or set Acpu or Amachine.  Reformat.
12399         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12400         define.
12401
12402 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12403
12404         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
12405         all other *-*-freebsd* targets.
12406
12407 2002-04-11  Richard Henderson  <rth@redhat.com>
12408
12409         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
12410
12411 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12412
12413         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
12414         Include {cpu}/{cpu}.h thru tm_file.
12415         (alpha*-*-linux*ecoff): Remove target.
12416         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
12417         (LINK_SPEC): Remove, is not OS independent.
12418         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
12419         (LINK_SPEC): Do not need to #undef any longer.
12420         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
12421         any longer.
12422         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
12423         __ELF__.
12424         (LINK_SPEC): Moved here from alpha/elf.h.
12425         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
12426         SUB_CPP_PREDEFINES.
12427         * config/alpha/linux-ecoff.h: Remove.
12428         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
12429         (CPP_SPEC): Define _POSIX_SOURCE as needed.
12430         (CPP_SUBTARGET_SPEC): Do not define.
12431         (LINK_SPEC): Do not need to #undef any longer.
12432         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
12433         * config/alpha/vms.h: Likewise.
12434
12435 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
12436
12437         * doc/extend.texi: Remove old claim that typedefs cannot have
12438         an alignment attribute.
12439
12440 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
12441
12442         PR optimization/6177
12443         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
12444         bitpos is 0 and bitsize CONCAT size.
12445
12446 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
12447
12448         PR c/6223
12449         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
12450
12451 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
12452
12453         * config/alpha/freebsd.h: Minor reformatting.
12454         (CPP_SPEC): Define ELF and add cpp_subtarget.
12455         (ASM_SPEC): No longer needed.
12456
12457 2002-04-11  Richard Henderson  <rth@redhat.com>
12458
12459         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
12460         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
12461         (dimode mem/zero splitter): New.
12462
12463 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
12464
12465         * config/cris/cris.c (cris_override_options): Tweak error message
12466         for PIC not implemented.
12467
12468         * config/cris/cris.h: Tweak comments related to parameter-passing.
12469
12470         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
12471
12472 2002-04-10  Richard Henderson  <rth@redhat.com>
12473
12474         * except.c (add_ehl_entry): Allow duplicates after landing pad
12475         creation.
12476
12477 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
12478
12479         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
12480
12481 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
12482
12483         * c-decl.c (c_init_decl_processing): Move generation of
12484         decls for g77_integer_type_node and friends from here ...
12485         * c-common.c (c_common_nodes_and_builtins): ... to here.
12486
12487 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
12488
12489         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
12490         is only used as frame pointer when frame_pointer_needed is true.
12491
12492 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
12493
12494         PR target/817
12495         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
12496         for the fact that the pool entry uses two words.
12497         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
12498         1k bytes.
12499         (movdf_soft_insn): Similarly.
12500         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
12501         for the fact that the pool entry uses three words.
12502
12503 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
12504
12505         * config/mips/mips.c (mips_va_arg): When using the struct version
12506         of the EABI va_list, allow arguments in the register save area to
12507         take up less room than a stack argument.
12508
12509 2002-04-10  Richard Henderson  <rth@redhat.com>
12510
12511         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
12512         if EXPAND_INITIALIZER.
12513
12514 2002-04-09  Richard Henderson  <rth@redhat.com>
12515
12516         * config/alpha/alpha.md (movdi_er_maybe_g): New.
12517         * config/alpha/alpha.c (alpha_expand_mov): Use it.
12518
12519 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
12520
12521         PR optimization/6233
12522         * rtlanal.c (pure_call_p): New function.
12523         * rtl.h (pure_call_p): Declare.
12524         * loop.c (prescan_loop): Use it to set has_nonconst_call.
12525         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
12526
12527 2002-04-09  Eric Christopher  <echristo@redhat.com>
12528
12529         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
12530         information to .comm directive.
12531
12532 2002-04-09  Richard Henderson  <rth@redhat.com>
12533
12534         PR c/5078
12535         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
12536
12537 2002-04-09  Richard Henderson  <rth@redhat.com>
12538
12539         * basic-block.h (flow_delete_block_noexpunge): Declare.
12540         (expunge_block_nocompact): Declare.
12541         * cfg.c (expunge_block_nocompact): Split out from ...
12542         (expunge_block): ... here.
12543         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
12544         (flow_delete_block_noexpunge): Split out from ...
12545         (flow_delete_block): ... here.
12546         * cfgcleanup.c (delete_unreachable_blocks): Compact while
12547         removing dead blocks.
12548         * except.c (exception_handler_labels): Remove.
12549         (exception_handler_label_map): New.
12550         (struct eh_region): Add aka member.
12551         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
12552         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
12553         (for_each_eh_label, for_each_eh_label_1): New.
12554         (init_eh): Register exception_handler_label_map.
12555         (free_eh_status): Use free_region.
12556         (find_exception_handler_labels): Use the map, not the list.
12557         (remove_exception_handler_label): Likewise.
12558         (maybe_remove_eh_handler): Likewise.
12559         (remove_eh_handler): Use the region aka bitmap.
12560         * except.h (exception_handler_labels): Remove.
12561         (for_each_eh_label): Declare.
12562         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
12563         * loop.c (invalidate_loops_containing_label): New.
12564         (find_and_verify_loops): Use it.  Use for_each_eh_label.
12565         * sched-rgn.c (is_cfg_nonregular): Use
12566         current_function_has_exception_handlers.
12567
12568 2002-04-09  Richard Henderson  <rth@redhat.com>
12569
12570         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
12571         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
12572         Do not return changed status.
12573         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
12574         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
12575         New functions that do return changed status.
12576         * sbitmap.h: Update decls.
12577         * gcse.c, lcm.c: Use _cg functions as needed.
12578
12579 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
12580
12581         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
12582         (sh64-*-elf*, sh-*-rtemself*): Likewise.
12583         * config/sh/embed_bb.c: New file.
12584         * config/sh/embed-elf.h: New file.
12585         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
12586         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
12587         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
12588         __PTRDIFF_TYPE__ .
12589         (SUBTARGET_CPP_PTR_SPEC): Don't define.
12590         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
12591         Add subtarget_asm_endian_spec.
12592         (ASM_SPEC): Use subtarget_asm_endian_spec.
12593         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
12594         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
12595         (WCHAR_UNSIGNED): Define.
12596         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
12597         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
12598         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
12599         Fix value.
12600         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
12601         (sh_adjust_cost): Likewise.
12602         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
12603         __PTRDIFF_TYPE__ .
12604         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
12605         (WCHAR_TYPE_SIZE): Likewise.
12606         (ASM_SPEC): Use subtarget_asm_endian_spec.
12607         (SH_ELF_WCHAR_TYPE): #undef/ #define.
12608         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
12609         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
12610         (MAX_WCHAR_TYPE_SIZE): Don't #define .
12611         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
12612         (USER_LABEL_PREFIX): Don't #undef /#define .
12613         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
12614         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
12615         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
12616         (ASM_SPEC): Likewise.
12617         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
12618         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
12619         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
12620         (LIB2FUNCS_EXTRA): Define.
12621         * t-sh64 (LIB2FUNCS_EXTRA): Define.
12622         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
12623         (LIB1ASMFUNCS_CACHE): Define.
12624         (LIB2FUNCS_EXTRA): Redefine empty.
12625
12626 2002-04-08  Richard Henderson  <rth@redhat.com>
12627
12628         * reorg.c (get_branch_condition): Use reversed_comparison_code.
12629
12630 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12631
12632         * config/m68hc11/larith.asm (__map_data_section): Fix condition
12633         and optimize for size.
12634         (__do_global_ctors): Fix pointer comparison.
12635         (__do_global_dtors): Likewise.
12636
12637 2002-04-09  David S. Miller  <davem@redhat.com>
12638
12639         * config/sparc/sparc.c (sparc_extra_constraint_check): New
12640         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
12641         allow reloading pseudos.
12642         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
12643         * config/sparc/sparc-protos.h: Declare it.
12644
12645         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
12646         unsigned comparison warning.
12647         (output_restore_regs): Mark leaf_function as unused.
12648
12649 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12650
12651         * expr.c (is_aligning_offset): New function.
12652         (expand_expr, case COMPONENT_EXPR): Call it.
12653
12654 2002-04-08  David S. Miller  <davem@redhat.com>
12655
12656         PR target/6082
12657         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
12658
12659         Make init_priority work on Sparc when using GNU ld.
12660         * config/sparc/linux.h, config/sparc/linux64.h,
12661         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
12662         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
12663         * config/sparc/sol2-gld.h: New file to do the same.
12664         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
12665         sparc/sol2-gld.h to tm_file.
12666
12667         PR optimization/4328
12668         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
12669         * doc/md.texi: Document it.
12670         * config/sparc/sparc.md (movdi_insn_sp64_novis,
12671         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
12672         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
12673         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
12674         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
12675
12676 2002-04-08  Andreas Jaeger  <aj@suse.de>
12677
12678         * stmt.c (expand_asm_operands): Revert last patch from Richard
12679         Henderson.
12680
12681 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12682
12683         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
12684         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
12685
12686 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12687
12688         * doc/contrib.texi (Contributors): Add David O'Brien.
12689
12690 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
12691
12692         * configure.in (auto-build.h): Use target_alias and build_alias
12693         when running configure.
12694         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
12695         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
12696         * configure: Regenerate.
12697
12698 2002-04-07  David S. Miller  <davem@redhat.com>
12699
12700         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
12701
12702 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12703
12704         PR 5933
12705         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
12706         generating 32-bit pic code.
12707
12708 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
12709
12710         * cppinit.c (cpp_create_reader): Initialize
12711         discard_comments_in_macro_exp.
12712         (COMMAND_LINE_OPTIONS): Add "-CC" option.
12713         (cpp_handle_option): Handle "-CC" option.
12714         * cpplex.c (save_comment): If saving a C++ comment in
12715         a directive, convert it to a C comment.
12716         (_cpp_lex_direct): Pass second comment start character to
12717         save_comment to indicate comment type.
12718         * cpplib.c (_cpp_handle_directive): If processing
12719         a "#define" directive and discard_comments_in_macro_exp
12720         is false,  re-enable saving of comments.
12721         (lex_macro_node): If discard_comments_in_macro_exp is false,
12722         discard any comments before the macro identifier.
12723         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
12724         member.
12725         * cppmacro.c (cpp_get_token): If expanding a macro while
12726         processing a directive, discard any comments we might encounter.
12727         (parse_params): If discard_comments_in_macro_exp is false,
12728         ignore comments in the macro parameter list.
12729         * gcc.c (cpp_unique_options): Add "-CC" option.
12730         (option_map): Map "--comments-in-macros" to "-CC".
12731         * doc/cppopts.texi: Document "-CC" option.
12732         * f/lang-specs.h: Add "-CC" option.
12733         * testsuite/gcc.dg/cpp/maccom1.c: New test.
12734         * testsuite/gcc.dg/cpp/maccom2.c: New test.
12735         * testsuite/gcc.dg/cpp/maccom3.c: New test.
12736         * testsuite/gcc.dg/cpp/maccom4.c: New test.
12737         * testsuite/gcc.dg/cpp/maccom5.c: New test.
12738         * testsuite/gcc.dg/cpp/maccom6.c: New test.
12739
12740 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12741
12742         PR middle-end/6180
12743         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
12744
12745 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
12746
12747         PR c++/5571
12748         * stor-layout.c (layout_decl): Reset the RTL for the decl.
12749
12750         PR opt/5120
12751         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
12752         RTX_UNCHANGING_P for the functions arguments when a tail call
12753         is made.
12754
12755 2002-04-06  Jason Merrill  <jason@redhat.com>
12756
12757         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
12758         (parse_options_and_default_flags): Set them appropriately.
12759         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
12760
12761 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
12762
12763         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
12764         here.
12765
12766         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
12767         semicolon.
12768
12769         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
12770         types come in by-reference.  Fix typo in comment.
12771
12772 2002-04-05  David S. Miller  <davem@redhat.com>
12773
12774         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
12775         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
12776         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
12777         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
12778
12779 2002-04-05  David S. Miller  <davem@redhat.com>
12780
12781         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
12782         are not going to emit return instructions, emit at least a nop
12783         for the sake of sane backtraces.
12784
12785 2002-04-05  Richard Henderson  <rth@redhat.com>
12786
12787         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
12788
12789 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
12790
12791         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
12792
12793 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
12794
12795         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
12796         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
12797         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
12798
12799 2002-04-05  Andreas Schwab  <schwab@suse.de>
12800
12801         * c-convert.c: Include c-common.h.
12802         * Makefile.in (c-convert.o): Updated.
12803
12804 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
12805
12806         * mklibgcc.in: Use separate libgcc.map for each multilib.
12807         * Makefile.in (distclean): Don't remove libgcc.map here.
12808
12809 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
12810
12811         * Makefile.in (s-mlib): Handle --disable-multilib by separate
12812         genmultilib invocation.
12813
12814 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
12815
12816         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
12817         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
12818         to num_gprs for symmetry.
12819         * config/mips/mips.c: Adjust accordingly.
12820
12821 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
12822
12823         * c-common.c (truthvalue_conversion): Rename, update.
12824         * c-common.h (c_common_truthvalue_conversion): New.
12825         * c-convert.c (convert): Update.
12826         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
12827         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
12828         * c-typeck.c (build_binary_op, build_unary_op,
12829         build_conditional_expr): Update.
12830         * fold-const.c (constant_boolean_node, fold): Use langhook.
12831         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
12832         * langhooks.h (struct lang_hooks): New hook.
12833         * stmt.c (expand_decl_cleanup): Use langhook.
12834         * tree.h (truthvalue_conversion): Remove.
12835 objc:
12836         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
12837
12838 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
12839
12840         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
12841         Add rules to make null object file.
12842
12843 2002-04-04  Jim Blandy  <jimb@redhat.com>
12844
12845         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
12846         macro formal parameter names.
12847
12848 2002-04-04  David S. Miller  <davem@redhat.com>
12849
12850         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
12851
12852 2002-04-04  Richard Henderson  <rth@redhat.com>
12853
12854         PR middle-end/5099
12855         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
12856         Support copies into and out of memory.  Don't accept allows_reg
12857         and allows_mem as gospel.
12858
12859 2002-04-04  Richard Henderson  <rth@redhat.com>
12860
12861         PR opt/6165
12862         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
12863         (write_dependence_p): Likewise.
12864
12865 2002-04-04  Richard Henderson  <rth@redhat.com>
12866
12867         * predict.c (estimate_bb_frequencies): Do frequency calculation
12868         with a volatile temporary.
12869
12870 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
12871
12872         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
12873
12874 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12875
12876         PR c++/6119
12877         * final.c (final_start_function): Don't bump profile_label_no here...
12878         (final_end_function): ...but here.
12879
12880 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12881
12882         * config/sparc/sparc.md (pic): New attribute.
12883         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
12884         into stack slots.
12885         (split after do_builtin_setjmp_setup): New.
12886
12887 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12888
12889         PR fortran/6106
12890         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
12891         change.
12892
12893 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12894
12895         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
12896         UNITS_PER_WORD for zero sized aggregates.
12897
12898 2002-04-03  David S. Miller  <davem@redhat.com>
12899
12900         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
12901         one-character spec for this, just use %(link_gcc_c_sequence).
12902
12903 2002-04-03  David S. Miller  <davem@redhat.com>
12904
12905         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
12906         handling.
12907
12908 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12909
12910         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
12911         (DWARF_FRAME_RETURN_COLUMN): Move.
12912         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12913         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
12914         * pa.c (except.h, predict.h): Include.
12915         (FRP): Delete.
12916         (store_reg_modify, set_reg_plus_d): Revise prototypes.
12917         (output_ascii): Add cast.
12918         (store_reg_modify): Revise to add frame notes.
12919         (set_reg_plus_d): Likewise.
12920         (compute_frame_size): Include space for eh data registers in frame if
12921         the current function calls eh_return.
12922         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
12923         function calls eh_return.  Save eh data registers if the current
12924         function calls eh_return.  Fix code to add frame notes.  Emit
12925         blockage to prevent insns with frame notes being scheduled in the
12926         delay slot of calls.
12927         (hppa_expand_epilogue): Restore eh data registers and do final stack
12928         adjustment if the current function calls eh_return.  Don't add frame
12929         notes.
12930         (output_call): Revise for change in length of call insn.  Don't do
12931         return pointer adjustment for an unconditional jump in the delay slot
12932         of a call when using frame notes.
12933         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
12934         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
12935         (ARG_POINTER_CFA_OFFSET): Define.
12936         * pa.md (return_external_pic): New pattern.
12937         (prologue): Correct formatting.  Use return_external_pic if current
12938         function calls eh_return.
12939         (call_internal_symref, call_value_internal_symref,
12940         sibcall_internal_symref, sibcall_value_internal_symref): Change default
12941         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
12942         respectively.
12943         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
12944
12945         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
12946         list of targets to check using "nop" insn.
12947         * configure: Rebuilt.
12948
12949 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
12950
12951         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
12952
12953 2002-04-03  David S. Miller  <davem@redhat.com>
12954
12955         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
12956         library sequence passed to the linker.
12957         (LINK_COMMAND_SPEC): Use it.
12958         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
12959         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
12960         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12961
12962 2002-04-03  Jason Merrill  <jason@redhat.com>
12963
12964         * except.c (struct eh_status): Remove protect_list.
12965         (begin_protect_partials, end_protect_partials): Remove.
12966         (add_partial_entry): Remove.
12967         * except.h: Remove prototypes.
12968
12969         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
12970         expand_decl_cleanup_eh.
12971
12972         PR c++/5636
12973         * tree.h (CLEANUP_EH_ONLY): New macro.
12974         * stmt.c (expand_decl_cleanup_eh): New fn.
12975         (expand_cleanups): Check CLEANUP_EH_ONLY.
12976         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
12977         Use expand_decl_cleanup_eh.
12978         (expand_stmt): Adjust.
12979         * c-common.h: Adjust prototype.
12980
12981 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
12982
12983         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
12984         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
12985         (cris_target_asm_function_epilogue): Ditto.
12986         (cris_initial_frame_pointer_offset): Ditto.
12987         (cris_simple_epilogue): Ditto.
12988         (cris_expand_builtin_va_arg): Variable-size types come in
12989         by-reference.
12990
12991 2002-04-03  David S. Miller  <davem@redhat.com>
12992
12993         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
12994         little-endian.
12995         (set_fast_math): Correct 'fsr' type.
12996
12997 2002-04-03  Richard Henderson  <rth@redhat.com>
12998
12999         PR opt/3569
13000         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
13001         * toplev.c (check_global_declarations): Use it.
13002         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
13003         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13004         (LANG_HOOKS_DECLS): Add it.
13005         * langhooks.c (lhd_warn_unused_global_decl): New.
13006         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13007         * c-objc-common.c (c_warn_unused_global_decl): New.
13008         * c-tree.h (c_warn_unused_global_decl): Declare.
13009         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13010
13011 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
13012
13013         * langhooks-def.h (lhd_set_decl_assembler_name,
13014         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
13015         (LANG_HOOKS_INITIALIZER): Update.
13016         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
13017         * langhooks.h (struct lang_hooks): New hook.
13018         * tree.c (set_decl_assembler_name): Move to langhooks.c.
13019         (lang_set_decl_assembler_name): Remove.
13020         (init_obstacks): Don't set hook.
13021         (decl_assembler_name): New function.
13022         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
13023         (decl_assembler_name): New.
13024         (lang_set_decl_assembler_name): Remove.
13025
13026 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13027
13028         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
13029         works properly with .hidden symbols.
13030         * configure: Rebuilt.
13031         * config.in: Rebuilt.
13032         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
13033         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
13034         properly with .hidden symbols.
13035
13036 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13037
13038         PR middle-end/6102
13039         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
13040         USE argument.
13041
13042 2002-04-03  Richard Henderson  <rth@redhat.com>
13043
13044         PR opt/4120
13045         * sched-rgn.c (sets_likely_spilled): New.
13046         (sets_likely_spilled_1): New.
13047         (add_branch_dependences): Use it.
13048
13049 2002-04-02  Richard Henderson  <rth@redhat.com>
13050
13051         PR opt/4311
13052         * loop.h (LOOP_FIRST_PASS): New.
13053         * loop.c (strength_reduce): Mind it when deciding to unroll.
13054         * toplev.c (rest_of_compilation): Set it.
13055
13056 2002-04-02  David S. Miller  <davem@redhat.com>
13057
13058         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
13059         mems_ok_for_ldd_peep when the order of the loads being examined
13060         is reversed.
13061         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
13062         existing comment to increase comprehension of this situation.
13063
13064 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
13065
13066         * config/sh/sh.md: Don't use union real_extract.
13067
13068 2002-04-02  Richard Henderson  <rth@redhat.com>
13069
13070         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
13071
13072 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
13073
13074         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
13075         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
13076         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
13077         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
13078         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
13079         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
13080         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
13081         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
13082         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
13083         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
13084         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
13085         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
13086         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
13087         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
13088         Include as many configury headers via tm_file as possible.  This
13089         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
13090         * config/openbsd-oldgas.h: New file.
13091         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
13092         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
13093         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
13094         config/i386/i386-coff.h, config/i386/i386-interix.h,
13095         config/i386/iscdbx.h, config/i386/linux-aout.h,
13096         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
13097         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
13098         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
13099         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
13100         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
13101         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
13102         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
13103         config/i386/vxi386.h: Do not directly include configury headers.
13104         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
13105         Directly include configury headers that are no longer automatically
13106         included by the above headers.
13107         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
13108         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
13109         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
13110         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
13111         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
13112         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
13113         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
13114         (TARGET_VERSION): Define.
13115         * config/i386/beos-elf.h, config/i386/freebsd.h,
13116         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
13117         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
13118         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
13119         config/i386/sco5.h, config/i386/sysv4.h
13120         (TARGET_VERSION): Do not need to protect.
13121         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
13122         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
13123         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
13124         config/i386/i386-interix.h, config/i386/linux-aout.h,
13125         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
13126         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
13127         (YES_UNDERSCORES): Do not define - not needed.
13128         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
13129         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13130         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
13131         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
13132         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13133         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
13134         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
13135         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
13136
13137 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
13138             Richard Henderson  <rth@redhat.com>
13139
13140         PR c/5484
13141         * function.c (assign_temp): Accept either type or decl argument.
13142         Detect variables whose size is too large to fit into an integer.
13143         * stmt.c (expand_decl): Pass the decl, not the type.
13144
13145 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
13146
13147         * protoize.c: Match include directory usage with cppdefault.c.
13148
13149 2002-04-03  Jeffrey A Law  (law@redhat.com)
13150             Hans-Peter Nilsson  <hp@bitrange.com>
13151
13152         * combine.c (simplify_comparison): Avoid narrowing a comparison
13153         with a paradoxical subreg when doing so would drop signficant bits.
13154
13155 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
13156
13157         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
13158         if POINTERS_EXTEND_UNSIGNED is defined.
13159
13160 2002-04-02  Richard Henderson  <rth@redhat.com>
13161
13162         PR opt/3967
13163         * local-alloc.c (contains_replace_regs): LO_SUM may contain
13164         replace regs.
13165
13166 2002-04-02  Richard Henderson  <rth@redhat.com>
13167
13168         * doc/standards.texi: Document required freestanding libc entry points.
13169
13170 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
13171
13172         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
13173         associated splitter.  Remove MQ constraint.
13174         (ctrdi_internal4): Correct CCmode clobber.
13175
13176 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13177
13178         * milli64.S ($$dyncall): New function.
13179         * t-linux (LIB1ASMFUNCS): Revise module list.
13180         (LIB1ASMSRC): Use pa/milli64.S.
13181
13182 2002-04-02  Richard Henderson  <rth@redhat.com>
13183
13184         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
13185         rename solaris_sys_varargs_h.
13186
13187 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13188
13189         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
13190         the same mode as its component.
13191
13192 2002-04-02  Richard Henderson  <rth@redhat.com>
13193
13194         PR opt/190
13195         * final.c (this_is_asm_operands): Export.
13196         * output.h (this_is_asm_operands): Declare.
13197         * config/i386/i386.c (print_operand): Error odd asm operands.
13198
13199 2002-04-02  Richard Henderson  <rth@redhat.com>
13200
13201         PR opt/420
13202         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
13203
13204 2002-04-01  Richard Henderson  <rth@redhat.com>
13205
13206         PR target/1538
13207         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
13208         * fixinc/fixincl.x: Rebuild.
13209
13210 2002-04-01  Richard Henderson  <rth@redhat.com>
13211
13212         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
13213         (atomic_alloc, atomic_free): New.
13214         (SIZE, MASK_FOR, PTR_IN): New.
13215         (emergency_reg_state, emergency_reg_state_free): New.
13216         (emergency_labeled_state, emergency_labeled_state_free): New.
13217         (reg_state_alloced, labeled_state_alloced): New.
13218         (alloc_reg_state, free_reg_state): New.
13219         (alloc_label_state, free_label_state, free_label_states): New.
13220         (push, pop, dup_state_stack, free_state_stack): Use them.
13221         (desc_label_state): Likewise.
13222         (uw_frame_state_for): Free label states and state stack.
13223         (uw_update_reg_address): Eliminate warnings.
13224
13225 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
13226
13227         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
13228         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
13229
13230 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13231
13232         * c-decl.c (grokdeclarator): Update.
13233         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
13234         * c-tree.h (c_mark_addressable): New.
13235         * c-typeck.c (default_function_array_conversion, build_unary_op,
13236         build_array_ref, convert_for_assignment): Update.
13237         (mark_addressable): Rename.
13238         * calls.c (try_to_integrate, expand_call): Use langhook.
13239         * expr.c (expand_expr): Use langhook.
13240         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
13241         * langhooks.h (struct lang_hooks): New hook.
13242         * stmt.c (expand_asm_operands): Use langhook.
13243         * tree.h (mark_addressable): Remove.
13244 objc:
13245         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
13246
13247 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
13248
13249         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
13250         in previous change.
13251
13252 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
13253
13254         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
13255         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
13256
13257 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13258
13259         * c-common.c (unsigned_conversion_warning, convert_and_check,
13260         unsigned_type, signed_type, shorten_compare,
13261         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
13262         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
13263         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
13264         New.
13265         * c-decl.c (grokdeclarator): Update.
13266         * c-format.c (check_format_types): Update.
13267         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
13268         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
13269         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
13270         * convert.c (convert_to_integer): Use new hooks.
13271         * expmed.c (make_tree): Use new hooks.
13272         * expr.c (store_expr): Use new hooks.
13273         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
13274         all_ones_mask_p, unextend, fold): Use new hooks.
13275         * langhooks.h (struct lang_hooks_for_types): New hooks.
13276         * tree.h (signed_or_unsigned_type, signed_type,
13277         unsigned_type): Remove.
13278 objc:
13279         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
13280         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
13281
13282 2002-03-31  Richard Henderson  <rth@redhat.com>
13283
13284         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
13285         (desc_frgr_mem): Fix reference to f16-f31.
13286
13287 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13288
13289         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
13290         RTVEC_ELT): Const-ify.
13291         * varray.h (VARRAY_CHECK): Const-ify.
13292         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
13293         ggc_mark_rtvec, ggc_mark): Const-ify.
13294
13295 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13296
13297         * diagnostic.c: Include langhooks-def.h.
13298         * Makefile.in (diagnostic.o): Update.
13299
13300 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
13301
13302         * c-common.c (c_unsafe_for_reeval): Rename.
13303         * c-common.h (c_unsafe_for_reeval): Rename.
13304         * c-decl.c (finish_incomplete_decl): Rename.
13305         (c_init_decl_processing): Don't set langhook.
13306         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
13307         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
13308         * c-objc-common.c (c_objc_common_init): Don't set langhook.
13309         * c-tree.h (finish_incomplete_decl): Rename.
13310         * langhooks-def.h (lhd_unsafe_for_reeval): New.
13311         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
13312         (LANG_HOOKS_INITIALIZER): Update.
13313         * langhooks.c (lhd_unsafe_For_reeval): New.
13314         * langhooks.h (struct langhooks): New hooks.
13315         * toplev.c (incomplete_decl_finalize_hook): Remove.
13316         (wrapup_global_declarations): Update.
13317         * tree.c (lang_unsafe_for_reeval): Remove.
13318         (unsafe_for_reeval): Update.
13319         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
13320         Remove.
13321 objc:
13322         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
13323         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
13324
13325 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
13326
13327         * diagnostic.c (print_error_function): Remove.
13328         (default_print_error_function): Rename.
13329         (report_error_function): Update.
13330         * diagnostic.h (print_error_function): Remove.
13331         (default_print_error_function): Remove.
13332         * langhooks-def.h (struct diagnostic_context): Predeclare.
13333         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
13334         (LANG_HOOKS_INITIALIZER): Update.
13335         * langhooks.h (struct diagnostic context): Predeclare.
13336         (struct lang_hooks): New hook.
13337
13338 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13339
13340         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
13341         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
13342         !flag_pic.
13343         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
13344         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
13345         of PIC_OFFSET_TABLE_REGNUM thruout.
13346         * config/rs6000/rs6000.md: Likewise.
13347         * config/rs6000/darwin.h: Likewise.
13348
13349 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13350
13351         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
13352         unsigned HOST_WIDE_INT, not unsigned int.
13353
13354 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13355
13356         PR middle-end/6096, middle-end/6098, middle-end/6099
13357         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
13358         CODE_LABELs.
13359         (fill_slots_from_thread): Likewise.
13360
13361 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13362
13363         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
13364         floating fields in float regs.
13365         (function_arg_record_value_2): Likewise.
13366
13367 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
13368
13369         * config/mmix/mmix.md (define_constants): Remove misleading
13370         FIXME.  Add MMIX_fp_rO_OFFSET.
13371         ("nonlocal_goto_receiver"): Don't have stack-frame address of
13372         saved rO as part of the pattern.  Remove FIXME.
13373         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
13374         here, at output-time.
13375
13376 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13377
13378         PR middle-end/6100
13379         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
13380         REG_BR_PRED.
13381         (output_v9branch): Likewise.
13382
13383 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
13384
13385         * gcc.c: Revert previous patch for now.
13386         * config/i386/djgpp.h: Likewise.
13387
13388 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
13389
13390         * config/mmix/crti.asm (_init): Register _fini with atexit.
13391         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
13392
13393 2002-03-31  Richard Henderson  <rth@redhat.com>
13394
13395         PR target/3997
13396         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
13397         (ASM_OUTPUT_DEF_FROM_DECLS): New.
13398
13399 2002-03-31  Richard Henderson  <rth@redhat.com>
13400
13401         * libgcc2.c (__bb_exit_func): Make static.
13402
13403         * config/alpha/alpha.md (trap): New.
13404
13405 2002-03-31  Richard Henderson  <rth@redhat.com>
13406
13407         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
13408         promoted argument types; build trap.
13409         (expand_builtin_trap): New.
13410         (expand_builtin): Use it.
13411         * stmt.c (expand_nl_goto_receivers): Likewise.
13412         * expr.h (expand_builtin_trap): Declare.
13413         * libfuncs.h (LTI_abort, abort_libfunc): New.
13414         * optabs.c (init_optabs): Init abort_libfunc.
13415
13416 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
13417
13418         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
13419         (LINK_COMMAND_SPEC): ... from here.
13420         (init_gcc_specs): Duplicate it here too, omitting
13421         shared_name in the second copy.
13422         (init_spec): Test for duplicate
13423         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
13424
13425 2002-03-30  David S. Miller  <davem@redhat.com>
13426
13427         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
13428         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
13429
13430 2002-03-30  Roger Sayle <roger@eyesopen.com>
13431             Richard Henderson  <rth@redhat.com>
13432
13433         * regmove.c (combine_stack_adjustments_for_block): Avoid
13434         emitting a stack adjustment of zero bytes.  Let delete_insn
13435         update bb->head.
13436
13437 2002-03-30  Richard Henderson  <rth@redhat.com>
13438
13439         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
13440         (sparc_emitting_epilogue): New.
13441         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
13442         * config/sparc/sparc-protos.h: Update.
13443         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
13444         (TARGET_SWITCHES): Update.
13445         * config/sparc/sparc.md (return): Remove.
13446         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
13447         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
13448         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
13449         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
13450         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
13451         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
13452         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
13453         Remove MASK_EPILOGUE.
13454         * doc/invoke.texi: Update.
13455
13456 2002-03-30  Daniel Berlin  <dan@dberlin.org>
13457
13458         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
13459         CPP will start the file for us.
13460
13461 2002-03-30  Richard Henderson  <rth@redhat.com>
13462
13463         PR target/5446
13464         * config/ia64/ia64.c (group_barrier_needed_p): Special case
13465         prologue_allocate_stack.
13466         (ia64_single_set): Use insn codes for recognition of special
13467         cases, not rtl matching.
13468         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
13469
13470 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
13471
13472         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
13473
13474 2002-03-30  Richard Henderson  <rth@redhat.com>
13475
13476         PR target/6032
13477         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
13478         or -fomit-frame-pointer with profiling.
13479         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
13480         (FUNCTION_PROFILER): Do nothing.
13481         (PROFILE_HOOK): New.
13482         * config/sparc/sparc.c (sparc_override_options): Don't check
13483         code models for profiling.
13484         (sparc_function_profiler): Remove.
13485         (sparc_profile_hook): New.
13486         * config/sparc/sparc-protos.h: Update.
13487
13488 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
13489
13490         PR optimization/6086
13491         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
13492         of SUBREG of volatile MEM or because the MEM was mode dependent,
13493         return CLOBBER instead of unmodified SUBREG.
13494
13495 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13496
13497         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
13498         when not optimizing.
13499
13500         * toplev.c (rest_of_compilation): Cann mark_constant_function
13501         only when optimizing.
13502
13503         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
13504         are NULL.
13505
13506         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
13507         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
13508         (try_optimize_cfg): clear all AUX fields.
13509
13510         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
13511         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
13512         (ix86_address_cost): Be prepared for SUBREGed registers.
13513         (legitimate_address_p): Accept SUBREGed registers.
13514
13515 2002-03-29  Richard Henderson  <rth@redhat.com>
13516
13517         PR target/5672
13518         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
13519
13520 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13521
13522         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
13523         for aggregate and TFmode types.
13524
13525 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
13526
13527         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
13528
13529 2002-03-29  Richard Henderson  <rth@redhat.com>
13530
13531         PR target/5886
13532         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
13533         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
13534
13535 2002-03-29  Richard Henderson  <rth@redhat.com>
13536
13537         PR target/6041
13538         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
13539         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
13540         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
13541         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
13542         conditional.
13543         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
13544
13545 2002-03-29  Dale Johannesen <dalej@apple.com>
13546
13547         * loop.c (combine_movables): Do allow combination of pseudos.
13548
13549 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
13550
13551         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
13552         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
13553         No functional change except ...
13554         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
13555         * doc/install.texi (*-*-freebsd*): Document port configuration.
13556
13557 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13558
13559         * Makefile.in (convert.o, calls.o, expmed.o): Update.
13560         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
13561         Use new hooks.
13562         * builtin-types.def (BT_PTRMODE): Update.
13563         * c-common.c (type_for_size): Rename c_common_type_for_size.
13564         (type_for_mode): Similarly.
13565         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
13566         Use new hook.
13567         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
13568         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
13569         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
13570         Redefine.
13571         * c-typeck.c (common_type, comptypes, default_conversion):
13572         Use new hooks.
13573         * calls.c: Include langhooks.h.
13574         (emit_library_call_value_1): Use new hooks.  Avoid redundant
13575         calls.
13576         * convert.c: Include langhooks.h
13577         (convert_to_pointer, convert_to_integer): Use new hooks.
13578         * except.c (init_eh): Similarly.
13579         * expmed.c: Include langhooks.h.
13580         (expand_mult_add): Use new hooks.
13581         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
13582         try_casesi): Similarly.
13583         * fold-const.c (optimize_bit_field_compare, make_range,
13584         decode_field_reference, fold_truthop, fold): Similarly.
13585         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
13586         put_var_into_stack): Similarly.
13587         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
13588         LANG_HOOKS_TYPE_FOR_SIZE): New.
13589         (LANG_HOOKS_TYPES_INITIALIZER): Update.
13590         * langhooks.h (lang_hooks_for_types): New hooks.
13591         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
13592         * tree.c (get_unwidened, get_narrower): Similarly.
13593         * tree.h (type_for_mode, type_for_size): Remove.
13594         * varasm.c (force_const_mem): Use new hooks.
13595         * utils2.c (nonbinary_modular_operation): Update.
13596 objc:
13597         * objc-act.c (handle_impent): Update.
13598         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
13599         Redefine.
13600
13601 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
13602
13603         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
13604         * config/ia64/ia64.c (basereg_operand): New.
13605         * config/ia64/ia64-protos.h (basereg_operand): Declare.
13606         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
13607
13608 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
13609
13610         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
13611         unwind information when frame_pointer_needed.
13612         (mmix_assemble_integer): Tweak wording in comment.
13613
13614 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13615
13616         * Makefile.in (except.o): Update.
13617         * except.c: Include langhooks.h.
13618         (init_eh): Use langhook.
13619         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
13620         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
13621         (LANG_HOOKS_INITIALIZER): Update.
13622         * langhooks.h (lang_hooks_for_types): New.
13623         (struct lang_hooks): Add it.
13624         * tree.c (make_lang_type_fn, make_lang_type): Remove.
13625         * tree.h (make_lang_type_fn, make_lang_type): Remove.
13626 config:
13627         * alpha/alpha.c: Include langhooks.h.
13628         (alpha_build_va_list): Use langhook.
13629         * d30v/d30v.c: Include langhooks.h.
13630         (d30v_build_va_list): Use langhook.
13631         * i386/i386.c: Include langhooks.h.
13632         (ix86_build_va_list): Use langhook.
13633         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
13634         * s390/s390.c: Include langhooks.h.
13635         (s390_build_va_list): Use langhook.
13636         * stormy16/stormy16.c: Include langhooks.h.
13637         (stormy16_build_va_list): Use langhook.
13638
13639 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
13640
13641         PR c++/5964
13642         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
13643         attributes.
13644         (length): Compute variable length for branches/calls/jumps here.
13645         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
13646         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
13647         define branch_type attribute.
13648         (divsi3_sp32): Maximum length is 6 not 7.
13649         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
13650         call_address_untyped_struct_value_sp32,
13651         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
13652         * config/sparc/sparc.c (empty_delay_slot): New function.
13653         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
13654         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
13655
13656 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
13657
13658         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
13659         nonzero_bits if not needed.
13660         (nonzero_bits) [XOR]: Likewise.
13661         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
13662         reg_last_set_mode and mode are both MODE_INT, but not equal.
13663         (record_value_for_reg): Compute reg_last_set_nonzero_bits
13664         in nonzero_bits_mode for MODE_INT modes.
13665
13666 2002-03-28  Richard Henderson  <rth@redhat.com>
13667
13668         PR target/5715
13669         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
13670         to GAS.  Correct drift between alternatives.
13671
13672 2002-03-28  Richard Henderson  <rth@redhat.com>
13673
13674         PR target/6087
13675         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
13676
13677 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
13678
13679         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
13680         emulation to the linker.
13681
13682 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
13683
13684         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
13685         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
13686
13687 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
13688
13689         * combine.c (simplify_and_const_int): Make sure to apply mask
13690         when force_to_mode returns a constant integer.  PR3311.
13691
13692 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13693
13694         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
13695
13696 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13697
13698         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
13699         and Objective-C Dialect Options.
13700
13701 2002-03-28  Richard Henderson  <rth@redhat.com>
13702
13703         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
13704         comparison should be done vs !=0 not >0 return code.  Tidy cases.
13705
13706 2002-03-28  Richard Henderson  <rth@redhat.com>
13707
13708         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
13709         on to c_expand_body.
13710         * c-tree.h (finish_function): Update decl.
13711         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
13712
13713 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13714
13715         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
13716
13717 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
13718
13719         * rtlanal.c: Include flags.h
13720         (may_trap_p): Do not mark FP operations if trapping
13721         if !flag_trapping_math
13722         * Makefile.in (rtlanal.o): Add dependency on flag.h
13723         * ifcvt.c (noce_operand_ok): Avoid the lameness.
13724
13725 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
13726
13727         * mips.md: Use dconst1, not 1.0, as first argument of
13728         REAL_VALUE_LDEXP.  Don't use union real_extract.
13729
13730 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
13731
13732         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
13733         rather than $target.  Heed program_prefix and
13734         program_transform_name.  Search for gas in cross-compiler case too.
13735         "test -x" rather than "test -f".
13736         (gcc_cv_ld): Likewise.
13737         (gcc_cv_nm): Heed program_prefix and program_transform_name.
13738         (gcc_cv_objdump): Likewise.
13739         * configure: Regenerate.
13740
13741 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13742
13743         * Makefile.in (attribs.o): Update.
13744         * attribs.c: Include langhooks.h.
13745         (decl_attributes): Use langhook.
13746         * c-decl.c (insert_default_attributes): Rename.
13747         * c-tree.h (c_insert_default_attributes): New.
13748         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
13749         (LANG_HOOKS_INITIALIZER): Update.
13750         * langhooks.h (struct lang_hooks): New hook.
13751         * tree.h (insert_default_attributes): Remove.
13752 objc:
13753         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
13754
13755 2002-03-27  Andreas Schwab  <schwab@suse.de>
13756
13757         * config/i386/i386.c (classify_argument): Also check for
13758         QUAL_UNION_TYPE.
13759
13760 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13761
13762         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
13763         any more.
13764
13765 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13766
13767         * i960.md (ret): Set PC.
13768         (nonlocal_goto): Fix expander.
13769         * builtins.c (epxand_builin_longjmp): Check that we've emitted
13770         some jump or call.
13771
13772 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
13773
13774         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
13775         of libcall regions.
13776
13777 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13778
13779         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
13780         assigning to BLOCK_FOR_INSN directly.
13781
13782 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
13783
13784         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
13785
13786 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13787
13788         * c-common.c (c_expand_expr): Fix prototype.
13789         * c-common.h (c_expand_expr): Always declare, update.
13790         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
13791         * c-objc-common.c (c_objc_common_init): No global hook.
13792         * expr.c (expand_expr): Use langhook.
13793         * expr.h (enum expand_modifier): Conditionally declare.
13794         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
13795         (LANG_HOOKS_INITIALIZER): Update.
13796         * langhooks.c (lhd_expand_expr): New.
13797         * langhooks.h (struct lang_hooks): New hook.
13798         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
13799         (lang_independent_init): Don't default hook.
13800 objc:
13801         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
13802
13803 2002-03-27  Richard Henderson  <rth@redhat.com>
13804
13805         PR target/6054
13806         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
13807         TARGET_CONST_GP.  Simplify conditions.
13808
13809 2002-03-27  Richard Henderson  <rth@redhat.com>
13810
13811         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
13812         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
13813         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
13814
13815 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
13816
13817         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
13818         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
13819         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
13820         Remove unnecessary masks.
13821         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
13822         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
13823         -mwindows, -mdll switches and their negations.
13824
13825 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13826
13827         * gcc-common.c (lang_mark_false_label_stack): Remove.
13828         * ggc.h (lang_mark_false_label_stack): Similarly.
13829
13830 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
13831
13832         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
13833
13834         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
13835         or __rtems_ is defined.
13836
13837 2002-03-26  Richard Henderson  <rth@redhat.com>
13838
13839         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
13840         if a non-trivial load was emitted.
13841         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
13842         in high+extra+low case.
13843
13844 2002-03-26  Richard Henderson  <rth@redhat.com>
13845
13846         * config.gcc (sparc*-solaris): Use float_format=sparc.
13847
13848 2002-03-26  Richard Henderson  <rth@redhat.com>
13849
13850         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
13851         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
13852         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
13853         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
13854         (WINT_TYPE_SIZE): Fix at 32.
13855
13856 2002-03-26  Richard Henderson  <rth@redhat.com>
13857
13858         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
13859         until after eh landing pad generation.
13860         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
13861         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
13862
13863 2002-03-26  Richard Henderson  <rth@redhat.com>
13864
13865         * expr.h (ADD_PARM_SIZE): One more convert for INC.
13866
13867 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
13868
13869         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
13870         and warning switches.
13871         (cc1_options):  Likewise.
13872
13873 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
13874
13875         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
13876         Restore more of the signal context.  Set no_reg_stack_frame.
13877         * config/ia64/unwind-ia64.c (unw_state_record):
13878         Add no_reg_stack_frame, comments.
13879         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
13880         (uw_update_context): Adjust bsp when unwinding from leaf,
13881         but not signal frame.
13882
13883 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
13884
13885         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
13886
13887 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
13888
13889         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
13890
13891 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
13892
13893         PR target/5621
13894         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
13895         "Add a pool_range attribute", which was lost during the ARM/Thumb
13896         merge.
13897
13898 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
13899
13900         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
13901         a register into the MAC16 accumulator.
13902
13903 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
13904
13905         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
13906         (Warning Options): Document -Wswitch-enum.
13907         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
13908         -Wswitch.
13909         (warn_switch_enum): Define variables.
13910         * flags.h (warn_switch_enum): Declare variables.
13911         * stmt.c (expand_end_case_type): When warn_switch_enum /
13912         -Wswitch-enum, perform switch checks.
13913         Fix PR c/5044.
13914
13915 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
13916
13917         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
13918         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
13919         (reload_muladdsi_compare0_scratch): Delete.
13920
13921 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
13922
13923         * doc/install.texi (*-*-freebsd*): Update.
13924
13925 2002-03-26  Richard Henderson  <rth@redhat.com>
13926
13927         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
13928         (SUB_PARM_SIZE): Cast DEC to ssizetype.
13929
13930         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
13931         types from the normal argument frame.
13932
13933         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
13934         variable sized objects by reference.
13935         (sparc_va_arg): Receive them by reference too.
13936
13937 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
13938
13939         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
13940         code to not restoring global registers.
13941
13942 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
13943
13944         * Makefile.in (ggc-common.o): Update.
13945         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
13946         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
13947         * c-tree.h (c_mark_tree): New.
13948         * ggc-common.c: Include langhooks.h.
13949         (gcc_mark_trees): Use new langhook.
13950         * ggc-callbacks.c: Delete file.
13951         * ggc.h (lang_mark_tree): Remove.
13952         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
13953         (LANG_HOOKS_INITIALIZER): Update.
13954         * langhooks.h (struct lang_hooks): New hook.
13955 objc:
13956         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
13957
13958 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
13959
13960         * doc/cpp.texi: Exclude entire Top node from printed manual.
13961         Move option index after directive index.  Insert page breaks
13962         before GFDL and concept index.  Index environment variables
13963         with command line options.
13964         * doc/cppenv.texi: Use @vtable for environment variable list.
13965         Add paragraph explaining semantics of empty elements in path
13966         variables.  Exclude a cross-reference to Fishkill from the
13967         manpage.  Remove an unnecessary cross-reference of the entry
13968         right above the referer.  Don't use @anchor in text that goes
13969         into manpage.
13970         * doc/cppopts.texi: Cross-reference the environment variables
13971         section, not the specific environment variable, for consistency.
13972
13973 2002-03-25  Richard Henderson  <rth@redhat.com>
13974
13975         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
13976         anywhere in the block.  Don't refer to insns that have been
13977         removed from the chain.  Iterate backward through the new insns.
13978         Don't refer to edges that have been removed.
13979
13980 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
13981
13982         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
13983         test for overflow of constant.
13984
13985 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
13986
13987         PR target/2623
13988         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
13989         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
13990         these patterns on arm_archv4.
13991
13992 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
13993
13994         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
13995         int".
13996
13997 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
13998
13999         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
14000         float_handled, float_handler, float_signal, set_float_handler,
14001         and do_float_handler.  Set handler for SIGFPE to crash_signal.
14002         * toplev.h: Don't prototype do_float_handler.
14003
14004         * c-lex.c: Fold parse_float into lex_number.  Make warning
14005         about portability of hex float constants more informative, and
14006         don't issue it on top of a syntax error.
14007         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
14008         their callers.
14009         * real.h: Define REAL_VALUE_ABS here...
14010         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
14011         simplify_unary_real, simplify_binary_real, and
14012         simplify_binary_is2orm1 into their callers.
14013         * tree.c: Fold build_real_from_int_cst_1 into caller.
14014
14015         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
14016
14017         * tsystem.h: Include float.h here...
14018         * libgcc2.c: ... not here.
14019
14020 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
14021
14022         Fixes for: PR bootstrap/3591, target/5676
14023         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
14024         defined.  Do not disable exceptions or rtti.
14025         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
14026         mcore.h.  Disable exceptions and rtti, since they are not
14027         supported by EPOC.
14028
14029 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
14030
14031         * c-decl.c (maybe_build_cleanup): Remove.
14032         * expr.c (expand_expr): Use langhook.
14033         * langhooks-def.h (lhd_return_null_tree,
14034         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
14035         (LANGHOOKS_INITIALIZER): Update.
14036         * langhooks.c (lhd_return_null_tree): New.
14037         * langhooks.h (struct lang_hooks): New hook.
14038         * tree-inline.c (initialize_inlined_parameters): Use langhook.
14039         * tree.h (maybe_build_cleanup): Remove.
14040
14041 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14042
14043         * regrename.c (build_def_use): Move recog_memoized
14044         before extract_insn.
14045
14046 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14047
14048         PR target/6043
14049         * expr.c (emit_group_store): Handle storing into CONCAT.
14050
14051 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14052
14053         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
14054         corresponding MATCH_DUP.
14055
14056 2002-03-24  Richard Henderson  <rth@redhat.com>
14057
14058         * unroll.c (unroll_loop): Zero label_map.
14059
14060         * gcse.c: Include except.h.
14061         * Makefile.in (gcse.o): Update.
14062
14063 2002-03-24  Richard Henderson  <rth@redhat.com>
14064
14065         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
14066         Do resolve_unique_section before shared data clause.
14067
14068 2002-03-24  Richard Henderson  <rth@redhat.com>
14069
14070         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
14071
14072 2002-03-24  Richard Henderson  <rth@redhat.com>
14073
14074         * recog.c (peephole2_optimize): Split blocks when EH insns are
14075         generated in the middle of a block.  Do global life update if
14076         zapped EH edges.
14077
14078 2002-03-24  Richard Henderson  <rth@redhat.com>
14079
14080         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
14081
14082 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14083
14084         preprocessor/3951
14085         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
14086         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
14087         (init_dependency_output): Don't make no_output decision here.
14088
14089 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
14090
14091         * stmt.c (check_for_full_enumeration_handling): Remove tests of
14092         warn_switch.  Update description.
14093         (expand_end_case_type): Call check_for_full_enumeration_handling
14094         when warn_switch.
14095
14096 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14097
14098         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
14099         (m68hc11_split_move): Call it to see if the source and destination
14100         operands use the same direction auto inc/dec mode, otherwise make the
14101         source an offsetable memory operand and generate an add.
14102
14103 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14104
14105         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
14106         register for operand 2.
14107         ("*subsi3_zero_extendqi"): Likewise.
14108         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
14109         bits so that it is compatible with a pop.
14110         ("*andhi3_gen"): Likewise.
14111         ("xorhi3"): Likewise.
14112
14113 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14114
14115         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
14116         -pedantic here...
14117         (cpp_post_options): ... not here.
14118
14119 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14120             Aldy Hernandez  <aldyh@redhat.com>
14121
14122         Removal of separate preprocessor cpp0.
14123
14124         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
14125         cpp0, install-common): Update.
14126         * c-common.c (flag_preprocess_only): New.
14127         (c_common_init): Preprocess for -E.
14128         * c-common.h (flag_preprocess_only): New.
14129         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
14130         * c-objc-common.c (c_init_decl_processing): Exit quickly
14131         for NULL return from c_common_init.
14132         * cpplib.h (cpp_preprocess_file): New.
14133         * cppmain.c (main, general_init, pfile, progname): Remove.
14134         (do_preprocessing): Rename cpp_preprocess_file, don't call
14135         cpp_finish.  Don't close stdout here.
14136         (setup_callbacks): Update prototype.
14137         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
14138         Update.
14139         * tradcpp.c (main): Ignore -quiet.
14140 objc:
14141         * lang-specs.h (default_compilers): Preprocess with cc1obj.
14142
14143 2002-03-24  Richard Henderson  <rth@redhat.com>
14144
14145         PR optimization/5742
14146         * machmode.def: Add inner mode field to complex modes.
14147         * config/mips/mips.c (mips_function_value): Always define.  Add
14148         new argument to handle libcalls.
14149         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
14150         (FUNCTION_VALUE): Likewise.
14151         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
14152         * config/mips/mips-protos.h: Update.
14153
14154 2002-03-23  Richard Henderson  <rth@redhat.com>
14155
14156         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
14157         * config/sparc/sparc-protos.h: Update.
14158         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
14159
14160 2002-03-23  Richard Henderson  <rth@redhat.com>
14161
14162         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
14163         _start or _init begins the text segment.
14164
14165 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
14166
14167         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
14168         not HOST_WIDEST_INT.
14169         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
14170
14171 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
14172
14173         PR java/5489
14174         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
14175         operand argument to output_return_instruction.
14176         * arm.c (arm_print_operand, case 'd'): If the operand is
14177         const_true_rtx then just return.
14178         (arm_print_operand, case 'D'): If the operand is const_true_rtx
14179         then abort.
14180
14181 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
14182
14183         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
14184         (Warning Options): Document -Wswitch-default.
14185         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
14186         -Wswitch.
14187         (warn_switch_default): Define variable.
14188         (warn_switch): Update comment.
14189         * flags.h (warn_switch_default): Declare variable.
14190         (warn_switch): Update comment.
14191         * stmt.c (expand_end_case): Check for and, when
14192         warn_switch_no_default, warn of a missing default case.
14193
14194 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
14195
14196         * real.h (N): Special case 128 bit doubles.
14197
14198         * combine.c (simplify_comparison): When widening modes, ignore
14199         sign extension on CONST_INTs.
14200
14201 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
14202
14203         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
14204         passed to adjust_address.  Fix comment formatting.
14205
14206
14207 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
14208
14209         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
14210         Always make REAL_VALUE_TYPE a struct containing an array of
14211         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
14212         big it is.  Don't declare or use union real_extract.
14213
14214         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
14215         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
14216         (print_operand), config/arm/arm.c (output_move_double),
14217         config/arm/arm.md (consttable_4, consttable_8),
14218         config/romp/romp.c (output_fpops), config/s390/s390.h
14219         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
14220         (xtensa_output_literal): Don't use union real_extract.
14221
14222         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
14223         (sfmode_constant_to_ulong), config/ns32k/merlin.h
14224         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
14225         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
14226         (PRINT_OPERAND): Don't use local version of union
14227         real_extract.
14228
14229         * config/convex/convex.c (check_float_value), config/vax/vax.c
14230         (vax_float_literal), config/m88k/m88k.md (divdf3),
14231         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
14232         config/pdp11/pdp11.c (output_move_quad): Don't do host
14233         arithmetic on target floating point quantities.
14234
14235         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
14236         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
14237
14238         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
14239         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
14240
14241         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
14242         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
14243         INFINITY.
14244         * print-rtl.c (print_rtx): Disable code which needs
14245         floating-point emulator.
14246         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
14247         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
14248         depending on HOST_FLOAT_FORMAT to be defined properly.
14249
14250         * config/1750a/1750a.c (get_double, float_label): Delete.
14251         (print_operand): Delete huge commented-out chunk.  Use
14252         REAL_VALUE_TO_DECIMAL.
14253         * config/1750a/1750a-protos.h: Delete prototypes of deleted
14254         functions.
14255         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
14256         IEEE_FLOAT_FORMAT.
14257         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
14258         Use REAL_VALUE_TO_DECIMAL as ELF version does.
14259         * config/m88k/m88k.c (real_power_of_2_operand,
14260         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
14261         real_extract out of the union; run the input through
14262         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
14263         from that into the union.
14264         * config/pdp11/pdp11.c (output_move_double): Rearrange
14265         parentheses to make automatic indenter happy.
14266
14267         * doc/tm.texi (Cross-compilation): Rename node to "Floating
14268         Point" and rewrite to describe current situation.  Also adjust
14269         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
14270         match code.
14271         * doc/rtl.texi: Adjust cross reference.
14272
14273 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
14274
14275         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
14276         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
14277         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
14278         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
14279         prevent use of sp as a reload register.
14280         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
14281         non_acc_reg_operand.
14282         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
14283         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
14284         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
14285         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
14286
14287 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
14288
14289         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
14290         * cpplex.c (unterminated): Delete.
14291         (parse_string): No string literal may extend over multiple
14292         lines.  Suppress the error when preprocessing assembly.
14293         * cppmain.c (scan_translation_unit): Strings are single-line.
14294
14295         * doc/cpp.texi: Update to match.
14296
14297 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
14298
14299         PR optimization/5854
14300         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
14301         Shut up warnings.
14302         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
14303         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
14304         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
14305         const0 if scratch register was not allocated.
14306         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
14307         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
14308         with GEN_INT (...).
14309         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
14310         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
14311         with GEN_INT (...) everywhere.  Remove constraints in define_split
14312         patterns.
14313         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
14314         require scratch register for setting 0 into regs/non-pushable memory.
14315
14316 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
14317
14318         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
14319         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
14320
14321 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
14322
14323         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
14324         * cppinit.c (cpp_create_reader):  On by default.
14325         (cpp_handle_option):  Handle -W[no-]endif-labels.
14326         (cpp_post_options):  Also enable if -pedantic.
14327         * cpplib.c (do_else):  Use it.
14328         (do_endif):  Likewise.
14329         * doc/cppopts.texi:  Document new option.
14330         * doc/invoke.texi:  Document new option.
14331
14332 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
14333
14334         * config/i386/i386.c, config/i386/i386.md: Change all occurences
14335         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
14336
14337 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
14338
14339         * flow.c (calculate_global_regs_live): Clear aux fields of
14340         ENTRY and EXIT.
14341
14342 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
14343
14344         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
14345         REG or MEM subregs, pass rtx * instead of rtx to it.
14346         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
14347         rtx * instead of rtx to alter_subreg.
14348         * config/m32r/m32r.c (gen_split_move_double): Likewise.
14349         * config/pj/pj.c (pj_output_rval): Likewise.
14350
14351 2002-03-22  Richard Henderson  <rth@redhat.com>
14352
14353         PR target/3177
14354         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
14355         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
14356         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
14357         (ia64_expand_prologue): Look at int_regs, not words, for number
14358         of incomming int regs.
14359
14360 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
14361
14362         * expr.c (expand_expr): A RESULT_DECL is part of a call.
14363
14364 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
14365
14366         * toplev.c (flag_loop_optimize, flag_crossjumping):
14367         New static variables.
14368         (rest_of_compilation): Conditionalize crossjumping and
14369         loop optimizer.
14370         (parse_options_and_default_flags): Default loop_optimize and
14371         crossjumping.
14372         (lang_independent_options): Add -fcrossjumping and -floop-optimize
14373         * invoke.texi (crossjumping, loop-optimize): Document.
14374
14375 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14376
14377         * real.c (eiisneg): Move outside #ifdef NANS.
14378
14379 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
14380
14381         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
14382         frequencies match; avoid match on different loop depths.
14383         (try_crossjump_to_bb): Kill tests that no longer brings time
14384         savings.
14385         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
14386         updating code.
14387         (split_edge): Likewise.
14388
14389         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
14390         variable.
14391
14392         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
14393         * cfgrtl.c: Include insn-config.h
14394         (split_block) Dirtify block in presence of conditional execution
14395
14396 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14397
14398         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
14399         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
14400         (function_arg): Constify CUMULATIVE_ARGS.
14401         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
14402         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
14403         (UNITS_PER_DOUBLE): New macro.
14404         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
14405         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
14406         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
14407         fp_regs and stack_words.
14408         (EABI_FLOAT_VARARGS_P): New macro.
14409         * config/mips/mips.c (struct mips_arg_info): New.
14410         (mips_arg_info): New function.
14411         (function_arg_advance): Use it.  Add adjustment instructions here
14412         rather than in function_arg.
14413         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
14414         for VOIDmode at the beginning of the function.
14415         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
14416         (function_arg_pass_by_reference): Likewise.
14417         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
14418         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
14419         (mips_va_start): Likewise.  Use the new stack_words field of
14420         CUMULATIVE_ARGS to set up overflow area.  Reformat.
14421         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
14422         doubles and other types, aligning the overflow pointer for non-doubles
14423         too.  Remove some code duplication.  Replace hard-coded constants.
14424
14425 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14426
14427         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
14428         (CLASS_UNITS): Undefine.
14429         (CLASS_MAX_NREGS): Use FP_INC.
14430         * config/mips/mips.c (compute_frame_size): Likewise.
14431         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
14432
14433 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
14434
14435         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
14436         prototype, and handle lexing numbers and identifiers.
14437         (parse_identifier): Update to new form of parse_slow.
14438         (parse_number): Fast path only, use parse_slow otherwise.
14439         (_cpp_lex_direct): Update calls to parse_number.
14440
14441 2002-03-21  DJ Delorie  <dj@redhat.com>
14442
14443         * bb-reorder.c (make_reorder_chain_1): Protect against
14444         when redundant edges are omitted.
14445         * predict.c (dump_prediction): Likewise.
14446
14447 2002-03-21  Richard Henderson  <rth@redhat.com>
14448
14449         PR target/5996
14450         * fixinc/inclhack.def (solaris_stdio_tag): New.
14451         * fixinc/fixincl.x: Regenerate.
14452
14453 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
14454
14455         PR c/5597
14456         * c-typeck.c (process_init_element): Flag non-static
14457         initialization of a flexible array member as illegal.
14458
14459 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
14460
14461         * config/rs6000/t-linux64: New.
14462         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
14463         t-ppccomm.  Use t-rs6000 and t-linux64.
14464         (powerpc64-*-gnu* <tmake_file>): Likewise.
14465         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
14466         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
14467         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
14468
14469 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
14470
14471         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
14472         flag_really_no_inline instead of optimize == 0.
14473
14474         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
14475
14476         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
14477
14478         * flags.h (flag_really_no_inline): New.
14479
14480         * c-common.c (c_common_post_options): Initialize
14481         flag_really_no_inline.
14482
14483         * toplev.c (flag_really_no_inline): New.
14484
14485 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
14486
14487         * config/avr/avr.md (length): Fix length computation for
14488         conditional branches.
14489
14490 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
14491
14492         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
14493         sdbout.o, profile.o): Update.
14494         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
14495         langhook.
14496         * c-common.h (gettags): Move here from tree.h.
14497         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
14498         insert_block, getdecls, kept_level_p, global_bindings_p): New.
14499         * dbxout.c (dbxout_init): Use getdecls langhook.
14500         * expr.c (expand_expr): Use insert_block langhook.
14501         * fold-const.c: Include langhooks.h.
14502         (fold_range_test, fold_binary_op_with_conditional_arg,
14503         fold): Use global_bindings_p langhook.
14504         * integrate.c (expand_inline_function): Use insert_block langhook.
14505         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
14506         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
14507         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
14508         LANG_HOOKS_GETDECLS): New.
14509         (LANG_HOOKS_INITIALIZER): Update.
14510         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
14511         langhook.
14512         * langhooks.h (struct lang_hooks_for_decls): New.
14513         (struct lang_hooks): Update.
14514         * profile.c: Include langhooks.h.
14515         (output_func_start_profiler): Use new langhooks.
14516         * sdbout.c: Include langhooks.h.
14517         (sdbout_init, sdbout_finish): Use getdecls langhook.
14518         * stmt.c: Include langhooks.h.
14519         (expand_fixup, fixup_gotos): Use new langhooks.
14520         * stor-layout.c: Include langhooks.h.
14521         (variable_size): Use global_bindings_p langhook.
14522         * toplev.c (compile_file): Use getdecls langhook.
14523         * tree-inline.c (remap_block): Use insert_block langhook.
14524         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
14525         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
14526
14527 2002-03-21  Richard Henderson  <rth@redhat.com>
14528
14529         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
14530         constants in .data when -fpic.
14531
14532 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14533
14534         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
14535         where appropriate.
14536
14537 2002-03-21  Tom Tromey  <tromey@redhat.com>
14538
14539         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
14540
14541 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14542
14543         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
14544
14545         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
14546
14547 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
14548             Richard Henderson  <rth@redhat.com>
14549
14550         PR c/5354
14551         * c-common.c (c_expand_expr): Preserve result of a statement
14552         expression if needed.
14553
14554 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
14555
14556         PR bootstrap/4195
14557         * genrecog.c (maybe_both_true_mode): Remove.
14558         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
14559         * machmode.def (Pmode): Likewise.
14560
14561 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
14562
14563         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
14564         (nonlocal_mentioned_p_1): New function.
14565         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
14566         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
14567         (mark_constant_function): Recognize pure functions.
14568         * rtl.h (global_reg_mentioned_p): New prototype.
14569         * rtlanal.c (global_reg_mentioned_p,
14570         global_reg_mentioned_p_1): New function.
14571
14572 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14573
14574         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
14575         UNIX assert.h.
14576         * fixinc/fixincl.x: Regenerate.
14577
14578 2002-03-20  Jason Merrill  <jason@redhat.com>
14579
14580         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
14581
14582 2002-03-20  Michael Meissner  <meissner@redhat.com>
14583
14584         * doc/invoke.texi (Optimize Options): Document that -O2 sets
14585         -fstrict-aliasing.
14586
14587 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
14588
14589         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
14590         ".literal_position" directive before the constant pool.
14591
14592 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14593
14594         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
14595         Add Craig Rodrigues.
14596         Add Brad Lucier to testers.
14597
14598 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14599
14600         PR target/4792
14601         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
14602         to if_then_else.
14603         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
14604         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
14605         instead of insn_extract.
14606
14607 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14608
14609         PR bootstrap/4192
14610         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
14611
14612         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
14613         stmt if some case has been output.
14614
14615 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14616
14617         PR c/5972
14618         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
14619         movsfcc_1, movdfcc_1): Add %O2.
14620         * config/i386/i386.c (print_operand): Handle %ON.
14621         Print . before float condition codes in Sun as cmov syntax.
14622         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
14623         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
14624         no longer true.
14625
14626 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
14627
14628         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
14629         return instruction if PC was popped.
14630
14631 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
14632
14633         * config/xtensa/xtensa.md: Remove unused type attributes.
14634         (adddi_carry, subddi_carry): Change type attribute to "multi".
14635
14636 2002-03-19  Dale Johannesen  <dalej@apple.com>
14637
14638         PR optimization/5999, middle-end/5731
14639         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
14640         multiplications by reciprocals.
14641
14642 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
14643
14644         * Makefile.in: Update.
14645         * c-common.c: Include langhooks.h.
14646         (inline_forbidden_p): Use new hook.
14647         * diagnostic.c: Include langhooks.h.
14648         (format_with_decl, announce_function,
14649         default_print_error_function): Use new hook.
14650         * dwarf2out.c (dwarf2_name): Use new hook.
14651         * function.c: Include langhooks.h.
14652         (init_function_start): Use new hook.
14653         * langhooks-def.h (lhd_decl_printable_name): New.
14654         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
14655         (LANGHOOKS_INITIALIZER): Update.
14656         * langhooks.c (lhd_decl_printable_name): New.
14657         * langhooks.h (struct lang_hooks): New hook.
14658         * toplev.c (decl_name, decl_printable_name): Remove.
14659         (open_dump_file): Use new hook.
14660         (process_options): Remove old hook.
14661         * tree.h (decl_printable_name): Remove.
14662 objc:
14663         * objc-act.c (objc_init): Remove old hook.
14664         (objc_printable_name): Export.
14665         * objc-act.h (objc_printable_name): New.
14666         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
14667
14668 2002-03-19  Jim Blandy  <jimb@redhat.com>
14669
14670         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
14671         the start_source_file debug hook, not the current line number.
14672
14673 2002-03-19  Richard Henderson  <rth@redhat.com>
14674
14675         * flow.c (EH_USES): Provide default.
14676         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
14677         * doc/tm.texi (EH_USES): New.
14678
14679         * config/ia64/ia64.c (ia64_eh_uses): New.
14680         * config/ia64/ia64-protos.h: Update.
14681         * config/ia64/ia64.h (EH_USES): New.
14682
14683 2002-03-19  Richard Henderson  <rth@redhat.com>
14684
14685         * varasm.c (output_constant_def): Fix stupid typo.
14686
14687 2002-03-19  Richard Henderson  <rth@redhat.com>
14688
14689         PR 5879
14690         * except.c (current_function_has_exception_handlers): New.
14691         * except.h: Declare it.
14692         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
14693         Combine tests that disable all sibcalls for the function.
14694
14695 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
14696
14697         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
14698         for INTEGER_CST.
14699
14700 2002-03-19  Richard Henderson  <rth@redhat.com>
14701
14702         PR 5977, 5991
14703         * config/ia64/ia64.c: Revert 2002-03-01 patch.
14704         * config/ia64/ia64.h (INIT_EXPANDERS): New.
14705
14706 2002-03-19  Jim Blandy  <jimb@redhat.com>
14707
14708         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
14709         name, even if the replacement list contains no tokens, as required
14710         by Dwarf.
14711
14712 2002-03-19  Jason Merrill  <jason@redhat.com>
14713
14714         * varasm.c (globalize_decl): Get the name from the RTL, not
14715         DECL_ASSEMBLER_NAME.
14716
14717         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
14718
14719 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
14720
14721         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
14722         subdi_carry): Define.
14723
14724 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
14725
14726         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
14727         about -fpic/-fPIC if extra_warnings set.
14728
14729 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
14730
14731         * expr.c (expand_expr): Sign-extend CONST_INT generated from
14732         TREE_STRING_POINTER.
14733         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
14734
14735 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14736
14737         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
14738         in favor of SP if FRAME_POINTER_REQUIRED is false.
14739
14740 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
14741
14742         * emit-rtl.c (gen_int_mode): New function.
14743         * rtl.h: Prototype for it.
14744         * combine.c (make_extraction, simplify_comparison), expmed.c
14745         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
14746         (convert_modes, store_field), optabs.c (expand_fix),
14747         simplify-rtx.c (neg_const_int, simplify_unary_real),
14748
14749         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
14750         Use it instead of GEN_INT (trunc_int_for_mode (...)).
14751
14752 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
14753
14754         PR c/5656
14755         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
14756         convert_parm_for_inlining.
14757         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
14758         Define.
14759         * langhooks-def.h: Likewise.
14760         * objc/objc-lang.c: Likewise.
14761         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
14762         function.
14763         * tree-inline.c (initialize_inlined_parameters):
14764         Call convert_parm_for_inlining lang hook if needed.
14765         * c-typeck.c (c_convert_parm_for_inlining): New function.
14766         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
14767
14768 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
14769
14770         * calls.c (precompute_arguments): Do not assume that temporaries
14771         can be destroyed after expanding the argument.
14772         (expand_call): Likewise.
14773
14774 2002-03-15  Eric Christopher  <echristo@redhat.com>
14775
14776         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
14777         Fix register preference on last change.
14778         * config/mips/mips.c (mips_return_in_memory): New function.
14779         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
14780         * config/mips/mips-protos.h: Declare.
14781         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
14782         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
14783
14784 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
14785
14786         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
14787         a register too.
14788         (anddi3, iorsi3): Likewise.
14789
14790         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
14791         use %gprel for symbols that are going to be placed in linkonce
14792         sections.
14793
14794         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
14795         RETURN_ADDRESS_POINTER_REGNUM to $ra.
14796         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
14797         not needed.  Disregard leaf_function_p().
14798         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
14799         mips16 frame pointer.
14800         * config/mips/mips.md (store ra): Only to small SP offsets.
14801         2001-08-22  Graham Stott  <grahams@redhat.com>
14802         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
14803         return a REG rtx for the return address register.
14804
14805 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
14806
14807         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
14808         constant-pool addresses as "mode-dependent".
14809         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
14810
14811 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
14812
14813         PR target/5740
14814         * expr.c (emit_group_load): Use extract_bit_field if
14815         needed for CONCAT arguments.
14816
14817 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
14818
14819         PR target/4863
14820         * arm.md (tablejump): Make this a define_expand.  For PIC add the
14821         offset to the base of the table.
14822         (thumb_tablejump): Matcher for Thumb tablejump insn.
14823         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
14824         as the difference of two labels.
14825         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
14826         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
14827         tables in the code.
14828         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
14829         * arm.c (get_jump_table_size): If the table is not in the text
14830         section, return zero.
14831
14832 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
14833
14834         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
14835         of gen_rtx_SUBREG.
14836         (arm_reload_out_hi): Use gen_lowpart instead of
14837         gen_rtx_SUBREG to access QImode components.
14838         * config/arm/arm.md: Disable zero_extend split for QImode
14839         subregs in BIG_ENDIAN mode.
14840         (storehi_bigend): Match use of least significant byte.
14841         (storeinthi): Remove extraneous SUBREG.
14842         Add missing construction of operands[2].
14843         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
14844         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
14845         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
14846
14847 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
14848
14849         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
14850         any_operand.
14851
14852 2002-03-17  Richard Henderson  <rth@redhat.com>
14853
14854         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
14855         explicitly.
14856
14857 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
14858
14859         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
14860         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
14861
14862 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14863
14864         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
14865
14866         * predict.c (estimate_bb_frequencies): Delete unused variables.
14867
14868 2002-03-17  Richard Henderson  <rth@redhat.com>
14869
14870         * config/ia64/ia64.c (ia64_attribute_table): Move before
14871         targetm definition.  Make static.
14872
14873 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
14874
14875         * c-common.h (yyparse, c_common_parse_file): New.
14876         * c-lang.c: Include c-common.h.
14877         (LANG_HOOKS_PARSE_FILE): Redefine.
14878         * c-lex.c: Include c-common.h.
14879         (yyparse): Rename c_common_parse_file.  Call yyparse.
14880         * c-parse.in (yyparse): Remove macro.
14881         * c-tree.h (yyparse_1): Remove.
14882         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
14883         (LANG_HOOKS_INITIALIZER): Update.
14884         * langhooks.h (struct lang_hoooks): New hook parse_file.
14885         * toplev.c (compile_file): Use parse_file hook.
14886         * tree.h (yyparse): Remove.
14887         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
14888
14889 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
14890
14891         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
14892         float_truncate, not fix.
14893         ("*truncdfsf2_real"): Ditto.
14894         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
14895
14896         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
14897
14898 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
14899
14900         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
14901         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
14902         where appropriate.  Make the second reference to
14903         leaf_function_p a function call, as intended.  Reindented.
14904
14905         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
14906         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
14907
14908         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
14909         add register to non-constant into sp.
14910
14911         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
14912         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
14913         (mips16_gp_pseudo_rtx): Lose.
14914         (INIT_EXPANDERS): Deleted.
14915         * config/mips/mips.c (mips_init_machine_status): New.
14916         (mips_free_machine_status): New.
14917         (mips_mark_machine_status): New.
14918         (override_options): Set them.
14919         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
14920         (struct machine_function): ... new.  Replaced all references.
14921         (mips_add_gc_roots): Don't mark them.
14922         (embedded_pic_fnaddr_reg): New, extracted from...
14923         (embedded_pic_offset): ... here.
14924         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
14925         (movsi): Likewise.
14926
14927 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14928
14929         * cppinit.c: Revert -MD removal.
14930
14931 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14932
14933         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
14934         soft registers by default for 68HC12.
14935         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
14936         when compiling with -fomit-frame-pointer.
14937         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
14938         (expand_epilogue): Likewise.
14939         (m68hc11_gen_rotate): Use exg when rotating by 8.
14940
14941 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14942
14943         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
14944         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
14945         (splits): Remove unused add splits.
14946         ("*addhi3_68hc12"): Tune constraints.
14947         ("addhi_sp"): Try to use X instead of Y in all cases and if the
14948         constant fits in 8-bits and D is dead use abx/aby instructions.
14949         ("*addhi3"): Remove extern declaration of ix_reg.
14950         ("*subsi3"): Optimize and provide new split.
14951         ("subhi3"): Cleanup.
14952         ("*subhi3_sp"): Avoid saving X if we know it is dead.
14953         (arith splits): For 68hc12 save the address register on the stack
14954         and do the arithmetic operation with a pop.
14955
14956 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14957
14958         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
14959         allocating QImode in address registers.
14960         ("*movqi_m68hc11"): Likewise.
14961
14962 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
14963
14964         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
14965
14966 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14967
14968         * cppinit.c (print_help): Display -MD and -MMD.
14969         Don't display usage string.  Update assertion syntax and
14970         typo.
14971         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
14972         (cpp_handle_option): Update.
14973
14974 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
14975
14976         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
14977         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
14978         and define it so that regardless of target CPU size,
14979         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
14980         of "int" rather than "long."
14981
14982 2002-03-15  Richard Henderson  <rth@redhat.com>
14983
14984         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
14985         size as a tree.
14986
14987 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14988
14989         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
14990         ("tstqi" split): Avoid using memory for tstqi on address register.
14991         (splits): Remove constraints.
14992         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
14993         ("cmpdf", "cmpsf"): Remove since not used.
14994         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
14995         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
14996
14997 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14998
14999         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
15000         ("neghi2"): Tighten constraints.
15001         ("one_cmplsi2"): Optimize and simplify split.
15002         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
15003
15004 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15005
15006         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
15007         and split of AND operation to clear the upper bits.
15008         ("*logicalsi3_zextqi"): Likewise.
15009         ("*logicallhi3_zexthi_ashift8"): Likewise.
15010         ("*logicalsi3_silshr16"): Likewise.
15011         ("logicalsi3_silshl16"): Likewise.
15012         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
15013
15014 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15015
15016         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
15017         (m68hc11_indirect_p): New function.
15018         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
15019         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
15020         TARGET_M6812.
15021         (asm_print_register): Likewise.
15022         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
15023         (m68hc11_indirect_p): Declare.
15024         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
15025         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
15026         (TARGET_SWITCHES): New option -mrelax.
15027         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
15028         destination.
15029         ("iorsi3", "xorsi3"): Likewise.
15030         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
15031         ("*andhi3_mem"): New to handle destination in memory with bclr
15032         and a scratch register.
15033         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
15034         ("*andhi3_const"): New when operand2 is constant.
15035         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
15036         ("*andhi3_gen"): Cleanup of the old "andhi3".
15037         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
15038         ("xorqi3"): Update constraints.
15039
15040 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15041
15042         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
15043         for reg_equiv_memory_loc when the operand is a register that does
15044         not get a hard register (stack location).
15045         (tst_operand): After reload, accept all memory operand.
15046         (symbolic_memory_operand): Fix detection of symbolic references.
15047         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
15048         accept symbols and any constant.
15049
15050 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15051
15052         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
15053         note on the insn that sets the soft frame register.
15054         (must_parenthesize): ix and iy are also reserved names.
15055         (print_operand_address): One more place where parenthesis are required
15056         to avoid confusion with register names.
15057         (m68hc11_gen_movhi): Allow push of stack pointer.
15058         (m68hc11_check_z_replacement): Fix handling of parallel with a
15059         clobber.
15060         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
15061         the replacement register is.
15062         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
15063         and D8_REGS classes.
15064         (MODES_TIEABLE_P): All modes are tieable except QImode.
15065
15066 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15067
15068         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
15069         (___subdi3): Likewise.
15070         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
15071         (__map_data_section): Optimize 68hc11 case.
15072
15073 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15074
15075         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
15076         than a shift to avoid adding a register with itself.
15077         (m68hc11_memory_move_cost): Take into account NO_REGS.
15078         (m68hc11_register_move_cost): Update and use memory move cost
15079         for soft registers.
15080         (m68hc11_address_cost): Make cost of valid offset not 0 so that
15081         it gives more opportunities to cse to optimize.
15082         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
15083         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
15084
15085 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
15086
15087         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
15088         * c-common.def (CLEANUP_STMT): New tree node.
15089         * c-common.h (CLEANUP_DECL): New macro.
15090         (CLEANUP_EXPR): Likewise.
15091         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
15092         * expr.c (expand_expr): Tidy.
15093         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
15094         * tree-inline.c (initialize_inlined_parameters): Clean up
15095         new local variables.
15096
15097 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
15098
15099         PR bootstrap/4128
15100         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
15101         before movrXX only, use reg_overlap_mentioned_p.
15102         Only special case NE if just one insn can be generated.
15103
15104 2002-03-15  Jason Merrill  <jason@redhat.com>
15105
15106         * varasm.c (assemble_variable): Call resolve_unique_section before
15107         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
15108         of error_mark_node.
15109
15110 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15111
15112         PR target/5170
15113         * arm.md (split pattern for thumb shiftable immediates): Add comment
15114         explaining non-obvious test.
15115
15116 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15117
15118         PR target/5712
15119         * arm.md (movaddr, movaddr_insn): Delete.
15120
15121 2002-03-15  Jason Merrill  <jason@redhat.com>
15122
15123         * toplev.c (wrapup_global_declarations): Clarify variable handling.
15124         -fkeep-static-consts doesn't apply to comdats.
15125
15126 2002-03-14  Richard Henderson  <rth@redhat.com>
15127
15128         * c-decl.c: Include c-pragma.h.
15129         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
15130         (finish_function): Tidy.
15131         * c-pragma.c: Include c-common.h.
15132         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
15133         (handle_pragma_weak): Use them.
15134         (init_pragma): Register pending_weaks.
15135         * c-pragma.h (maybe_apply_pragma_weak): Declare.
15136         * print-tree.c (print_node): Print DECL_WEAK.
15137         * varasm.c (mark_weak_decls): Remove.
15138         (remove_from_pending_weak_list): Remove.
15139         (add_weak): Remove.
15140         (asm_emit_uninitialised): Call globalize_decl for weak commons.
15141         (weak_decls): Make a tree_list.
15142         (declare_weak): Cons weak_decls directly.
15143         (globalize_decl): Remove weak_decls elements directly.
15144         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
15145         symbols.  Don't pretend to handle aliases.
15146         (init_varasm_once): Update weak_decls registry.
15147         * Makefile.in: Update dependencies.
15148
15149 2002-03-14  Richard Henderson  <rth@redhat.com>
15150
15151         PR target/5312
15152         * config/ia64/ia64.c: Include tm_p.h last.
15153         (gen_nop_type): Remove duplicate definition.
15154         (cycle_end_fill_slots): Set sched_data for second L slot.
15155         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
15156         (nop_cycles_until): Fix typos.
15157
15158 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
15159
15160         PR optimization/5891
15161         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
15162
15163 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
15164
15165         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
15166           descriptors correctly.
15167
15168 2002-03-14  Michael Meissner  <meissner@redhat.com>
15169
15170         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
15171         100, allowing MAX_UNROLLED_INSNS to be overridden.
15172
15173         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
15174         --param.
15175
15176         * unroll.c (params.h): Include.
15177         (MAX_UNROLLED_INSNS): Delete, now in params.h.
15178
15179         * doc/invoke.texi (--param max-unroll-insns): Document.
15180
15181         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
15182
15183 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
15184
15185         * arm.md: Fix warnings about constraints in peepholes and splits.
15186
15187 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
15188
15189         * cpphash.h (struct lexer_state): Remove line_extension member.
15190         * cpplib.c (dequote_string, do_linemarker): New functions.
15191         (linemarker_dir): New data object.
15192         (DIRECTIVE_TABLE): No longer need to interpret #line in
15193         preprocessed source.  Delete obsolete comment about return
15194         values of handlers.
15195         (end_directive, directive_diagnostics, _cpp_handle_directive):
15196         Don't muck with line_extension.
15197         (directive_diagnostics): No need to issue warnings for
15198         linemarkers here.
15199         (_cpp_handle_directive): Issue warnings for linemarkers here,
15200         when appropriate.  Dispatch linemarkers to do_linemarker, not
15201         do_line.
15202         (do_line): Code to handle linemarkers split out to do_linemarker.
15203         Convert escape sequences in filename argument, both places.
15204
15205         * cppmacro.c (quote_string): Rename cpp_quote_string and
15206         export.  All callers changed.
15207         * cpplib.h (cpp_quote_string): Prototype.
15208         * cppmain.c (print_line): Call cpp_quote_string on to_file
15209         before printing it.
15210
15211         * doc/cpp.texi: Document that escapes are now interpreted in
15212         #line and in linemarkers, and that non-printing characters are
15213         converted to octal escapes when linemarkers are generated.
15214
15215 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15216
15217         * emit-rtl.c (try_split): Use delete_insns.
15218         * recog.c (split_all_insns): Fix terminating condition.
15219
15220 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
15221             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
15222
15223         PR target/5828
15224         * arm.c (arm_output_epilogue): Fix floating-point register save
15225         adjustment when using a frame pointer.
15226
15227 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
15228
15229         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
15230         * config/mips/mips.c (compute_frame_size): Retrofit them here.
15231         (save_restore_insns, mips_expand_epilogue): And here.
15232         (build_mips16_call_stub): And here.
15233         (mips_function_value): Use the new macros to decide whether a single
15234         or complex float can be returned in floating-point registers.  Return
15235         a parallel rtx in the complex case.
15236
15237 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15238
15239         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
15240         call after liveness analysis.
15241
15242         * recog.c (split_insn): Use delete_insn_and_edges.
15243
15244         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
15245         instructions to have branch prediction notes.
15246         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
15247
15248 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
15249
15250         * configure.in: Don't pass -Wno-long-long to a ADA compiler
15251         that doesn't support it.
15252         * configure: Regenerate.
15253
15254 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15255
15256         PR target/5626
15257         * config/sparc/sparc.md (normal_branch, inverted_branch,
15258         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
15259         inverted_fp_branch): Adjust calls to output_cbranch.
15260         Set length attribute.
15261         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
15262         output_v9branch.  Set length attribute.
15263         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
15264         predicates.
15265         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
15266         (output_cbranch): Likewise.  Handle far branches.
15267         (output_v9branch): Handle far branches.
15268         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
15269         Adjust prototypes.
15270         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
15271         noov_compare64_op predicates.
15272
15273 2002-03-13  Jason Merrill  <jason@redhat.com>
15274
15275         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
15276         into the function and constify it.
15277         * gthr-dce.h, gthr-solaris.h: Likewise.
15278
15279 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
15280
15281         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
15282         * config/rs6000/rs6000.c (rs6000_va_arg): Use
15283         std_expand_builtin_va_arg if not ABI_V4.
15284
15285 2002-03-13  Jason Merrill  <jason@redhat.com>
15286
15287         * varasm.c (globalize_decl): New fn.
15288         (assemble_start_function): Use it.
15289         (asm_emit_uninitialized): Use it.
15290         (assemble_alias): Use it.
15291         (assemble_variable): Use it.
15292
15293 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
15294
15295         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
15296         2002-03-12 internal visibility change.
15297         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
15298         visibility into SYMBOL_REF_FLAG.
15299
15300 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
15301
15302         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
15303         VOIDmode operand.  Add compile-time optimization for constant results.
15304
15305 2002-03-12  Jason Merrill  <jason@redhat.com>
15306
15307         * c-typeck.c (convert_for_assignment): Don't allow conversions
15308         between pointers and references.  Only allow lvalues to convert to
15309         reference.
15310
15311 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
15312
15313         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
15314         before prologue, to avoid scheduling problems.
15315
15316 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15317
15318         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
15319         (ELIMINABLE_REGS): Add sfp->sp.
15320         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
15321
15322 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15323
15324         PR optimization/5892
15325         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
15326
15327 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15328
15329         * loop.c (basic_induction_var): Don't call convert_modes if mode
15330         classes are different.
15331
15332 2002-03-12  Richard Henderson  <rth@redhat.com>
15333
15334         PR optimization/5901
15335         * function.c (reposition_prologue_and_epilogue_notes): Position
15336         the markers after/before the last/first insn not deleted.
15337
15338 2002-03-12  Richard Henderson  <rth@redhat.com>
15339
15340         PR optimization/5878
15341         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
15342         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
15343         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
15344
15345         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
15346         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
15347         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
15348
15349         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
15350         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
15351         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
15352         also.  Don't set it if not flag_pic.
15353         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
15354         to be INVALID_REGNUM when not used.
15355
15356 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
15357
15358         * expmed.c (store_bit_field): Reset alias set for memory.
15359         (extract_bit_field): Same.
15360
15361 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15362
15363         * c-common.c (c_tree_code_type, c_tree_code_length,
15364         c_tree_code_name, add_c_tree_codes): Delete.
15365         * c-common.h (add_c_tree_codes): Delete.
15366         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
15367         Define.
15368         * c-objc-common.c (c_objc_common_init): Don't call
15369         add_c_tree_codes, instead set lang_unsafe_for_reeval.
15370         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
15371         objc_tree_code_name, add_objc_tree_codes): Delete.
15372         (objc_init): Don't call add_objc_tree_codes.
15373         * objc/objc-lang.c (tree_code_type, tree_code_length,
15374         tree_code_name): Define.
15375         * toplev.c (lang_independent_init): Don't set
15376         tree_code_length[IDENTIFIER_NODE].
15377         * tree.c (tree_code_type, tree_code_length, tree_code_name):
15378         Delete definitions, moved to language front-ends.
15379         * tree.def (IDENTIFIER_NODE): Hardwire the length.
15380         * tree.h (tree_code_type, tree_code_length, tree_code_name):
15381         Const-ify.
15382         (tree_code_length): Change type to unsigned char.
15383
15384 2002-03-12  Richard Henderson  <rth@redhat.com>
15385
15386         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
15387         internal visibility change.
15388
15389 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15390
15391         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
15392         validize_mem() instead of change_address to avoid clobbering
15393         memory attributes.
15394
15395 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
15396
15397         * c-lex.h (position_after_whitespace): Remove.
15398
15399 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
15400
15401         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
15402         (lex_string): Use unsigned char pointers.
15403
15404 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
15405
15406         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
15407         is not a valid memory_operand.
15408
15409 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15410
15411         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
15412         * config/xtensa/lib1funcs.asm: Fix copyright to include
15413         special case for libgcc files.
15414         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
15415         (__divsi3): Likewise.
15416         (__umodsi3): Likewise.
15417         (__modsi3): Likewise.
15418         * config/xtensa/lib2funcs.S: Fix copyright to include
15419         special case for libgcc files.
15420
15421 2002-03-12  Tom Rix  <trix@redhat.com>
15422
15423         * collect2.c (resolve_lib_name): Move outside of
15424         OBJECT_FORMAT_COFF ifdef.
15425         (ignore_library): Same.
15426
15427 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15428
15429         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
15430
15431 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15432
15433         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
15434         to function_section before writing out the constant pool.
15435
15436 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
15437
15438         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
15439         zero_constant.
15440         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
15441
15442 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
15443
15444         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
15445         (adddi3): Likewise.
15446         (movdf): Likewise.
15447         (movdi): Likewise.
15448         (cmpsi splitter): Likewise.
15449         (modsi3): Fail if <= 0.
15450         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
15451         redundant test when HOST_BITS_PER_WIDE_INT != 32.
15452         (reg_or_sub_cint64_operand): Likewise.
15453         (num_insns_constant_wide): Optimize sign extension.
15454         (rs6000_legitimize_address): Likewise.
15455
15456 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
15457
15458         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15459         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15460
15461 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
15462
15463         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
15464         address calculation.
15465
15466 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
15467
15468         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
15469         scratch register to DImode / TImode.
15470         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
15471         register used does not overlap the target.
15472
15473 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15474
15475         * Makefile.in (debug.o): Depend on debug.h.
15476         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
15477         * debug.c (do_nothing_debug_hooks): Likewise.
15478         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
15479         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
15480         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
15481         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15482         * dwarfout.c (dwarf_debug_hooks): Likewise.
15483         * integrate.c (output_inline_function): Likewise.
15484         * objc/objc-act.c (synth_module_prologue): Likewise.
15485         * sdbout.c (sdb_debug_hooks): Likewise.
15486         * toplev.c (debug_hooks): Likewise.
15487         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15488
15489 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15490
15491         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
15492         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
15493         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
15494         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
15495         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
15496         * defaults.h (POINTER_SIZE): Define.
15497         * doc/tm.texi (POINTER_SIZE): Document default.
15498
15499 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15500
15501         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
15502
15503 2002-03-11  Richard Henderson  <rth@redhat.com>
15504
15505         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
15506         if rebuild_label_notes_after_reload.
15507
15508 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
15509
15510         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
15511         emit pic register load if "internal" visibility.
15512         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
15513         (cris_expand_builtin_va_arg): Do all computations on trees.
15514
15515 2002-03-11  Richard Henderson  <rth@redhat.com>
15516
15517         * rtlanal.c: Include recog.h.
15518         (keep_with_call_p): Fix thinko.
15519         * Makefile.in (rtlanal.o): Update dependencies.
15520
15521 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
15522
15523         * genflags.c (gen_insn): Use IS_VSPACE.
15524         * genoutput.c (output_insn_data): Likewise.
15525         (process_template): Likewise.
15526
15527 2002-03-11  Richard Henderson  <rth@redhat.com>
15528
15529         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
15530
15531 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
15532
15533         * Makefile.in: Update.
15534         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
15535         Update documentation.
15536         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
15537         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
15538
15539 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
15540
15541         * Makefile.in: Give texi2pod its input file as a command line
15542         argument, not on stdin.
15543
15544 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
15545             Daniel Berlin  <dan@dberlin.org>
15546
15547         C++ alias analysis improvement.
15548         * alias.c (record_component_aliases): Record aliases for base
15549         classes too.
15550
15551 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
15552
15553         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
15554
15555 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
15556
15557         * toplev.c (vms_fopen): Remove, not needed.
15558
15559         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
15560
15561         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
15562
15563         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
15564         for FP, already done later.
15565
15566         * toplev.c (debug_args): Add entry for VMS_DEBUG.
15567         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
15568
15569 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
15570
15571         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
15572         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
15573         LARGEST_EXPONENT_IS_NORMAL for the given mode.
15574         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
15575         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
15576         (ediv, emul, eldexp, esqrt): Likewise.
15577         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
15578         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
15579         (saturate): New function.
15580         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
15581         (make_nan): Use a saturation value instead of a NaN if
15582         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
15583         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
15584         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
15585         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
15586         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
15587         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
15588         !ROUND_TOWARDS_ZERO.
15589         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
15590         (ROUND_TOWARDS_ZERO): Document.
15591
15592 2002-03-11  Andreas Jaeger  <aj@suse.de>
15593
15594         * cfg.c (dump_flow_info): Remove unused variable.
15595
15596 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
15597
15598         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
15599         computations on trees.
15600
15601 2002-03-10  Richard Henderson  <rth@redhat.com>
15602
15603         PR 5693:
15604         * reload.c (copy_replacements_1): New.
15605         (copy_replacements): Use it to recurse through the rtx.
15606
15607 2002-03-10  Richard Henderson  <rth@redhat.com>
15608
15609         * loop.c (strength_reduce): Compute number of iterations as
15610         unsigned HOST_WIDE_INT.
15611
15612 2002-03-10  Richard Henderson  <rth@redhat.com>
15613
15614         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
15615         to move away from the end of the block.
15616
15617 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
15618
15619         PR preprocessor/5899
15620         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
15621
15622 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15623
15624         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
15625
15626         * attribs.c (decl_attributes): Fix signed/unsigned warning.
15627
15628 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
15629
15630         * config/mmix/mmix.c: Improve comments.
15631         (mmix_target_asm_function_prologue): Drop variable
15632         empty_stack_frame.  Don't allocate unused slot above fp.
15633         (mmix_target_asm_function_epilogue): Mirror prologue changes.
15634         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
15635         brace in first column.
15636         (enum reg_class): Ditto.
15637         (FIRST_PARM_OFFSET): Now 0.
15638         (USER_LABEL_PREFIX): Remove #if 0:d definition.
15639
15640 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15641
15642         * combine.c (make_extraction): Fix error in last change.
15643
15644 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15645
15646         * c4x.c (c4x_fp_reglist): Const-ify.
15647         * cris.c (cris_print_operand): Likewise.
15648         * i386.c (ix86_va_arg): Likewise.
15649         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
15650         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
15651         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
15652         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
15653         * mcore.h (regno_reg_class): Likewise.
15654         * mips.c (gen_int_relational): Likewise.
15655         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
15656         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
15657         * pdp11.c (move_costs): Likewise.
15658         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
15659         * s390.c (s390_branch_condition_mnemonic, regclass_map):
15660         Likewise.
15661         * s390.h (regclass_map): Likewise.
15662         * sh.c (shift_amounts): Likewise.
15663         * sh.md (rotlsi3): Likewise.
15664
15665 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
15666
15667         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
15668         (ne0+5): Use new clobber to generate proper shift pattern.
15669         Patch by Michael Matz <matz@kde.org>.
15670
15671 2002-03-09  Andreas Schwab  <schwab@suse.de>
15672
15673         * gcc.c (validate_all_switches): Also handle `%W{...}'.
15674
15675 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
15676
15677         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
15678
15679 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
15680
15681         PR middle-end/5877
15682         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
15683         even for non-representable constants.
15684
15685 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15686
15687         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
15688         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
15689         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
15690         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
15691         (pop_function_context): Compute MAY_SHARE parameter for
15692         fixup_var_refs.
15693         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
15694         (gen_mem_addressof): Call fixup_var_refs with new parm.
15695
15696         * combine.c (make_extraction): Don't make extension of CONST_INT.
15697
15698 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
15699
15700         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
15701         in o32 and o64 ABIs.
15702         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
15703         but getting fixed-size structs passed in registers regardless of
15704         padding in o32 and o64 ABIs.
15705
15706         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
15707         offset before loading address of argument passed by transparent
15708         reference.
15709
15710 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15711
15712         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
15713
15714 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
15715
15716         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
15717         marker such that registers after it are saved.
15718
15719 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15720
15721         * sparc.c (arith_4096_operand): Fix error in last change.
15722
15723 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
15724
15725         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
15726         defaults for MEABI.
15727
15728 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
15729
15730         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
15731         vectors.
15732
15733 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
15734
15735         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
15736
15737 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
15738
15739         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
15740         removed; fix return value.
15741         * combine.c (combine_instructions): Dirtify blocks where we failed to
15742         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
15743         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
15744
15745 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15746
15747         * gcse.c (insert_insn_end_bb): Fix typo in last change.
15748
15749 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
15750
15751         * recog.c (peephole2_optimize): Re-distribute EH edges.
15752
15753 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
15754
15755         * expr.c (expand_expr): Use unsave lang hook.
15756         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
15757         (LANG_HOOKS_INITIALIZER): Update.
15758         * langhooks.h (struct lang_hooks): New hook unsave.
15759         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
15760         (unsave_expr_1): Remove unused lang_unsave_expr_now.
15761         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
15762         (unsave_expr_now): Remove.
15763         * tree.h (unsave_expr_now, lang_unsave,
15764         lang_unsave_expr_now): Remove.
15765         (lhd_unsave): New.
15766
15767 2002-03-08  Andreas Jaeger  <aj@suse.de>
15768
15769         * flow.c (propagate_block_delete_insn): Remove unused variable.
15770
15771 2002-03-08  Kazu Hirata  <kazu@hxi.com>
15772
15773         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
15774         insn length for memory load/store.
15775
15776 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15777
15778         * doc/install.texi (--with-libiconv-prefix): Document.
15779
15780 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
15781
15782         * doc/sourcebuild.texi: Fix typo.
15783
15784 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
15785
15786         PR c/3711
15787         * builtins.c (std_expand_builtin_va_arg): Do all computations on
15788         trees.
15789
15790 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15791
15792         * rtl.c (copy_most_rtx): Move from here ...
15793         * emit-rtl.c (copy_most_rtx): ... to here.
15794
15795 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
15796
15797         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
15798         SUBTARGET_CPP_SIZE_SPEC.
15799         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
15800
15801         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
15802
15803 2002-03-07  Matt Hiller  <hiller@redhat.com>
15804
15805         * gensupport.c (first_dir_md_include): Renamed from include;
15806         change all references.
15807         (last_dir_md_include): Renamed from last_include; change all
15808         references.
15809         (init_md_reader): Unconditionally initialize base_dir whether or
15810         not filename is a relative path.
15811
15812 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
15813
15814         * config/fp-bit.c (_unord_f2): Compile it in even if
15815         US_SOFTWARE_GOFAST is enabled.
15816
15817         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
15818         NULL_RTX.  Set all HFmode operations as NULL_RTX.
15819         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
15820         NULL_RTX, try reversing the comparison and the operands.
15821
15822 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
15823
15824         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
15825         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
15826         and MATCH_OP_DUP.
15827
15828 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
15829
15830         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
15831
15832 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15833
15834         * basic-block.h (fixup_abnormal_edges): Declare.
15835         * reload1.c (fixup_abnormal_edges): New function.
15836         * reg-stack.c (convert_regs): Use it.
15837
15838         * gcse.c (insert_insn_end_bb): Handle trapping insns.
15839
15840         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
15841
15842 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
15843
15844         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
15845         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
15846         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
15847         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
15848         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
15849         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
15850         unless x and y could be infinite.
15851         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
15852         Check that the common type of both arguments is a real, even for
15853         targets without unordered comparisons.  Allow an integer argument
15854         to be compared against a real.
15855         (expand_tree_builtin): Use expand_unordered_cmp.
15856         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
15857         * cse.c (fold_rtx): Likewise.  Fix indentation.
15858         * fold-const.c (fold_real_zero_addition_p): New.
15859         (fold): Use it, and the new HONOR_... macros.
15860         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
15861         * jump.c (reversed_comparison_code_parts): After searching for
15862         the true comparison mode, use HONOR_NANS to decide whether it
15863         can be safely reversed.
15864         (reverse_condition_maybe_unordered): Remove IEEE check.
15865         * simplify-rtx.c (simplify_binary_operation): Use the new macros
15866         to decide which simplifications are valid.  Allow the following
15867         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
15868         and (a - -b) to (a + b).
15869         (simplify_relational_operation): Use HONOR_NANS.
15870         * doc/tm.texi: Document the MODE_HAS_... macros.
15871
15872 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
15873
15874         * combine.c (simplify_comparison): If simplifying a logical shift
15875         right and compare with constant, force the comparison to unsigned.
15876
15877 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
15878
15879         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
15880
15881         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
15882         -mabi=no-altivec
15883         (alt_reg_names): Remove % for vrsave.
15884
15885 2002-03-06  Richard Henderson  <rth@redhat.com>
15886
15887         PR optimization/5844
15888         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
15889         if used indicates we've already emitted one copy of an operand.
15890         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
15891         (gen_split): Supply a non-null used.
15892
15893 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
15894
15895         * reload1.c (reload): Unshare all rtl after reload is done.
15896
15897         * simplify-rtx.c (simplify_plus_minus): Do not abort,
15898         but simply fail if the expression is too complex to simplify.
15899         (simplify_gen_binary): Handle simplify_plus_minus failures.
15900
15901 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
15902
15903         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
15904         consistently call delete_trivially_dead_insns after CSE and GCSE;
15905         fix DFI_life dumping; do jump threading after liveness; do crossjumping
15906         after liveness2; update comment in last crossjumping.
15907         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
15908
15909 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
15910
15911         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
15912         after completing fast dead code elimination.
15913
15914         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
15915         COMPARE operator.
15916
15917 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
15918
15919         * version.c:  Fix misplaced leading blanks on first line.
15920
15921 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
15922
15923         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
15924
15925 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
15926
15927         * cfgcleanup.c (mentions_nonequal_regs): New function.
15928         (thread_jump): Use it.
15929         * toplev.c (rest_of_compilation): Run jump threading after
15930         liveness.
15931
15932 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
15933
15934         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
15935         patch.
15936
15937 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
15938
15939         * predict.c (estimate_bb_frequencies): Do not reload the
15940         frequencies from notes.
15941
15942 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
15943
15944         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
15945         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
15946
15947         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
15948         delete_noop_moves): Return indeger.
15949         * flow.c (ndead): New variable.
15950         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
15951         BB argument; update callers.
15952         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
15953         (life_analysis): Do not call purge_all_dead_edges.
15954         (update_life_info): Return number of deleted insns; print statistics.
15955         (update_life_info_in_dirty_blocks): likewise.
15956         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
15957         return number of insns deleted.
15958
15959         * cse.c: Include timevar.h
15960         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
15961         iterate until stabilizes; print statistics; return number of killed
15962         insns.
15963         * Makefile.in: (cse.o): Add timevar.h dependency
15964         * rtl.h (delete_trivially_dead_insns): New.
15965         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
15966         * toplev.c (rest_of_compilation): Update callers.
15967
15968         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
15969         (try_optimize_cfg): Do not update liveness.
15970         (cleanup-cfg): Loop until try_optimize_cfg and dead code
15971         removal stabilizes; use delete_trivially_dead_insns.
15972
15973         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
15974
15975 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
15976
15977         * cppmain.c (setup_callbacks): Disable #pragma and #ident
15978         callbacks when processing assembly language.
15979
15980 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15981
15982         * pa.h (ASM_FILE_END): Define.
15983         * som.h (ASM_FILE_END): Delete.
15984
15985         * pa.c (function_arg): Don't pass floats in general registers in
15986         indirect calls if TARGET_ELF32.
15987
15988 2002-03-05  Richard Henderson  <rth@redhat.com>
15989
15990         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
15991
15992 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
15993
15994         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
15995
15996 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
15997
15998         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
15999         -r command line.  Don't hide any symbols if not building
16000         shared libgcc.
16001
16002 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
16003
16004         * cfg.c (dump_flow_info): Warn about profile mismatches.
16005         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
16006         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
16007
16008 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16009
16010         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
16011         wide volatile memory by parts.
16012
16013 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16014
16015         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
16016         is NULL.
16017
16018 2002-03-05  Richard Henderson  <rth@redhat.com>
16019
16020         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
16021
16022 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16023
16024         * toplev.c (documented_lang_options): Document more
16025         language-specific options.
16026         * doc/invoke.texi (Warning Options): Correct documentation for
16027         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
16028         * c-decl.c (c_decode_option): Use a table to handle warning options.
16029
16030 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
16031
16032         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
16033         parameter to mmix_encode_section_info.
16034         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
16035         relocatably.  Always produce ELF, not mmo if linking relocatably.
16036         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
16037         first is non-zero, don't add symbol prefix.
16038         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
16039         prototype accordingly.
16040
16041 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
16042
16043         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
16044
16045 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
16046
16047         * configure.in: Increase required makeinfo version to 4.1.
16048         * configure: Regenerate.
16049
16050 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16051
16052         * .cvsignore: Remove *.info* and genrtl*; these files are generated
16053         elsewhere now.
16054
16055 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
16056
16057         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
16058         * doc/invoke.texi: Fix @math uses.
16059
16060 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
16061
16062         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
16063         removal
16064
16065 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
16066
16067         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
16068         (powerpc-*-eabisimaltivec*): Same.
16069
16070         * config/rs6000/t-ppcendian: New.
16071
16072 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16073
16074         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
16075         nonimmediate_src_operand and nonimmediate_lsrc_operand to
16076         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
16077
16078 2002-03-03  Richard Henderson  <rth@redhat.com>
16079
16080         * toplev.c (rest_of_decl_compilation): Revert last two changes.
16081
16082 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
16083
16084         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
16085         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
16086         tree.c, config/m68k/m68k.c:
16087         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
16088         REAL_ARITHMETIC blocks unconditional.  Delete some further
16089         #ifdef blocks predicated on REAL_ARITHMETIC.
16090         * flags.h, toplev.c: Delete remaining references to
16091         flag_pretend_float.
16092
16093         * doc/invoke.texi: Remove documentation of -fpretend-float.
16094         * doc/tm.texi: Describe the various REAL_* macros as provided by
16095         real.h, not by the target configuration files.
16096
16097         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
16098         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
16099         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16100         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
16101         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
16102         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
16103         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
16104         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
16105         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
16106         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
16107         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
16108         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
16109         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
16110         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
16111         config/xtensa/xtensa.h:
16112         Do not define, undefine, or mention in comments any of
16113         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
16114         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
16115         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
16116         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
16117         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
16118         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
16119         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
16120         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
16121         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
16122
16123 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16124
16125         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
16126         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
16127         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
16128         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
16129         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
16130         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
16131         Delete.
16132         * defaults.h (BITS_PER_WORD): Define.
16133         * doc/tm.texi (BITS_PER_WORD): Document default value.
16134
16135         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
16136         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
16137         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
16138
16139 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16140
16141         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
16142         lieu of explicit sizeof/sizeof.
16143         * i386.c (override_options, ix86_init_mmx_sse_builtins,
16144         ix86_expand_builtin): Likewise.
16145         * mips.c (mips_add_gc_roots): Likewise.
16146         * mmix.c (mmix_output_condition): Likewise.
16147         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
16148         altivec_init_builtins): Likewise.
16149         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
16150         * cppexp.c (Nsuff, parse_number): Likewise.
16151         * cppinit.c (builtin_array_end): Likewise.
16152         * gcc.c (n_default_compilers, process_command): Likewise.
16153         * genpreds.c (output_predicate_decls): Likewise.
16154         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
16155         * lcm.c (N_ENTITIES): Likewise.
16156         * stor-layout.c (set_sizetype): Likewise.
16157
16158 2002-03-03  Richard Henderson  <rth@redhat.com>
16159
16160         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
16161         for types or labels.
16162
16163 2002-03-03  Richard Henderson  <rth@redhat.com>
16164
16165         * c-decl.c (start_decl): Initialized variables are not common.
16166
16167 2002-03-02  Per Bothner  <per@bothner.com>
16168
16169         * gcc.c (option_map):  Suport new --bootclasspath option.
16170         --CLASSPATH is now just an alias for --classpath.
16171
16172 2002-03-02  Richard Henderson  <rth@redhat.com>
16173
16174         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
16175         load if "internal" visibility.
16176         * doc/extend.texi: Document visibility meanings.
16177
16178 2002-03-02  Richard Henderson  <rth@redhat.com>
16179
16180         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
16181         to functions as well.
16182
16183 2002-03-02  Richard Henderson  <rth@redhat.com>
16184
16185         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
16186         (handle_visibility_attribute): Don't call assemble_visibility.
16187         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
16188         without asmspec.  Invoke assemble_alias when needed.
16189         * varasm.c (maybe_assemble_visibility): New.
16190         (assemble_start_function, assemble_variable, assemble_alias): Use it.
16191
16192 2002-03-02  Richard Henderson  <rth@redhat.com>
16193
16194         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
16195         invoke ENCODE_SECTION_INFO with first call flag.
16196
16197         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
16198         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
16199         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
16200         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
16201         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
16202         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
16203         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
16204         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
16205         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
16206         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
16207         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
16208         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
16209         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
16210         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
16211         config/mcore/mcore-protos.h, config/mcore/mcore.c,
16212         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
16213         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
16214         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
16215         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
16216         config/sh/sh.h, config/sparc/sparc.h,
16217         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
16218         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
16219         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
16220         FIRST argument.  As needed, examine it and do nothing.
16221
16222         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
16223         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16224         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
16225
16226         * config/arm/t-pe (pe.o): Add dependencies.
16227
16228 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16229
16230         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
16231         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
16232         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
16233         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
16234         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
16235         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
16236         * defaults.h (BITS_PER_UNIT): Define.
16237         * doc/tm.texi (BITS_PER_UNIT): Document default value.
16238
16239 2002-03-02  Kazu Hirata  <kazu@hxi.com>
16240
16241         * config/h8300/h8300-protos.h: Add a prototype for
16242         compute_a_shift_length.
16243         * config/h8300/h8300.c (h8300_asm_insn_count): New.
16244         (compute_a_shift_length): Likewise.
16245         (h8300_adjust_insn_length): Do not adjust insn length of shift
16246         insns.
16247         * config/h8300/h8300.md (anonymous shift patterns): Use
16248         compute_a_shift_length.
16249
16250 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16251
16252         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
16253         trunc_int_for_mode.
16254
16255         * emit-rtl.c (offset_address): Call update_temp_slot_address.
16256
16257 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16258
16259         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
16260         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
16261         * flags.h (flag_zero_initialized_in_bss): Declare.
16262         * toplev.c (flag_zero_initialized_in_bss): New flag.
16263         (lang_independent_options): Add flag_zero_initialized_in_bss.
16264         * tree.c (initializer_zerop): New function.
16265         * tree.h (initializer_zerop): Declare.
16266         * varasm.c (assemble_variable): If we can emit bss, put zero
16267         initializers in the bss section.
16268
16269 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
16270
16271         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
16272         like more than one symbol per .weak directive.
16273
16274 2002-03-01  Richard Henderson  <rth@redhat.com>
16275
16276         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
16277         adjust argument_pointer by pretend_args_size.
16278         (ia64_va_start): Adjust va_start address by -pretend_args_size.
16279
16280 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16281
16282         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
16283
16284 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
16285
16286         * toplev.c (rest_of_compilation): Delete dead jumptables before
16287         loop.
16288         * flow.c (delete_dead_jumptables): Make global.
16289         * rtl.h (delete_dead_jumptables): Declare.
16290
16291 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
16292
16293         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
16294         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
16295         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
16296
16297 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16298
16299         * config/h8300/h8300-protos.h: Fix formatting.
16300         * config/h8300/h8300.c: Likewise.
16301         * config/h8300/h8300.h: Likewise.
16302
16303 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16304
16305         * config/h8300/h8300.c (print_operand): Support 16-bit
16306         constant addresses.
16307         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
16308
16309 2002-02-28  Richard Henderson  <rth@redhat.com>
16310
16311         * expmed.c (store_bit_field): Prevent generation of CONCATs;
16312         pun complex values as integers; use gen_lowpart instead of
16313         gen_rtx_SUBREG.
16314         (extract_bit_field): Likewise.
16315
16316 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
16317             David Edelsohn  <edelsohn@gnu.org>
16318
16319         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
16320         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
16321         (SUPPORTS_WEAK): Likewise.
16322         * output.h (add_weak): Add tree param.
16323         * varasm.c (add_weak): Likewise.  Save decl.
16324         (struct weak_syms): Add decl field.
16325         (mark_weak_decls): New function.
16326         (init_varasm_once): ggc_add_root mark_weak_decls.
16327         (assemble_start_function): Use ASM_WEAKEN_DECL.
16328         (assemble_variable): Likewise.
16329         (assemble_alias): Likewise.
16330         (declare_weak): Pass decl to add_weak.
16331         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
16332         (remove_from_pending_weak_list): Declare and define for
16333         ASM_WEAKEN_DECL.
16334         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
16335         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
16336         * defaults.h (SUPPORTS_WEAK): Likewise.
16337         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
16338         .weak for code sym.  Do emit .size for descriptor sym.
16339         (ASM_DECLARE_FUNCTION_SIZE): Define.
16340         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
16341         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
16342         .lglobl unless TARGET_XCOFF.  Formatting fixes.
16343         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
16344         .weak for code sym.
16345         (HANDLE_PRAGMA_WEAK): Remove.
16346         (ASM_WEAKEN_LABEL): Remove.
16347         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
16348
16349 2002-03-01  Jason Merrill  <jason@redhat.com>
16350
16351         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
16352         (TARGET_EXPR_CLEANUP): New macro.
16353
16354 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
16355
16356         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
16357         to take ptr_extend into account as third type of extension.
16358         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
16359         fields used by SUBREG_PROMOTED_UNSIGNED_P.
16360         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
16361         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
16362         * calls.c (precompute_arguments): Use new macro.
16363         (expand_call): Ditto.
16364         * combine.c (nonzero_bits): Ditto.
16365         (record_promoted_value): Ditto.
16366         * expr.c (store_expr): Ditto.
16367         (expand_expr): Ditto.
16368         * function.c (assign_parms): Ditto.
16369
16370 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
16371
16372         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
16373         override -shared and -shared-libgcc.
16374
16375 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
16376
16377         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
16378         of "ultrasparc".
16379         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
16380         to be broken.
16381
16382 2002-02-28  Richard Henderson  <rth@redhat.com>
16383
16384         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
16385         4 cycle latency from MM producers.
16386         (ia64_internal_sched_reorder): Likewise with pipeline flush.
16387
16388 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
16389
16390         * mklibgcc.in: Don't use GNU make extension.
16391
16392 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
16393
16394         * c-parse.in (STATIC): New terminal.
16395         (scspec): New non-terminal.  Update productions accordingly.
16396         (program): Remove bogus ifc / end ifc.
16397         (array_declarator): Simplify production using STATIC.
16398
16399 2002-02-28  Jim Meyering  <meyering@lucent.com>
16400
16401         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
16402         \a still means TARGET_BELL.
16403
16404 2002-02-28  Richard Henderson  <rth@redhat.com>
16405
16406         * haifa-sched.c (sched_emit_insn): New.
16407         (schedule_block): Use last_scheduled_insn to track last insn.
16408         * sched-int.h (sched_emit_insn): Prototype.
16409         * config/ia64/ia64.c (last_issued): Remove.
16410         (ia64_variable_issue): Don't set it.
16411         (nop_cycles_until): Use sched_emit_insn.
16412
16413 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
16414
16415         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
16416         extended constants.
16417
16418 2002-02-28  Kazu Hirata  <kazu@hxi.com>
16419
16420         * config/h8300/h8300.c: Fix formatting.
16421         * config/h8300/h8300.h: Likewise.
16422
16423 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16424
16425         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
16426         which may overwrite the high byte of the frame pointer.
16427
16428 2002-02-28  Bo Thorsen  <bo@suse.de>
16429
16430         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
16431         (STARTFILE_SPEC): Add 64 bit files.
16432         (ENDFILE_SPEC): Likewise.
16433
16434 2002-02-28  Jason Merrill  <jason@redhat.com>
16435
16436         * c-decl.c (finish_function): Only warn about missing return
16437         statement with -Wreturn-type.
16438
16439 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
16440
16441         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
16442
16443         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
16444         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
16445
16446 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
16447
16448         * basic-block.h (BB_REACHABLE): Renumber.
16449         (BB_DIRTY, BB_NEW): New flags.
16450         (clear_bb_flags): Declare.
16451         (update_life_info_in_dirty_blocks): Declare.
16452         * cfg.c (clear_bb_flags): New function.
16453         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
16454         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
16455         reorder_insns, emit_insn_after): Mark block as dirty.
16456         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
16457         (update_life_info_in_dirty_blocks): New function.
16458         * recog.c (apply_change_group): Dirtify block.
16459
16460         * cse.c (cse_insn): Reorder emitting of jump insn to keep
16461         cfg consistent.
16462         * gcse.c (delete_null_pointer_checks): Likewise.
16463
16464         * toplev.c (dump_file_index): Move cse2 after bp,
16465         add DFI_null
16466         (dump_file_info): Similary.
16467         (rest_of_compilation): Avoid most of CFG rebuilds;
16468         do first if converision after null pointer checks, do cse2
16469         after branch prediction; avoid full liveness rebuild after
16470         initializing subregs.
16471         * invoke.texi (-d options): Document -du, renumber.
16472
16473         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
16474         (notice_new_block): Do not set BB_UPDATE_LIFE.
16475         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
16476          merge_blocks_move_successor_nojumps, merge_blocks,
16477          try_crossjump_to_edge): Likewise.
16478         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
16479         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
16480         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
16481         (merge_of_block): Do not use life_data_ok.
16482         (find_if_case_1): Do not use SET_UPDATE_LIFE.
16483         (if_convert): Use BB_DIRTY mechanizm to update life.
16484         * lcm.c (optimize_mode_switching): Update
16485         update_life_info_in_dirty_blocks
16486
16487 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
16488
16489         * Makefile.in (integrate.o): Update.
16490         * c-decl.c (copy_lang_decl): Rename.
16491         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
16492         * integrate.c: Include langhooks.h.
16493         (copy_decl_for_inlining): Update to use langhook.
16494         * langhooks-def.h (lhd_do_nothing_t,
16495         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
16496         (LANG_HOOKS_INITIALIZER): Update.
16497         * langhooks.c (lhd_do_nothing_t): New.
16498         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
16499         * tree.h (copy_lang_decl): Remove.
16500 objc:
16501         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
16502
16503 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
16504
16505         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
16506         POST_DEC, and POST_MODIFY.
16507
16508 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16509
16510         * c-typeck.c (digest_init): Remove unused parameter; all
16511         callers changed.
16512
16513 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
16514
16515         * expmed.c (expand_shift): Correctly test for low part of a
16516         subreg.
16517
16518 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
16519
16520         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
16521         insn UIDs with insn addresses.
16522
16523 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16524
16525         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
16526         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
16527         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
16528         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
16529         gcc.c, toplev.c: Delete code implementing -traditional mode.
16530
16531         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
16532         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
16533         Document removal of -traditional mode for compilation, and
16534         remove documentation only relevant to that mode.
16535
16536         * config/nextstep.h, config/ptx4.h, config/svr4.h,
16537         config/convex/convex.h, config/d30v/d30v.h,
16538         config/i386/dgux.h, config/i386/osf1elf.h,
16539         config/i386/osfelf.h, config/i386/osfrose.h,
16540         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
16541         config/m68k/hp310.h, config/m88k/dgux.h,
16542         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
16543         config/m88k/m88k.h, config/m88k/openbsd.h,
16544         config/mips/abi64.h, config/mips/osfrose.h,
16545         config/mips/svr4-5.h, config/mips/svr4-t.h,
16546         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
16547         config/stormy16/stormy16.h: Remove all references to
16548         -traditional from target specs.  Delete all mention of the
16549         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
16550         delete a couple of commented-out definitions of
16551         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
16552         to -traditional.
16553
16554         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
16555         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
16556
16557 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16558
16559         * mklibgcc.in: Don't use \n in a line subject to
16560         interpretation by echo.
16561
16562 2002-02-27  Graham Stott  <grahams@redhat.com>
16563
16564         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
16565         Constify NAME.
16566
16567         * loop.c (prescan_loop): Handle PARALLEL.
16568
16569         * unroll.c (loop_iterations): Return 0 if the add_val for
16570         a BIV is REG.
16571
16572         * final.c (output_operand_lossage): Constify PFX_STR.
16573
16574         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
16575
16576 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
16577
16578         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
16579         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
16580
16581 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
16582
16583         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16584
16585 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
16586
16587         * cpplex.c (_cpp_lex_token): Handle directives in macro
16588         arguments.
16589         * cpplib.c (_cpp_handle_directive): Save and restore state
16590         if parsing macro args when entering a directive.
16591         * cppmacro.c (collect_args): No need to handle directives
16592         in macro arguments.
16593         (enter_macro_context, replace_args): Use the original macro
16594         definition in case it was redefined whilst collecting arguments.
16595 doc:
16596         * cpp.texi: Update.
16597
16598 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
16599
16600         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
16601         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
16602         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
16603         method on AIX.
16604         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
16605         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
16606         (load_toc_v4_PIC_2): Same.
16607
16608 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
16609
16610         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
16611
16612 2002-02-26  Richard Henderson  <rth@redhat.com>
16613
16614         * config/alpha/alpha.md (ashldi_se): Re-enable.
16615
16616 2002-02-26  Richard Henderson  <rth@redhat.com>
16617
16618         * config/alpha/alpha.c (alpha_encode_section_info): Examine
16619         MODULE_LOCAL_P; improve commentary.
16620
16621 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
16622
16623         * doc/cpp.texi: Clarify documentation of relationship between
16624         #line and #include.
16625
16626 2002-02-26  Kazu Hirata  <kazu@hxi.com>
16627
16628         * config/h8300/h8300-protos.h: Update the prototype for
16629         compute_logical_op_length.  Add the prototype for
16630         compute_logical_op_cc.
16631         * config/h8300/h8300.c (compute_logical_op_length): Figure out
16632         code from operands.
16633         (compute_logical_op_cc): New.
16634         * config/h8300/h8300.md: Combine all the logical op patterns
16635         in HImode and SImode.  Use compute_logical_op_cc.
16636
16637 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
16638
16639         * config/i386/i386.c (print_operand): Don't append ATT-style
16640         length suffixs to x87 opcodes when in Intel mode.
16641
16642 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
16643
16644         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
16645         (init_emit_once): Update calls.
16646         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
16647         (init_syntax_once): Prototype.
16648
16649 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16650
16651         * pa-linux.h (LIB_SPEC): Update definition.
16652         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
16653
16654 2002-02-26  Richard Henderson  <rth@redhat.com>
16655
16656         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
16657         if we emitted a stop bit.
16658
16659 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16660
16661         * configure.in (libgcc_visibility): Substitute.
16662         * configure: Rebuilt.
16663         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
16664         defined symbols .hidden.
16665
16666 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16667
16668         * attribs.c (c_common_attribute_table): Add visibility.
16669         (handle_visibility_attribute): New function.
16670         * varasm.c (assemble_visibility): New function.
16671         * output.h (assemble_visibility): Add prototype.
16672         * tree.h (MODULE_LOCAL_P): Define.
16673         * crtstuff.c (__dso_handle): Use visibility attribute.
16674         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
16675         for MODULE_LOCAL_P symbols too.
16676         * config/ia64/ia64.c (ia64_encode_section_info): Handle
16677         MODULE_LOCAL_P symbols the same way as local symbols.
16678         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
16679         into .sdata/.sbss by the user.
16680         * doc/extend.texi (Function Attributes): Document visibility
16681         attribute.
16682
16683 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16684
16685         PR debug/5770
16686         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
16687         STRING_CST initializer spanning the whole variable without
16688         embedded zeros.
16689         If expand_expr returned MEM, don't use it.
16690
16691 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
16692
16693         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
16694         generate a die for the lexical block.
16695
16696 2002-02-26  Kazu Hirata  <kazu@hxi.com>
16697
16698         * config/h8300/h8300-protos.h: Add a prototype for
16699         compute_logical_op_length.
16700         * config/h8300/h8300.c (compute_logical_op_length): New.
16701         * config/h8300/h8300.md (anonymous logical patterns): Use
16702         compute_logical_op_length for length.
16703
16704 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16705
16706         * dwarf2out.c (modified_type_die): Do not call type_main_variant
16707         for vectors.
16708         (gen_type_die): Same.
16709
16710         * attribs.c (handle_vector_size_attribute): Set debug information.
16711
16712 2002-02-26  Daniel Egger  <degger@fhm.edu>
16713
16714         * config/rs6000/rs6000.md: Swap define_insn attributes to
16715         fix incorrect generation of merge high instructions instead
16716         of merge low.
16717
16718 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16719
16720         * c-typeck.c (really_start_incremental_init): Use
16721         bitsize_zero_node for vectors.
16722
16723 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16724
16725         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
16726         ("*set_vrsave_internal"): Same.
16727
16728 2002-02-25  Richard Henderson  <rth@redhat.com>
16729
16730         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
16731         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
16732
16733 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
16734
16735         PR target/5755
16736         * config/i386/i386.c (ix86_return_pops_args): Only pop
16737         fake structure return argument if it was passed on the stack.
16738
16739 2002-02-25  Jason Merrill  <jason@redhat.com>
16740
16741         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
16742         RESULT_DECL.
16743
16744 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
16745
16746         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
16747         link with shared_name only.
16748         * doc/invoke.texi (Link Options): Document new behavior.
16749
16750 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
16751
16752         * c-typeck.c (push_init_level): Handle vectors.
16753
16754 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
16755
16756         * config/sparc/sparc.c (const64_high_operand): Zero-extend
16757         operands of SPARC_SETHI_P.
16758         (input_operand): Likewise.
16759         (sparc_emit_set_const32): Likewise.
16760         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
16761         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
16762         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
16763         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
16764         (movdi_insn_sp64_vis): Likewise.
16765         (movdi split, movdf split): Use SETHI32.
16766         * doc/md.texi: Document SPARC constraints L, M and N.
16767
16768 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
16769
16770         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
16771         ("*set_vrsave_internal"): use mfspr for Darwin.
16772
16773         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
16774         gen_get_vrsave_internal.
16775
16776 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16777
16778         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
16779
16780 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
16781
16782         * cpplex.c (cpp_interpret_charconst): Get signedness or
16783         otherwise of wide character constants correct.
16784         * cppexp.c (lex): Get signedness of wide charconsts correct.
16785
16786 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16787
16788         * optabs.c (widen_operand): Only call convert_modes for
16789         promoted SUBREG if signedness matches.
16790         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
16791
16792 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16793
16794         * cpplib.c (glue_header_name): Use local buffer to build up
16795         header name.
16796
16797 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16798
16799         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
16800
16801 2002-02-23  Kazu Hirata  <kazu@hxi.com>
16802
16803         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
16804         H8/300[HS] separately.
16805         * config/h8300/h8300.md: Remove the early clobber constraint
16806         from bit field patterns.
16807
16808 2002-02-23  Kazu Hirata  <kazu@hxi.com>
16809
16810         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
16811         register_operand.
16812         (mulhisi3): Likewise.
16813         (umulqisi3): Likewise.
16814         (umulhisi3): Likewise.
16815
16816 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16817
16818         * cppinit.c (output_deps): Correct test for stdout output.
16819         (init_dependency_output): Cure warning.
16820
16821 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16822
16823         * expr.c (store_expr): When converting expression to promoted
16824         equivalent type, allow using SUBREG_REG of TARGET as the target
16825         of the expansion of EXP.
16826         * loop.c (basic_induction_var, case SUBREG): Always look inside.
16827         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
16828         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
16829         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
16830         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
16831
16832 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
16833
16834         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
16835         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
16836         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
16837
16838 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
16839
16840         PR optimization/5747
16841         * loop.c (scan_loop): Update reg info if move_movables created new
16842         pseudos.
16843
16844 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
16845
16846         * gcc.c (init_gcc_spec): Revert last change.
16847
16848 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
16849
16850         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
16851         gpc_reg_operand constraint.
16852
16853 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
16854
16855         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
16856         Simplify comparison of `low'.
16857         (add_operand): Fix formatting.
16858         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
16859         (mask_operand): Disallow mask to wrap in 64-bit mode.
16860         (rs6000_stack_info): Remove redundant test setting push_p.
16861         (output_toc): Fix formatting.
16862         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
16863         cc_reg_not_cr0_operand constraint.
16864         (booldi3, boolcdi3 splitters): Same.
16865
16866 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
16867
16868         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
16869
16870 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
16871
16872         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
16873         gcc invoked with -shared-libgcc.
16874
16875 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
16876
16877         PR c++/5748
16878         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
16879         decl if any of elements was TREE_USED.
16880
16881 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
16882
16883         * config/sparc/sol2.h: Don't include sys/mman.h.
16884         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
16885         (arith_4096_operand): Don't throw high bits away.
16886         (const64_operand): Take sign extension of CONST_INTs into account.
16887         (const64_high_operand, sparc_emit_set_const32): Likewise.
16888         (GEN_HIGHINT64): Likewise.
16889         (sparc_emit_set_const64_quick1): Likewise.
16890         (const64_is_2insns): Likewise.
16891         (print_operand): Use trunc_int_for_mode for sign extension.
16892         * config/sparc/sparc.h (SMALL_INT32): Likewise.
16893         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
16894         chars.  Assume CONST_INT is already properly sign-extended.
16895         (movdi split): Sign-extend each SImode part.
16896         (andsi3 split): Don't mask high bits off, so that result
16897         remains properly sign-extend.
16898         (iorsi3 split): Likewise.
16899         (xorsi3 split): Likewise.
16900
16901 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
16902
16903         * fold-const.c (fold): Fix typo in comments.
16904
16905 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
16906
16907         * Makefile.in (langhooks.o): Update dependencies.
16908
16909 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
16910
16911         * langhooks.c: Include flags.h.
16912
16913 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
16914
16915         * testsuite/gcc.dg/attr-alwaysinline.c: New.
16916
16917         * c-common.c (c_common_post_options): Set inline trees by
16918         default.
16919
16920         * doc/extend.texi (Function Attributes): Document always_inline
16921         attribute.
16922         Update documentation about inlining when not optimizing.
16923
16924         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
16925
16926         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
16927         unless DECL_ALWAYS_INLINE.
16928
16929         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
16930         unless DECL_ALWAYS_INLINE.
16931         (c_disregard_inline_limits): Disregard if always_inline set.
16932
16933         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
16934         Disregard if always_inline set.
16935         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
16936         unless DECL_ALWAYS_INLINE.
16937
16938         * attribs.c (handle_always_inline_attribute): New.
16939         (c_common_attribute_table): Add always_inline.
16940
16941         * config/rs6000/altivec.h: Add prototypes for builtins
16942         requiring the always_inline attribute.
16943
16944 2002-02-21  Eric Christopher  <echristo@redhat.com>
16945
16946         * expmed.c (store_bit_field): Try to simplify the subreg
16947         before generating a new one when when the mode size of
16948         value is less than maxmode.
16949
16950 2002-02-21  Richard Henderson  <rth@redhat.com>
16951
16952         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
16953         than gen_rtx_PLUS to form the sum.
16954         * explow.c (force_reg): Rearrange to not allocate new pseudo
16955         when force_operand returns a register.
16956         * expr.c (expand_assignment): Allow offset_rtx expansion to
16957         return a sum.  Do not force addresses into registers.
16958         (expand_expr): Likewise.
16959         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
16960         to canonicalize arithmetic that didn't simpify.
16961         (simplify_plus_minus): New argument force; update
16962         all callers.  Don't split CONST unless we can do something with it,
16963         and wouldn't lose the constness of the operands.
16964
16965         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
16966         that we generated earlier.
16967
16968 2002-02-21  Tom Tromey  <tromey@redhat.com>
16969
16970         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
16971         (output_line_info): Use constant `1', with a long explanatory
16972         comment.
16973         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
16974
16975 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
16976
16977         * jump.c (redirect_jump): If old label has no UID, don't try to
16978         delete it.
16979
16980 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
16981
16982         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
16983         If input is constant, do shifts at compile time.
16984
16985 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
16986
16987         * doc/extend.texi: Fix some more overfull hboxes.
16988
16989 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
16990
16991         PR optimization/4994
16992         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
16993         register moves.
16994
16995 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
16996
16997         PR c++/4574
16998         * expr.h (expand_and): Add mode argument.
16999         * expmed.c (expand_and): Add mode argument.
17000         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
17001         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
17002         * except.c (expand_builtin_extract_return_addr): Likewise.
17003         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
17004         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
17005         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
17006         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
17007         * config/c4x/c4x.md: Use GEN_INT (x) instead of
17008         gen_rtx (CONST_INT, VOIDmode, x).
17009
17010 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17011
17012         PR c/4697:
17013         * stmt.c (warn_if_unused_value): Move side effects test once more.
17014
17015 2002-02-20  Torbjorn Granlund  <tege@swox.com>
17016
17017         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
17018         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
17019
17020 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
17021
17022         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
17023         SUBREG or ZERO_EXTEND.
17024
17025 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
17026
17027         * sh.h (current_function_anonymous_args): Remove.
17028         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
17029         of current_function_varargs and current_function_stdarg is set.
17030         * sh.c (sh_expand_prologue): Check current_function_varargs /
17031         current_function_stdarg / TARGET_SH5 instead of
17032         current_function_anonymous_args.
17033
17034         * sh64.h (TARGET_VERSION): Define.
17035
17036 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
17037
17038         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
17039         VRSAVE_REGNO on TARGET_ALTIVEC.
17040
17041 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
17042
17043         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
17044         bits of SImode const_int.
17045         (includes_rshift_p): Likewise.
17046         (print_operand): Call mask_operand and mask64_operand with correct
17047         mode.
17048         (rs6000_output_function_epilogue): Pad traceback table to word.
17049         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
17050         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
17051         mask64_operand with correct mode.
17052         (FUNCTION_ARG_REGNO_P): Correct parentheses.
17053
17054 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17055
17056         PR debug/4461
17057         * varasm.c (get_pool_constant_mark): New.
17058         * rtl.h (get_pool_constant_mark): Add prototype.
17059         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
17060         be represented if it has not been output.
17061
17062 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17063
17064         * combine.c (do_SUBST): Sanity check substitutions of
17065         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
17066         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
17067         CONST_INT into its operand.
17068         (known_cond): Likewise, for ZERO_EXTEND.
17069         * simplify-rtx.c (simplify_unary_operation): Fix condition to
17070         allow for simplification of wide modes.  Reject CONST_INTs in
17071         ZERO_EXTEND when their actual mode is not given.
17072
17073 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17074
17075         * c-decl.c (pushdecl): If no global declaration is found for an
17076         extern declaration in block scope, try a limbo one.
17077
17078 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17079
17080         PR c++/4401
17081         * c-common.c (pointer_int_sum): Moved from...
17082         * c-typeck.c (pointer_int_sum): ...here.
17083         * c-common.h (pointer_int_sum): Add prototype.
17084
17085 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17086
17087         PR c++/5713
17088         * c-decl.c (duplicate_decls): Return 0 if issued error about
17089         redeclaration.
17090
17091 2002-02-20  Roger Sayle  <roger@eyesopen.com>
17092             Jakub Jelinek  <jakub@redhat.com>
17093
17094         PR c/4389
17095         * tree.c (host_integerp): Ensure that the constant integer is
17096         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
17097         when pos is zero or non-zero respectively.  Clarify comment.
17098         * c-format.c (check_format_info_recurse): Fix host_integerp
17099         usage; the pos argument should be zero when assigning to a
17100         signed HOST_WIDE_INT.
17101
17102 2002-02-20  Richard Henderson  <rth@redhat.com>
17103
17104         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
17105         of the operand, rather than assuming TImode.
17106         (ix86_expand_binop_builtin): Cope with commutative patterns
17107         using nonimmediate_operand for both operands.
17108         (ix86_expand_timode_binop_builtin): Likewise.
17109         (ix86_expand_store_builtin): Validate operand 1.
17110         (ix86_expand_unop1_builtin): Likewise.
17111
17112 2002-02-20  Philip Blundell  <philb@gnu.org>
17113
17114         PR 5705
17115         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
17116
17117 2002-02-20  Richard Henderson  <rth@redhat.com>
17118
17119         PR c/5615
17120         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
17121
17122 2002-02-20  Tom Tromey  <tromey@redhat.com>
17123
17124         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17125         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17126         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17127         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17128         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
17129         unconditionally.
17130
17131 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
17132
17133         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
17134           for (const_int 0) in X not just INTVAL.
17135
17136 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
17137
17138         * doc/extend.texi: Avoid or reduce overfull hboxes.
17139
17140 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
17141
17142         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
17143         operations if the field does not start at a mode boundary.
17144
17145 2001-02-20      Joel Sherrill <joel@OARcorp.com>
17146
17147         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
17148         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
17149         Also done for -Acpu and -Amachine.
17150
17151 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
17152
17153         * cppinit.c (init_dependency_output): Take deps output file
17154         from -o if none given with -MF.  Suppress normal output.
17155         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
17156         * doc/cpp.texi, doc/invoke.texi: Update.
17157
17158 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
17159
17160         * toplev.c (output_quoted_string): Write unprintable
17161         characters with octal escapes.
17162
17163 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
17164
17165         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
17166         really_call_used[VRSAVE_REGNO] if not Altivec.
17167
17168 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
17169
17170         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
17171         MODE_MASK.
17172         (constant_pool_expr_1): Fix formatting.
17173         (rs6000_legitimize_reload_address): Likewise.
17174
17175 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17176
17177         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
17178         now that we have one.
17179
17180 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
17181
17182         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
17183         end of first block of bitfields (which was only seven bits);
17184         rename dummy to unused_1; remove comment which is no longer true.
17185
17186 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
17187
17188         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
17189
17190 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
17191
17192         PR 5399
17193         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
17194         if generating PIC.
17195
17196         PR 5054
17197         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
17198         arm_is_longcall_p rather than inspecting call-type cookie
17199         directly.
17200         (call_value_insn) [TARGET_THUMB]: Likewise.
17201
17202 2002-02-19  Graham Stott  <grahams@redhat.com>
17203
17204         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
17205
17206 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
17207
17208         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
17209         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
17210         (FP_SAVE_INLINE): Delete.
17211
17212         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
17213         * config/rs6000/eabi.asm: Remove ABI save restore routines.
17214         * config/rs6000/t-ppccomm: Build crtsavres.o.
17215         * config/rs6000/crtsavres.asm: New file.
17216
17217 2002-02-19  Philip Blundell  <philb@gnu.org>
17218
17219         * config/arm/arm.c (use_return_insn): Don't reject interrupt
17220         functions.
17221         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
17222         (output_return_instruction): Allow interrupt functions to return with
17223         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
17224         (arm_expand_prologue): Subtract 4 before stacking LR in an
17225         interrupt function.
17226
17227 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
17228
17229         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
17230         decl, not just FUNCTION_DECL.
17231         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
17232         (arm_assemble_integer): Likewise.
17233         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
17234         marked local.
17235
17236 2002-02-19  matthew green  <mrg@eterna.com.au>
17237
17238         * config.gcc (sparc-*-netbsdelf*): Enable target.
17239         (sparc64-*-netbsd*): New target.
17240         * config/sparc/netbsd-elf.h: New file.
17241         * config/sparc/t-netbsd64: New file.
17242
17243 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
17244
17245         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
17246
17247 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
17248
17249         * doc/invoke.texi: explicitly list the style guidelines that
17250         -Weffc++ checks for.
17251
17252 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
17253
17254         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
17255
17256 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
17257
17258         PR other/5718
17259         * gcc.c (cpp_unique_options): Treat -o as indicating object file
17260         only if not -E.  If -E, pass -o through to the preprocessor.
17261
17262 2002-02-19  Kazu Hirata  <kazu@hxi.com>
17263
17264         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
17265         register number with an appropriate macro.
17266
17267 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
17268
17269         * doc/rtl.texi (Constants): Close @code tag.
17270
17271 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
17272
17273         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
17274         ("mmx_uavgv4hi3"): Same.
17275         ("pmulhrwv4hi3"): Same.
17276
17277         * tree-inline.c (walk_tree): Handle vectors.
17278
17279         * c-common.c (constant_expression_warning): Handle vectors.
17280         (overflow_warning): Same.
17281
17282         * sched-deps.c (sched_analyze_2): Handle vectors.
17283
17284         * rtlanal.c (rtx_unstable_p): Handle vectors.
17285         (rtx_varies_p): Same.
17286         (count_occurrences): Same.
17287         (regs_set_between_p): Same.
17288         (modified_between_p): Same.
17289         (modified_in_p): Same.
17290         (volatile_insn_p): Same.
17291         (volatile_refs_p): Same.
17292         (side_effects_p): Same.
17293         (may_trap_p): Same.
17294         (inequality_comparisons_p): Same.
17295         (replace_regs): Same.
17296         (computed_jump_p_1): Same.
17297
17298         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
17299         argument.
17300         (inner_mode_array): New.
17301         (copy_rtx): Handle vectors.
17302         (copy_most_rtx): Same.
17303         (rtx_equal_p): Same.
17304         (get_mode_alignment): Adjust for vectors.
17305
17306         * resource.c (mark_referenced_resources): Handle vectors.
17307         (mark_set_resources): Same.
17308
17309         * reload1.c (eliminate_regs): Handle vectors.
17310         (elimination_effects): Same.
17311         (scan_paradoxical_subregs): Same.
17312
17313         * reload.c (subst_reg_equivs): Handle vectors.
17314
17315         * regrename.c (scan_rtx): Handle vectors.
17316
17317         * regclass.c (reg_scan_mark_refs): Handle vectors.
17318
17319         * recog.c (find_single_use_1): Handle vectors.
17320
17321         * local-alloc.c (equiv_init_varies_p): Handle vectors.
17322         (contains_replace_regs): Same.
17323         (memref_referenced_p): Same.
17324
17325         * integrate.c (copy_rtx_and_substitute): Handle vectors.
17326         (subst_constants): Same.
17327
17328         * genattrtab.c (attr_copy_rtx): Handle vectors.
17329         (encode_units_mask): Same.
17330         (clear_struct_flag): Same.
17331         (count_sub_rtxs): Same.
17332
17333         * gcse.c (want_to_gcse_p): Handle vectors.
17334         (oprs_unchanged_p): Same.
17335         (hash_expr_1): Same.
17336         (oprs_not_set_p): Same.
17337         (expr_killed_p): Same.
17338         (compute_transp): Same.
17339         (store_ops_ok): Same.
17340
17341         * function.c (purge_addressof_1): Do not allow paradoxical subregs
17342         of vectors.
17343         (fixup_var_refs_1): Same.
17344         (instantiate_virtual_regs_1): Same.
17345
17346         * fold-const.c (operand_equal_p): Handle vectors.
17347         (fold): Same.
17348         (rtl_expr_nonnegative_p): Same.
17349
17350         * flow.c (mark_used_regs): Handle vectors.
17351
17352         * df.c (df_uses_record): Handle vectors.
17353
17354         * cselib.c (cselib_subst_to_values): Handle vectors.
17355         (cselib_mem_conflict_p): Same.
17356         (hash_rtx): Same.
17357
17358         * cse.c (canon_reg): Handle vectors.
17359         (fold_rt): Same.
17360         (cse_process_notes): Same.
17361         (count_reg_usage): Same.
17362         (canon_hash): Same.
17363
17364         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
17365
17366         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
17367
17368         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
17369         (gen_rtx): Handle CONST_VECTOR.
17370         (gen_const_vector_0): New.
17371         (copy_rtx_if_shared): CONST_VECTORs can be shared.
17372         (reset_used_flags): Same.
17373         (copy_insn_1): Same.
17374         (initializer_constant_valid_p): Handle VECTOR_CST.
17375
17376         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
17377
17378         * doc/rtl.texi (Constants): Document const_vector.
17379         (CONST0_RTX): Update for vectors.
17380         (RTL sharing): Same.
17381
17382         * print-tree.c (print_node): Add case for VECTOR_CST.
17383
17384         * tree.h (TREE_VECTOR_CST_ELTS): New.
17385         (struct tree_vector): New.
17386         (union tree_node): Add vector node.
17387         (build_vector): Add prototype.
17388
17389         * tree.def (VECTOR_CST): New.
17390
17391         * tree.c (build_vector): New.
17392
17393         * expmed.c (make_tree): Handle CONST_VECTOR.
17394
17395         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
17396         (CONST_VECTOR_ELT): New.
17397         (CONST_VECTOR_NUNITS): New.
17398
17399         * machmode.h (GET_MODE_INNER): New.
17400         (DEF_MACHMODE): Accept 8th arg.
17401
17402         * machmode.def: Add 8th argument for vector inner mode.
17403         Add inner vector modes for vectors.
17404
17405         * rtl.def (VEC_CONST): Remove.
17406         (CONST_VECTOR): New.
17407
17408         * expr.c (clear_storage): Allow vectors.
17409         (is_zeros_p): Handle VECTOR_CST.
17410
17411         * varasm.c (output_constant_pool): Handle vectors.
17412         (rtx_const): Add veclo and vechi fields.
17413         (kind): Add RTX_VECTOR.
17414         (decode_rtx_const): Add case for vector.
17415
17416         * config/rs6000/rs6000-protos.h: Add zero_constant.
17417
17418         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
17419         constants.  Force easy vector constants into memory.
17420         (easy_vector_constant): New.
17421         (emit_easy_vector_constant): New.
17422         (rs6000_legitimize_reload_address): Do not generate bad reloads on
17423         darwin.
17424
17425         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
17426         instruction does.
17427         ("altivec_lvxl"): Same.
17428         (altivec_lvebx): Same.
17429         (altivec_lvehx): Same.
17430         (altivec_lvewx): Same.
17431         ("*movv4si_const0"): New.
17432         ("*movv4sf_const0"): New.
17433         ("*movv8hi_const0"): New.
17434         ("*movv16qi_const0"): New.
17435
17436 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17437
17438         * config/h8300/h8300.c (notice_update_cc): Use
17439         cc_status.value2.
17440
17441 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17442
17443         * config/h8300/h8300.md (divmod patterns): Change the
17444         constraints for operands[1] to register_operand.
17445
17446 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17447
17448         * config/h8300/h8300-protos.h: Remove the prototype for
17449         p_operand.
17450         * config/h8300/h8300.c (p_operand): Remove.
17451         * config/h8300/h8300.md: Replace p_operand with
17452         const_int_operand.
17453
17454 2002-02-18 Philip Blundell <pb@nexus.co.uk>
17455
17456         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
17457         comment.
17458         (output_return_instruction): Allow use of LDR to unstack
17459         return addresss even for interrupt handlers or when
17460         interworking.  If compiling for ARMv5, use interworking-safe
17461         return instructions by default.  Remove duplicated code and
17462         lengthy "strcat" sequences.
17463
17464 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17465
17466         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
17467         (LINK_EH_SPEC): Define.
17468         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
17469
17470 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
17471
17472         * config/s390/s390.c (s390_emit_prologue): Do not set the
17473         frame_related flag for call-clobbered registers.
17474
17475 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
17476
17477         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
17478         (construct_container): Fix handling of SSE operands.
17479         (ix86_expand_builtin): Fix handling of 64bit pointers.
17480         (mmx_maskmovq_rex): New pattern.
17481
17482 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17483
17484         * regrename.c (kill_set_value): Handle subregs properly.
17485
17486 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
17487
17488         * objc/objc-act.c (handle_impent): Remove leading '*'
17489         from objc_class_name.
17490
17491 2002-02-17  Richard Henderson  <rth@redhat.com>
17492
17493         * config/alpha/alpha.c (some_small_symbolic_operand,
17494         some_small_symbolic_operand_1, split_small_symbolic_operand,
17495         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
17496         Handle small SYMBOL_REFs anywhere, not just inside memories.
17497         * config/alpha/alpha-protos.h: Update.
17498         * config/alpha/alpha.h (PREDICATE_CODES): Update.
17499         * config/alpha/alpha.md (small symbolic operand splitter): Update.
17500
17501 2002-02-17  Roland McGrath  <roland@frob.com>
17502
17503         * config.gcc (powerpc-*-gnu-gnualtivec*,
17504         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
17505         * config/rs6000/gnu.h: New file.
17506         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
17507         Grok "gnu" in rs6000_abi_name.
17508         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
17509         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
17510         Grok -mcall-gnu analogous to -mcall-linux et al.
17511         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17512         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
17513         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
17514
17515 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
17516
17517         PR c/3444:
17518         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
17519         shortening.
17520
17521 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17522
17523         * config/cris/cris.h: Undefine STARTFILE_SPEC and
17524         ENDFILE_SPEC before (re)defining them.
17525
17526 2002-02-17  Kazu Hirata  <kazu@hxi.com>
17527
17528         * config/h8300/h8300.c: Fix formatting.
17529         * config/h8300/h8300.h: Likewise.
17530
17531 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17532
17533         * doc/tm.texi: Explain why empty strings should not be
17534         marked for translation.
17535
17536 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17537
17538         * final.c (output_operand_lossage): Changed to accept
17539         printf style arguments. Change calls where necessary.
17540         * output.h (output_operand_lossage): Change declaration
17541         accordingly. Update copyright.
17542         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
17543         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
17544         Update copyright date where necessary.
17545
17546         * config/i386/i386.c (print_operand): Likewise. Remove use of
17547         sprintf.
17548
17549         * config/cris/cris.c (cris_operand_lossage): Likewise.
17550         Rename parameter so that exgettext recognizes it as
17551         translatable message.
17552         (LOSE_AND_RETURN): Rename parameter to msgid.
17553
17554 2002-02-17  Kazu Hirata  <kazu@hxi.com>
17555
17556         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
17557         hard coded register number with an appropriate macro.
17558         (HARD_REGNO_MODE_OK): Likewise.
17559         (ARG_POINTER_REGNUM): Likewise.
17560         (STATIC_CHAIN_REGNUM): Likewise.
17561         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
17562         * config/h8300/h8300.md (define_constants): Define more
17563         register numbers.
17564
17565 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17566
17567         * config/i386/i386.h: Don't mark empty strings for translation.
17568
17569 2002-02-16  H.J. Lu <hjl@gnu.org>
17570
17571         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
17572
17573 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
17574
17575         * cppinit.c (merge_include_chains): Check for brack being
17576         NULL before attempting to merge it with qtail.
17577
17578 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
17579
17580         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
17581         DBX_DEBUG.
17582
17583 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17584
17585         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
17586
17587 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17588
17589         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
17590         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
17591         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
17592
17593 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17594
17595         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
17596         now only if !TARGET_FIX.
17597         (*movsi_nt_vms_fix): New pattern.
17598
17599 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
17600
17601         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
17602         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
17603         (alpha_sa_mask, alpha_sa_size): Reflect above change.
17604         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
17605         (alpha_start_function, alpha_expand_epilogue): Likewise.
17606         (unicosmk_gen_dsib): Likewise.
17607
17608 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17609
17610         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
17611
17612 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
17613
17614         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
17615         check_and_change_labels, s390_final_chunkify): Delete.
17616         (s390_split_branches, s390_chunkify_pool): New functions.
17617         (s390_function_prologue): Call them.
17618
17619         * config/s390/s390.h (S390_REL_MAX): Delete.
17620         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
17621
17622         * config/s390/s390.md (cjump, icjump, jump): Fix length
17623         attribute calculation.
17624
17625
17626 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
17627
17628         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
17629         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
17630
17631 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17632
17633         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
17634         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
17635         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
17636
17637 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
17638
17639         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
17640
17641 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
17642
17643         * reload.c (find_dummy_reload): Check that an output register
17644         is valid for its mode.
17645
17646 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
17647
17648         * combine.c (known_cond): After replacing the REG of a SUBREG, try
17649         to simplify it.
17650
17651         * function.c (assign_parms): Demote promoted argument passed by
17652         transparent reference.
17653
17654 2001-02-14      Joel Sherrill <joel@OARcorp.com>
17655
17656         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
17657         -Acpu() and -Amachine() to eliminate warnings.
17658
17659 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
17660
17661         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
17662
17663 2002-02-14  Kazu Hirata  <kazu@hxi.com>
17664
17665         * config/h8300/h8300-protos.h: Update the prototype for
17666         const_costs.
17667         * config/h8300/h8300.c (const_costs): Treat SET as a little
17668         more expensive operation.
17669         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
17670         reference to const_costs.
17671
17672 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
17673
17674         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
17675
17676 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
17677
17678         PR c/5503:
17679         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
17680         use arguments from newtype.
17681
17682 2002-02-13  Eric Christopher  <echristo@redhat.com>
17683
17684         * config/mips/mips.c (override_options): Add check for march/mipsX
17685         on the same command line. Fix error message in cpu processing.
17686         Remove architecture and ISA checks.
17687
17688 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
17689
17690         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
17691
17692         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
17693
17694 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
17695
17696         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
17697         alternatives.
17698         ("*movv8hi_internal1"): Same.
17699         ("*movv16qi_internal1"): Same.
17700         ("*movv4sf_internal1"): Same.
17701
17702         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
17703         not push_reload for altivec modes.
17704
17705 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
17706
17707         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
17708         all RTEMS targets including removal of #includes from config/*/rtems*.h
17709         file and adding them to tm_file setting. Added xm_defines=POSIX to
17710         many targets.
17711         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
17712         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
17713         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
17714         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
17715         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
17716         config/m68k/rtemself.h: Ditto.
17717         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
17718         config/mips/rtems64.h: Ditto.
17719         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
17720         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
17721         Ditto.
17722         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
17723         config/sparc/rtemself.h: Ditto.
17724         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
17725         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
17726         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
17727         more like arm-elf.
17728         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
17729         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
17730         target made more similar to i386-elf.
17731         * config/i386/t-rtems-i386: Added soft float support and multilibs.
17732         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
17733         be similar to config/m68k/t-m68kelf.
17734         * gthr-rtems.h: Encapsulate with extern "C" for C++.
17735
17736 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
17737
17738         * regmove.c (kill_value): Handle subregs.
17739
17740 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
17741
17742         * i386.md (mul patterns): Allow memory operand to be first;
17743         add expanders where needed; fix constraints.
17744         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
17745         Allow memory operand to be the first.
17746
17747         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
17748         operands.
17749
17750 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
17751
17752         PR c/5681:
17753         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
17754         GET_MODE (x).
17755
17756 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
17757
17758         PR optimization/5547:
17759         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
17760         all valid IA-32 address modes involving non-scaled %ebx and
17761         GOT/GOTOFF as displacement.
17762
17763 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
17764
17765         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
17766         after emitting ltorg insns.
17767
17768         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
17769         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
17770         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
17771         *abssf2): Fix "op_type" attribute.
17772
17773 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
17774
17775         * mkconfig.sh: Avoid using a subshell redirect.
17776         ($output.T): Change to $(output)T.
17777         (ENABLE_NLS): Remove unneeded undef.
17778
17779         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
17780         * config/alpha/x-vms (libsubdir): Define.
17781
17782         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
17783         register frame procedures. Optimize retrieving context.
17784
17785         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
17786         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
17787         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
17788
17789 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17790
17791         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
17792         Make same change as for find_base_value.
17793
17794 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17795
17796         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
17797         of QImode and SImode.
17798
17799 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17800
17801         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
17802         length computation of movsi.
17803         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
17804
17805 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17806
17807         * config/h8300/h8300.md (subqi3): Tighten the predicate for
17808         operands[2] to register_operand.
17809
17810 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
17811
17812         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
17813
17814 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
17815
17816         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
17817         for altivec_lvx* and altivec_stvx*.
17818         ("*movv4si_internal"): Add constraint for loading from GPRs.
17819         ("*movv8hi_internal1"): Same.
17820         ("*movv16qi_internal1"): Same.
17821         ("*movv4sf_internal1"): Same.
17822
17823         * config/rs6000/rs6000.c (altivec_register_operand): New.
17824
17825         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17826         altivec_register_operand.
17827
17828 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
17829
17830         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
17831         handle SYMBOL_REF.
17832
17833 2002-02-13  Stan Shebs  <shebs@apple.com>
17834
17835         * c-typeck.c (digest_init): Handle vectors.
17836         (really_start_incremental_init): Same.
17837         (pop_init_level): Same.
17838         (process_init_element): Same.
17839
17840         * varasm.c (output_constant): Same.
17841
17842         * expr.c (clear_storage): Same.
17843         (store_constructor): Same.
17844
17845 2002-02-12  Eric Christopher  <echristo@redhat.com>
17846
17847         * explow.c (hard_function_value): Add comment explaining
17848         signed/unsigned comparison.
17849
17850 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
17851
17852         * jump.c (never_reached_warning): Add finish argument.
17853         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
17854         real insn after end.
17855         * rtl.h (never_reached_warning): Adjust prototype.
17856         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
17857         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
17858         never_reached_warning.
17859
17860 2002-02-12  Graham Stott  <grahams@redhat.com>
17861
17862         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
17863
17864 2002-02-12  Kazu Hirata  <kazu@hxi.com>
17865
17866         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
17867         logical shifts on H8/300.
17868         (shift_alg_si): Improve several shifts on H8/300.
17869         (get_shift_alg): Likewise.
17870
17871 2002-02-12  Graham Stott  <grahams@redhat.com>
17872
17873         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
17874
17875 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17876
17877         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
17878         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
17879
17880 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
17881
17882         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
17883         non-CONST_INT through default_assemble_integer.
17884         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
17885         <case 8>: Abort for CONST_DOUBLE.
17886
17887 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17888
17889         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
17890         is specified.
17891         * config/pa/pa-linux.h (LIB_SPEC): Delete.
17892         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
17893
17894 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
17895
17896         * config/stormy16/stormy16.md (zero_extendqihi2): New.
17897
17898 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
17899
17900         * regrename.c (regrename_optimize): Don't accept a
17901         part-clobbered register if the replaced register is not part
17902         clobbered.
17903
17904         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
17905         take padding into account when computing the argument value.
17906
17907         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
17908
17909         * combine.c (try_combine): Apply substitutions in
17910         CALL_INSN_FUNCTION_USAGE too.
17911
17912 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
17913
17914         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
17915         __builtin_altivec_abs*.
17916         (bdesc_abs): New.
17917
17918         * config/rs6000/rs6000.h (rs6000_builtins): Add
17919         ALTIVEC_BUILTIN_ABS*.
17920
17921         * config/rs6000/altivec.h: Use const char for builtins expecting
17922         literals.
17923         (vec_abs): New versions for C and C++.
17924         (vec_abss): Same.
17925
17926 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17927
17928         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
17929         using Pmode.
17930
17931 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17932
17933         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
17934         constant definition from h8300.md.
17935         (FRAME_POINTER_REGNUM): Likewise.
17936         * config/h8300/h8300.md (define_constants): Add FP_REG.
17937
17938 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17939
17940         * config/h8300/h8300.c (print_operand): Remove redundant code.
17941
17942 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17943
17944         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
17945         * config/h8300/h8300.c (byte_reg): Make it static.
17946
17947 2002-02-10  Richard Henderson  <rth@redhat.com>
17948
17949         PR c/5623
17950         * c-typeck.c (incomplete_type_error): Handle flexible array members.
17951
17952 2002-02-10  Richard Henderson  <rth@redhat.com>
17953
17954         PR c++/5624
17955         * tree.c (append_random_chars): Don't abort if main_input_filename
17956         does not exist.
17957
17958 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
17959
17960         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
17961
17962 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17963
17964         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
17965         (pushhi1): Likewise.
17966
17967 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17968
17969         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
17970         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
17971
17972 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
17973
17974         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
17975         remove MASK_VIS.
17976         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
17977
17978 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17979
17980         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
17981         a half of an SImode register on H8/300.
17982
17983 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
17984
17985         * i386.md (movdi_2): Add missing '!'.
17986
17987 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17988
17989         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
17990         definitions.
17991
17992 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17993
17994         * config/h8300/h8300.md (length): Correct the distance valid
17995         for the short branch.
17996
17997 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17998
17999         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
18000
18001 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18002
18003         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
18004         registers in SImode.
18005         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
18006         part-clobbered.
18007
18008         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
18009         patch.
18010
18011         Contribute sh64-elf.
18012         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18013         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
18014         (sh_cannot_modify_jumps_p): New function.
18015         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
18016         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
18017         (sh_ms_bitfield_layout_p): New function.
18018         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
18019                     Zack Weinberg  <zack@codesourcery.com>
18020         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
18021         expand_simple_binop instead of expand_binop.
18022         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
18023         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
18024         use of .quad and .uaquad.
18025         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
18026         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
18027         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18028         * config/sh/sh.md (movdi_const, movdi_const_32bit,
18029         movdi_const_16bit): Make sure all CONSTs have modes.
18030         (sym2PIC): Ditto, but by adjusting all callers.
18031         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
18032         if the prologue calls the SHmedia argument decoder or register
18033         saver.
18034         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18035         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
18036         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
18037         (sh_expand_epilogue): Don't emit USE of return target register.
18038         (prepare_move_operands): Legitimize DImode PIC addresses.
18039         (sh_media_register_for_return): Skip tr0, used to initialize the
18040         PIC register.
18041         (sh_expand_prologue): Remove explicit USE of return register.
18042         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
18043         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
18044         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
18045         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
18046         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
18047         EXTRA_CONSTRAINT_T.
18048         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
18049         (MOVI_SHORI_BASE_OPERAND_P): New.
18050         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
18051         (EXTRA_CONSTRAINT_T): Define in terms of them.
18052         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
18053         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
18054         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
18055         alternatives supporting TARGET_REGS.
18056         (UNSPEC_GOTPLT): New constant.
18057         (movdi split): Move incrementing of LABEL_NUSES...
18058         (movdi_const, movdi_const_32bit): Here.  Use
18059         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
18060         (movdi_const_16bit): New.
18061         (call, call_value) [flag_pic]: Use GOTPLT.
18062         (call_pop, call_value_pop): New expands.
18063         (call_pop_compact, call_pop_rettramp): New insns.
18064         (call_value_pop_compact, call_value_pop_rettramp): New insns.
18065         (sibcall) [flag_pic]: Use GOT.
18066         (builtint_setjmp_receiver): Remove bogus, unused expand.
18067         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
18068         (*pt, *ptb, ptrel): New insns.
18069         (sym2GOT): Handle DImode GOT.
18070         (sym2GOTPLT, symGOTPLT2reg): New expands.
18071         (sym2PIC): New expand.
18072         (shcompact_return_tramp): Use GOTPLT to return trampoline.
18073         (shcompact_return_tramp_i): Use return register explicitly.
18074         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
18075         disable flag_reorder_blocks.
18076         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
18077         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
18078         clobbers, for clarity.
18079         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
18080         restoring of r0 in macl as MAYBE_DEAD.
18081         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
18082         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
18083         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
18084         alter_subreg all over.
18085         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
18086         reload, instead of emitting instructions that would require
18087         reloading.
18088         (casesi_load_media): Add missing modes.
18089         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
18090         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
18091         as used if the argument decoder is called.
18092         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18093         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
18094         Pmode, then extend it to DImode if necessary.
18095         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18096         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
18097         constants in FPU-enabled SHmedia, let them be loaded from memory.
18098         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18099         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
18100         Adjust whitespace in assembly output templates.
18101         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18102         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
18103         mode of if_then_else.
18104         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
18105         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
18106         sh.h.
18107         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
18108                     Joern Rennecke <amylaar@redhat.com>
18109         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
18110         (SUBTARGET_CPP_PTR_SPEC): New.
18111         (SUBTARGET_CPP_SPEC): Remove.
18112         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18113         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18114         Fix typo in previous checkin.
18115         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
18116         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
18117         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
18118                     Alexandre Oliva  <aoliva@redhat.com>
18119         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
18120         what single FP register can hold for SHmedia target.
18121         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18122                     Alexandre Oliva  <aoliva@redhat.com>
18123         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18124         Do not split into SUBREG.
18125         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
18126         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
18127         and added new functions as specified in SH5 ABI r9.
18128         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
18129         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
18130         8-byte boundary.
18131         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
18132         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
18133         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
18134         and consttable_window_ends.
18135         2001-06-03  Graham Stott  <grahams@redhat,com>
18136         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
18137         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
18138         * config/sh/sh.c (print_operand): Handle floating-point pair,
18139         vector and matrix registers.
18140         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
18141         vector modes into account.
18142         * config/sh/sh.md (movv2sf): Split move between registers into
18143         movdf.
18144         (movv4sf, movv16sf): Introduce insns that get split only after
18145         reload.
18146         * config/sh/shmedia.h: Fix Copyright dates.
18147         * config/sh/ushmedia.h: Likewise.  Move loop counter
18148         declarations into conditionals that uses them.
18149         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
18150         loop boundary.
18151         * config/sh/sshmedia.h: Fix Copyright dates.
18152         (sh_media_PUTCFG): Fix constraints.
18153         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
18154         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
18155         ptrmemfunc_vbit_in_delta for SH5.
18156         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
18157         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
18158         * invoke.texi: Likewise.
18159         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
18160         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
18161         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
18162         GCC_pop_shmedia_regs_nofpu): New global symbols.
18163         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
18164         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
18165         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
18166         compact function with nonlocal labels.
18167         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
18168         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
18169         (initial_elimination_offset): Account for their stack space.
18170         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
18171         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
18172         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
18173         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
18174         least one of the operands to be a register.
18175         (movv2sf): Likewise.  Renamed to movv2sf_i.
18176         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
18177         prepare_move_operands() before emitting SHmedia insns.
18178         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
18179         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
18180         Don't save nor initialize r12.  Don't mis-align the stack.
18181         Pad the code with a nop.
18182         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
18183         stack.
18184         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
18185         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
18186         [__SHMEDIA__]: Implement.
18187         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
18188         * config/sh/sh.md: Set latency of `pt' closer to reality.
18189         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
18190         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
18191         Set move, load and store type attributes.
18192         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
18193         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
18194         profiling.
18195         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
18196         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
18197         * config/sh/sh.c (sh_media_register_for_return): New function.
18198         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
18199         branch-target register.
18200         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
18201         * config/sh/sh.md (return_media_i): Use any call-clobbered
18202         branch-target register.
18203         (return_media): If r18 wasn't copied in the prologue, copy it
18204         here.
18205         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
18206         Clear class FP0_REGS.
18207         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
18208         from elf.h.
18209         2001-03-08  DJ Delorie  <dj@redhat.com>
18210         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
18211         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
18212         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
18213         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
18214         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
18215         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
18216         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
18217         return value correctly for call_cookie.
18218         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
18219         * config/sh/crt1.asm (start): Modified so as to call
18220         ___setup_argv_and_call_main.
18221         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
18222         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
18223         SHmedia mode.
18224         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
18225         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
18226         (STRIP_NAME_ENCODING): Use it.
18227         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
18228         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
18229         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
18230         prepare_scc_operands().
18231         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
18232         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
18233         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
18234         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
18235         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
18236         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
18237         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
18238         used in shcompact_incoming_args.
18239         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
18240         change.
18241         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
18242         mode.
18243         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
18244         Adjust accordingly.
18245         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
18246         Simplify.  Adjust.  Add sanity check.
18247         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
18248         FPU_SINGLE_BIT.
18249         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
18250         TARGET_SHCOMPACT.
18251         (udivsi3, divsi3): Use them.
18252         (force_mode_for_call): New insn.
18253         (call, call_value, sibcall_value): Emit it before SHcompact
18254         calls.
18255         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
18256         * config/sh/sh.md (call, call_value, sibcall): Make sure the
18257         call cookie is non-NULL before taking its value.
18258         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
18259         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
18260         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
18261         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
18262         block.
18263         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
18264         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
18265         temporary for stack adjusts.  Use MACL and MACH to pass
18266         arguments to shcompact_incoming_args.
18267         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
18268         clobber r1.
18269         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
18270         (nested_trampoline): Load static chain address into r1.
18271         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
18272         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
18273         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
18274         fp_arith_reg_operand().
18275         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
18276         * config/sh/sh.md (casesi): Sign-extend the first two operands,
18277         and use signed compares for them.
18278         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
18279         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
18280         ones properly aligned.
18281         (find_barrier): Account for extra alignment needed for 8-byte wide
18282         constants.
18283         (machine_dependent_reorg): Require a label for the second 4-byte
18284         constant after an 8-byte one.
18285         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
18286         change.
18287         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
18288         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
18289         last_float when switching float modes.
18290         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
18291         auto-increment for general-purpose registers.
18292         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
18293         result.
18294         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
18295         for stack adjust.
18296         * config/sh/sh.c (sh_builtin_saveregs): Support using all
18297         registers for varargs.
18298         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
18299         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
18300         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
18301         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
18302         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
18303         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
18304         call_cookie accordingly.
18305         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
18306         (SHCOMPACT_BYREF): Likewise.
18307         (SHCOMPACT_FORCE_ON_STACK): New macro.
18308         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
18309         (sh_builtin_saveregs): Likewise.
18310         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18311         shcompact_incoming_args): Use new shift values.  Support
18312         sequences of consecutive and non-consecutive pushes/pops.
18313         * config/sh/sh.md (return): Don't explicitly use PR_REG.
18314         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
18315         * config/sh/sh.h (TEXT_SECTION): Define.
18316         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
18317         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
18318         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
18319         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
18320         return values on FPU-enabled SHmedia.
18321         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
18322         FPU-enabled SHmedia.
18323         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
18324         value is returned in a non-FP reg and is not returned by
18325         reference.
18326         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
18327         jump_ind.
18328         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
18329         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
18330         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
18331         quad-aligned to be passed by callee-copy reference.
18332         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
18333         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
18334         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
18335         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
18336         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
18337         copying low-numbered FP regs to r7 and r8.
18338         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
18339         FP regs to general-purpose regs only if the copy was passed on the
18340         stack.
18341         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
18342         copying FP reg to r9.
18343         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
18344         copy FP regs to general-purpose regs only in outgoing calls.
18345         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
18346         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
18347         HOST_WIDE_INT.
18348         * config/sh/sh.h (struct sh_args): Document all fields.
18349         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
18350         passed partially on the stack should not consider making
18351         sibcalls.
18352         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
18353         stack_regs only for incoming calls.  When passing FP args,
18354         make sure there are FP regs available before modifying
18355         call_cookie.
18356         (SHCOMPACT_BYREF): Pass double args in general-purpose
18357         registers by reference.
18358         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
18359         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
18360         attempt to generate sibcalls if the caller got any arguments
18361         by reference.
18362         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
18363         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
18364         to 8-byte boundaries.
18365         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
18366         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
18367         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
18368         stored in the stack.
18369         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
18370         for the offsets to have the ISA bit set.
18371         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
18372         invocation.  Use beq instead of bgt to mark end of sequence of
18373         loads.
18374         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
18375         bgt to mark end of sequence of stores.
18376         * config/sh/sh.c (arith_operand): Don't check whether
18377         CONST_OK_FOR_J for now.
18378         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
18379         instead of long for conversion.
18380         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
18381         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
18382         before passing it to fprintf.
18383         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
18384         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
18385         Call set_fpscr before reading/writing SR.
18386         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
18387         Call set_fpscr.
18388         * config/sh/lib1funcs.asm: Add `.align 2' directives before
18389         SHmedia code.
18390         (FMOVD_WORKS): Define on SH5 with FPU.
18391         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
18392         setting.
18393         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
18394         _fpscr_values.
18395         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
18396         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
18397         address.
18398         (ia_main_table): Ditto.
18399         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
18400         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
18401         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
18402         the definitions from sh.h.
18403         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
18404         TARGET_SH5.
18405         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
18406         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
18407         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
18408         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
18409         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
18410         Increment LABEL_NUSES.
18411
18412         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
18413         TARGET_SH5.
18414         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
18415         defined.
18416         * config/sh/elf.h (SIZE_TYPE): Likewise.
18417         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
18418         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18419         shcompact_incoming_args): Load switch table addresses using
18420         datalabel.
18421         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
18422         (NO_BUILTIN_SIZE_TYPE): Define.
18423         (SIZE_TYPE): Don't define.
18424         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
18425         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
18426         definition of __SH5__=32 for -m5-compact-nofpu.
18427         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
18428         ADDR_DIFF_VEC.
18429         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
18430         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
18431         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
18432         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
18433         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
18434         (INSN_LENGTH_ALIGNMENT): Likewise.
18435         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18436         * config/sh/sh.md (call, call_value, sibcall): Simplify
18437         copying of non-branch-target register.
18438         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18439         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
18440         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
18441         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18442         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
18443         floating-point values as structs.
18444         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
18445         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
18446         general-purpose register.
18447         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
18448         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
18449         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
18450         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
18451         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
18452         (ENCODE_SECTION_INFO): Enclose variables and constants in
18453         DATALABEL unspecs.
18454         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
18455         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
18456         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
18457         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
18458         only for LABEL_REFs.  For SYMBOL_REFs, prepend
18459         SH_DATALABEL_ENCODING to the symbol name.
18460         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
18461         convert_mode().
18462         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
18463         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
18464         UNSPEC_DATALABEL.
18465         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
18466         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
18467         (DATALABEL_REF_P): Don't require CONST.
18468         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
18469         REL label.
18470         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
18471         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
18472         right.
18473         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
18474         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
18475         Use shallow_copy_rtx and PUT_MODE to change the mode of
18476         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
18477         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
18478         on SHmedia using GENERAL_REGs.
18479         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
18480         bltu_media_i): Fix reversion of conditions.
18481         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
18482         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
18483         * config/sh/sh.c (output_far_jump): Save r13 in macl.
18484         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
18485         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
18486         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
18487         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
18488         (GCC_nested_trampoline): Likewise.
18489         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
18490         * config/sh/sh.c (gen_datalabel_ref): Define.
18491         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
18492         (INITIALIZE_TRAMPOLINE): Likewise.
18493         (TRAMPOLINE_ADJUST_ADDRESS): Define.
18494         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
18495         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
18496         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
18497         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
18498         (ic_invalidate): Adjust for SH5.
18499         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
18500         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
18501         _nested_trampoline.
18502         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
18503         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
18504         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
18505         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
18506         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
18507         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
18508         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
18509         * config/sh/sh.c (target_reg_operand): Match only target-branch
18510         registers and pseudos that aren't virtual registers.
18511         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
18512         Copy operands that don't match target_reg_operand to pseudos.
18513         (call_media, call_value_media, sibcall_media): Use
18514         target_reg_operand instead of target_operand.
18515         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
18516         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
18517         * config/sh/sh.c (target_reg_operand): Match hardware registers
18518         other than branch-target registers.
18519         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
18520         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
18521         (fpscr_values) [SH5 == 32]: Define.
18522         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
18523         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
18524         Handle function addresses coming in SUBREGs.
18525         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
18526         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18527         shcompact_return_trampoline): Use datalabel where appropriate.
18528         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
18529         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
18530         general-purpose register to copy one branch-target register to
18531         another.
18532         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
18533         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
18534         SYMBOL_REFs with VOIDmode.
18535         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
18536         bltu_media_i): New insns.
18537         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
18538         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
18539         (INIT_CUMULATIVE_ARGS): Likewise.
18540         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
18541         * machmode.def (V16SFmode): New mode.
18542         * c-common.c (type_for_mode): Support V2SF and V16SF.
18543         * tree.c (build_common_tree_nodes_2): Likewise.
18544         * tree.h (tree_index): Likewise.
18545         * calls.c (emit_call_1): Take args_so_far.  Adjust all
18546         callers.  Introduce CALL_POPS_ARGS.
18547         * tm.texi (CALL_POPS_ARGS): Document.
18548         * config/sh/crt1.asm: Implement in SHmedia mode.
18549         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
18550         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
18551         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
18552         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
18553         Implement divsi and udivsi in SHmedia mode.  Introduce
18554         SHcompact trampolines.
18555         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
18556         only in SHmedia64.
18557         (regno_reg_class): Rewrite.
18558         (fp_reg_names): Remove.
18559         (sh_register_names, sh_additional_register_names): New.
18560         (print_operand): Added `u'.  Support SUBREGs in addresses.
18561         Add parentheses around shifted CONSTs.
18562         (output_file_start): Output .mode and .abi directives.
18563         (shiftcosts, addsubcosts, multcosts): Adjust.
18564         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
18565         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
18566         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
18567         bytes, not registers.  Take into account the need for the
18568         SHcompact incoming args trampoline.  Adjust all callers.
18569         (sh_expand_prologue): Take stack_regs into account.  Call
18570         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
18571         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
18572         stack aligned as per SH5 ABI.
18573         (sh_builtin_saveregs): Support SH5 ABI.
18574         (sh_build_va_list, sh_va_start): Likewise.
18575         (initial_elimination_offset): Take alignment into account.
18576         Compute location of PR according to the SH5 stack frame.
18577         (arith_reg_operand): Reject branch-target registers.
18578         (shmedia_6bit_operand): New.
18579         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
18580         (target_reg_operand): Match DImode only.  Accept SUBREGs.
18581         (target_operand): New.
18582         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
18583         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
18584         SIBCALL_REGS for SHmedia.
18585         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
18586         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
18587         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
18588         (TARGET_SWITCHES): New SH5 flags.
18589         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
18590         VALID_REGISTER_P to disable unsupported registers.
18591         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
18592         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
18593         (FUNCTION_ARG_PADDING): Define.
18594         (FASTEST_ALIGNMENT): Adjust.
18595         (SH_REGISTER_NAMES_INITIALIZER): New.
18596         (sh_register_names): Declare.
18597         (DEBUG_REGISTER_NAMES): Define.
18598         (REGISTER_NAMES): Define based on sh_register_names.
18599         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
18600         (sh_additional_register_names): Declare.
18601         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
18602         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
18603         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
18604         (REGISTER_NATURAL_MODE): Define.
18605         (FIRST_PSEUDO_REGISTER): Adjust.
18606         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
18607         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
18608         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
18609         (VECTOR_MODE_SUPPORTED_P): Define.
18610         (REG_CLASS_CONTENTS): Adjust.
18611         (SMALL_REGISTER_CLASSES): Adjust.
18612         (REG_ALLOC_ORDER): Adjust.
18613         (INDEX_REG_CLASS): Adjust.
18614         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
18615         (CONST_OK_FOR_LETTER_P): Adjust.
18616         (PREFERRED_RELOAD_CLASS): Adjust.
18617         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
18618         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
18619         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
18620         (FIRST_FP_PARM_REG): Adjust.
18621         (CALL_POPS_ARGS): Define.
18622         (FUNCTION_ARG_REGNO_P): Adjust.
18623         (struct sh_args): New fields.
18624         (GET_SH_ARG_CLASS): Adjust.
18625         (INIT_CUMULATIVE_ARGS): Adjust.
18626         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
18627         (FUNCTION_ARG_ADVANCE): Adjust.
18628         (FUNCTION_ARG): Adjust.
18629         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
18630         (FUNCTION_ARG_CALLEE_COPIES): Define.
18631         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
18632         (STRICT_ARGUMENT_NAMING): Define.
18633         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
18634         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
18635         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
18636         (SETUP_INCOMING_VARARGS): Adjust.
18637         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
18638         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
18639         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
18640         (SUBREG_OK_FOR_INDEX_P): Adjust.
18641         (EXTRA_CONSTRAINT_S): Update.
18642         (EXTRA_CONSTRAINT_T): New.
18643         (EXTRA_CONSTRAINT): Adjust.
18644         (GO_IF_LEGITIMATE_INDEX): Adjust.
18645         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
18646         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
18647         (MOVE_MAX): Adjust.
18648         (MAX_MOVE_MAX): Define.
18649         (Pmode): Adjust.
18650         (CONST_COSTS): Adjust.
18651         (REGISTER_MOVE_COST): Adjust.
18652         (BRANCH_COST): Adjust.
18653         (TEXT_SECTION_ASM_OP): Adjust.
18654         (DBX_REGISTER_NUMBER): Adjust.
18655         (ASM_OUTPUT_DOUBLE_INT): New.
18656         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
18657         (PREDICATE_CODES): Adjust.
18658         (PROMOTE_MODE): Adjust.
18659         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
18660         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
18661         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
18662         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
18663         (DR0_REG, DR2_REG, DR4_REG): Renumber.
18664         (TR0_REG, TR1_REG, TR2_REG): New.
18665         (XD0_REG): Renumber.
18666         (UNSPEC_COMPACT_ARGS): New.
18667         (type): Added pt and ptabs.
18668         (length): Default to 4 on SHmedia.  Default pt length to 12
18669         and     20 on SHmedia32 and SHmedia64, respectively.
18670         (pt): New function unit.
18671         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
18672         Add whitespace between operands of SHmedia instructions.
18673         (movdicc): Fix.
18674         (adddi3_media, addsi3_media): Adjust constraints.
18675         (subsi3) [SHmedia]: Force operand 1 into a register.
18676         (udivsi3_i1_media, udivsi3_i4_media): New.
18677         (udivsi3): Support SHmedia.
18678         (divsi3_i1_media, divsi3_i4_media): New.
18679         (divsi3): Support SHmedia.
18680         (anddi3, iordi3, xordi3): Adjust constraints.
18681         (zero_extendhidi2, zero_extendqidi2): New.
18682         (extendsidi2, extendhidi2, extendqidi2): New.
18683         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
18684         (pop_e, pop_fpul, pop_4): Likewise.
18685         (movsi_media): Support FP and BT registers.
18686         (movsi_media_nofpu): New.  Adjust splits to DImode.
18687         (lduw, ldub): Renamed to zero_extend* above.
18688         (movqi_media): Fix typo.
18689         (movdi_media): Support FP and BT registers.
18690         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
18691         (movdi_const_32bit): New.
18692         (shori_media): Require immediate operand.  Use `u' for output.
18693         (movdf_media, movsf_media): Simplified.
18694         (movdf_media_nofpu, movsf_media_nofpu): New.
18695         (movdf, movsf): Adjust
18696         (movv2sf, movv2sf, movv16sf): New.
18697         (beq_media, beq_media_i): Adjust constraints.  Don't use
18698         scratch BT register.
18699         (bne_media, bne_media_i): Likewise.
18700         (bgt_media, bgt_media_i): Likewise.
18701         (bge_media, bge_media_i): Likewise.
18702         (bgtu_media, bgtu_media_i): Likewise.
18703         (bgeu_media, bgeu_media_i): Likewise.
18704         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
18705         bunordered): Emit jump insn.  Force operands to registers when
18706         needed.
18707         (jump_media, jump): Simplify.
18708         (call_compact, call_compact_rettramp): New.
18709         (call_value_compact, call_value_compact_rettramp): New.
18710         (call_media, call_value_media): Simplify.
18711         (sibcall_compact, sibcall_media): New.
18712         (call, call_value): Adjust for SHmedia and SHcompact.
18713         (sibcall, sibcall_value, untyped_call): Likewise.
18714         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
18715         (indirect_jump): Adjust for SHmedia.
18716         (casesi_jump_media): New.
18717         (nop): Re-enable for SHmedia.
18718         (call_site): Restrict to SH1.
18719         (casesi): Adjust for SHmedia.
18720         (casesi_shift_media, casesi_load_media): New.
18721         (return): Explicitly use PR register.  Call return trampoline
18722         on SHcompact.
18723         (return_i): Explicitly use PR register.
18724         (shcompact_return_tramp, shcompact_return_tramp_i): New.
18725         (return_media): Adjust.
18726         (shcompact_incoming_args): New.
18727         (epilogue): Adjust.
18728         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
18729         (movstrsi): Disable on SH5.
18730         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
18731         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
18732         (subsf3, subsf3_media): Likewise.
18733         (mulsf3, mulsf3_media, mac_media): Likewise.
18734         (divsf3, divsf3_media): Likewise.
18735         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
18736         (floatsisf2, fux_truncsfsi2): Likewise.
18737         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
18738         constraints.
18739         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
18740         (cmpunsf_media, cmpsf): Likewise.
18741         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
18742         (abssf2, abssf2_media): Likewise.
18743         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
18744         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
18745         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
18746         (floatsidf2, fix_truncdfsi2): Likewise.
18747         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
18748         constraints.
18749         (cmpeqdf_media, cmpgtdf_media): Likewise.
18750         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
18751         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
18752         (absdf2, absdf2_media): Likewise.
18753         (extendsfdf2, extendsfdf2_media): Likewise.
18754         (truncsfdf2, truncsfdf2_media): Likewise.
18755         * config/sh/sh64.h: New file.
18756         * config/sh/t-sh64: New file.
18757         * config/sh/shmedia.h: New file.
18758         * config/sh/ushmedia.h: New file.
18759         * config/sh/sshmedia.h: New file.
18760         * configure.in: Added sh64-*-elf.
18761         * configure: Rebuilt.
18762         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
18763         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
18764         (reg_class_from_letter): Use `b' for TARGET_REGS.
18765         (print_operand): Support `%M', `%m', `AND' and
18766         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
18767         (andcosts): Adjust for SHmedia.
18768         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
18769         Likewise.
18770         (target_reg_operand): New function.
18771         * config/sh/sh-protos.h (target_reg_operand): Declare.
18772         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
18773         FP registers on SH5.
18774         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
18775         on SH4.
18776         (TARGET_REGISTER_P): New macro.
18777         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
18778         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
18779         (EXTRA_CONSTRAINT_S): New macro.
18780         (EXTRA_CONSTRAINT): Adjust.
18781         (FLOAT_TYPE_SIZE): Define to 32.
18782         (Pmode): DImode on SHmedia.
18783         (CONST_COSTS): Adjust for SHmedia literals.
18784         (PREDICATE_CODES): Added target_reg_operand.
18785         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
18786         * config/sh/sh.md: Remove all attrs from SHmedia insns.
18787         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
18788         (cmpdi): Accept SHmedia.
18789         (movdicc_false, movdicc_true): New insns.
18790         (movdicc): New expand.
18791         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
18792         no_new_pseudos.
18793         (addsi3_media): Match `S' constraint.
18794         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
18795         (negdi2): Expand for SHmedia.
18796         (one_cmpldi2): New expand.
18797         (zero_extendsidi2): Change from expand to insn.
18798         (extendsidi2): Add constraints.
18799         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
18800         LD/ST address.  Fix SI immediate loading split.
18801         (movhi_media, movqi_media, lduw, ldub): New insns.
18802         (movhi, movqi): Accept SHmedia.
18803         (shori_media, movdi_media): Relax input constraints.  Split
18804         symbolic constants.
18805         (movdf_media, movsf_media): New insn.  New split to movdi.
18806         (movdf, movsf): Match on SHmedia.
18807         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
18808         bgeu_media): New insns and splits.  New insns with `_i' suffix.
18809         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
18810         (bunordered): New expand.
18811         (jump_compact): Renamed from `jump'.
18812         (jump_media): New insn.
18813         (jump): New expand.
18814         (call_media, call_value_media): New insns.
18815         (call, call_value): Adjust.
18816         (indirect_jump_compact): Renamed from `indirect_jump'.
18817         (indirect_jump_media): New insn.
18818         (indirect_jump): New expand.
18819         (untyped_call, return): Accept SHmedia.
18820         (return_media): New insn.
18821         (prologue, epilogue, blockage): Accept SHmedia.
18822         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
18823         (sunordered): New expand.
18824         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
18825         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
18826         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
18827         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
18828         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
18829         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
18830         abssf2_media): New insns.
18831         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
18832         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
18833         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
18834         floatdidf2, floatsidf2_media, fix_truncdfdi2,
18835         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
18836         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
18837         absdf2_media): New insns.
18838         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
18839         (extendsfdf2_media, truncdfsf2_media): New insns.
18840         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
18841         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
18842         * config/sh/sh.h (CONST_OK_FOR_J): Document.
18843         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
18844         * config/sh/sh.md (adddi3): New expand.
18845         (adddi3_media, adddi3z_media): New insns.
18846         (adddi3_compact): Renamed from adddi3.
18847         (addsi3_media): Use add.l r63 to add constant zero.
18848         (subdi3): New expand.
18849         (subdi3_media): New insn.
18850         (subdi3_compact): Renamed from subdi3.
18851         (mulsidi3): New expand.
18852         (mulsidi3_media): New insn.
18853         (mulsidi3_compact): Renamed from mulsidi3.
18854         (umulsidi3): New expand.
18855         (umulsidi3_media): New insn.
18856         (umulsidi3_compact): Renamed from umulsidi3.
18857         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
18858         (ashlsi3, ashrsi3, lshrsi3): Use them.
18859         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
18860         (ashldi3, ashrdi3, lshrdi3): Use them.
18861         (zero_extendsidi2): New expand.
18862         (extendsidi2): New insn.
18863         (movsi_media): New insn.  Split to movdi to load constants.
18864         (movsi): Enable for shmedia.
18865         (movdi_media): New insn.  Use shori_media to load wide constants.
18866         (short_media): New insn.
18867         (movdi): Enable for shmedia.
18868         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
18869         * config/sh/sh.h (CPP_SPEC): Added `m5'.
18870         (SUBTARGET_CPP_SPEC): Added `!m5'.
18871         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
18872         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
18873         to all other SH variants.
18874         (TARGET_DEFAULT): Set to SH1_BIT.
18875         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
18876         (BITS_PER_WORD): Raise to 64 on shmedia.
18877         (MAX_BITS_PER_WORD): Change to 64.
18878         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
18879         (INT_TYPE_SIZE): Keep as 32.
18880         (UNITS_PER_WORD): Raise to 8 on shmedia.
18881         (MIN_UNITS_PER_WORD): Keep as 4.
18882         (POINTER_SIZE): Raise to 64 on shmedia.
18883         (CONST_OK_FOR_J): New macro.
18884         (CONST_OK_FOR_LETTER_P): Use it.
18885         (processor_type): Add PROCESSOR_SH5.
18886         * config/sh/sh.md: Conditionalize all expands, insns and
18887         splits to TARGET_SH1.
18888         (cpu): Added sh5.
18889         (addsi3_compact): Renamed from...
18890         (addsi3): Now an expand.
18891         (addsi3_media, subsi3_media): New insns.
18892         (subsi3): Don't negate constants with SHmedia.
18893
18894         * hooks.c: New file.
18895         * hooks.h: New file.
18896         * Makefile.in (HOOKS_H): New.
18897         (TARGET_DEF_H): Added $(HOOKS_H).
18898         (OBJS): Added hooks.o.
18899         (cfgcleanup.o, bb-reorder.o): Added target.h.
18900         (hooks.o): Added dependencies.
18901         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
18902         (TARGET_INITIALIZER): this.
18903         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
18904         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
18905         * bb-reorder.c: Include target.h.
18906         (reorder_basic_blocks): Skip if cannot modify jumps.
18907         * cfgcleanup.c: Include target.h.
18908         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
18909
18910 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
18911
18912         * config/mips/mips.md (casesi_internal, casesi_internal_di):
18913         Protect jump delay slot instructions with .set noreorder and
18914         .set nomacro.
18915
18916 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
18917
18918         * config/mips/mips.md (casesi_internal_di): Calculate
18919         the index into the target offset table correctly.
18920
18921 2002-02-08  Richard Henderson  <rth@redhat.com>
18922
18923         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
18924         * final.c (output_addr_const): Accept and discard SUBREG.
18925         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
18926         mark them unknown instead.
18927         (simplify_subtraction): Handle RTX_UNKNOWN.
18928         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
18929
18930 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
18931
18932         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
18933
18934 2002-02-08  Richard Henderson  <rth@redhat.com>
18935
18936         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
18937
18938 2002-02-08  Andreas Jaeger  <aj@suse.de>
18939
18940         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
18941         * config/i386/t-linux64: New file.
18942
18943 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
18944
18945         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
18946         * c-parse.in (compstmt): Clear last_expr_type.
18947
18948 2002-02-07  Richard Henderson  <rth@redhat.com>
18949
18950         * loop.c (strength_reduce): Sink final_value when not
18951         eliminating a biv.
18952
18953 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
18954
18955         * config/sparc/freebsd.h: Fix mismatched spec {.
18956
18957 2002-02-07  Richard Henderson  <rth@redhat.com>
18958
18959         * cfgrtl.c: Include recog.h and insn-config.h.
18960         (keep_with_call_p): Fix general_operand invocation.
18961         * Makefile.in (cfgrtl.o): Update dependencies.
18962
18963 2002-02-07  Kazu Hirata  <kazu@hxi.com>
18964
18965         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
18966         comment.  Accept HImode only if TARGET_H8300.
18967
18968 2002-02-07  Eric Christopher  <echristo@redhat.com>
18969
18970         * config/mips/crtn.asm: Cleanup #ifdefs.
18971
18972 2002-02-07  Eric Christopher  <echristo@redhat.com>
18973
18974         * config/mips/crti.asm: Add changes for mips16. mips16 uses
18975         register 7 as RA instead of $31.
18976         * config/mips/crtn.asm: Ditto.
18977         * config/mips/mips.c (mips_move_2words): Add case for
18978         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
18979         (compute_frame_size): Fix typo.
18980         (save_restore_insns): Ditto.  Make documentation about using
18981         register $7 as return register more precise.
18982         (mips_expand_epilogue): Fix comment. Add code to work around not
18983         being able to add to the stack pointer directly.
18984         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
18985         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
18986         epilogue.
18987
18988 2002-02-07  Tom Rix  <trix@redhat.com>
18989
18990         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
18991         immediates in ldu and stdu DS opcode field.
18992         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
18993         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
18994         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
18995
18996 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
18997
18998         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
18999         offset for stack bias.
19000
19001 2002-02-07  H.J. Lu <hjl@gnu.org>
19002
19003         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
19004
19005 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
19006
19007         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
19008
19009 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
19010
19011         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
19012         * i386.c (x86_order_regs_for_local_alloc): New global function.
19013         * i386.h (REG_ALLOC_ORDER): CLeanup.
19014         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
19015
19016 2002-02-07  Richard Henderson  <rth@redhat.com>
19017
19018         PR optimization/2463
19019         * alias.c (find_base_value): Recall base values for fixed hard regs.
19020         * loop.c (loop_regs_update): Don't use single_set on non-insns.
19021
19022 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
19023
19024         * config/mips/mips.md (define_delay) [mips16]: Adjust required
19025         length.
19026
19027 2002-02-06  Richard Henderson  <rth@redhat.com>
19028
19029         PR c/5609
19030         * stmt.c (resolve_operand_name_1): Take more care with mixed
19031         named and unnamed operands.
19032
19033 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
19034             Jan Hubicka  <jh@suse.cz>
19035
19036         * loop.c (remove_constant_addition): Avoid clobbering a shared
19037         CONST expression.
19038
19039 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19040
19041         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
19042         * config/s390/t-linux64: New file.
19043         * config/s390/libgcc-glibc.ver: New file.
19044
19045 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19046
19047         * config/s390/linux64.h: Delete file.
19048         * config/s390/s390x.h: New file.
19049         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
19050         as target header file.
19051         * config/s390/linux.h (TARGET_VERSION): Define depending on
19052         DEFAULT_TARGET_64BIT.
19053         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
19054         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
19055         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
19056         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
19057         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
19058         (EXTRA_SPEC): New define.
19059         * config/s390/s390.h (TARGET_VERSION): Define depending on
19060         DEFAULT_TARGET_64BIT.
19061         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
19062
19063 2002-02-06  Jason Merrill  <jason@redhat.com>
19064
19065         * c-decl.c (finish_function): Warn about a non-void function with
19066         no return statement and no abnormal exit.
19067         (current_function_returns_abnormally): New variable.
19068         (start_function): Clear it.
19069         (struct c_language_function): Add returns_abnormally.
19070         (push_c_function_context): Save it.
19071         (pop_c_function_context): Restore it.
19072         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
19073         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
19074         an explicit return type.
19075         * c-tree.h: Declare current_function_returns_abnormally.
19076         (C_FUNCTION_IMPLICIT_INT): New macro.
19077         * c-typeck.c (build_function_call): Set it.
19078         (c_expand_return): Set current_function_returns_value even if the
19079         value is erroneous.
19080
19081 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19082
19083         PR c/5420:
19084         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
19085         unsafe for reevaluation.
19086
19087 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19088
19089         PR c/5482:
19090         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
19091         EXPR_STMT, but COMPOUND_STMT, recurse into it.
19092
19093 2002-02-06  Richard Henderson  <rth@redhat.com>
19094
19095         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
19096         be a general_operand.  Dest for function value must be a pseudo.
19097
19098 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
19099
19100         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
19101         as SYMBOL_REFs from the constant pool.
19102
19103 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
19104
19105         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
19106         passed by invisible reference.
19107
19108 2002-02-05  Richard Henderson  <rth@redhat.com>
19109
19110         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
19111
19112 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
19113
19114         Implement using "base addresses" in insn operands as default.
19115         * config/mmix/mmix.c (mmix_conditional_register_usage): if
19116         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
19117         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
19118         used to read the rtx value.
19119         (mmix_target_asm_function_epilogue): Fix spacing.
19120         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
19121         (mmix_legitimate_address): Ditto.
19122         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
19123         should be loaded with a GETA insn.  Don't allocate needless extra
19124         char for nul termination and fix misleading comment.
19125         (mmix_print_operand_address): Handle constants if
19126         TARGET_BASE_ADDRESSES.
19127         (mmix_output_register_setting): Use base addressing if
19128         TARGET_BASE_ADDRESSES and the number of insns is 3.
19129         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
19130         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
19131         to use R as constraint, add LDA to match s.
19132         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
19133         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
19134         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
19135         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
19136         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
19137         order with other fixed registers.
19138         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
19139         other parameter/call-clobbered registers.
19140         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
19141         -mbase-addresses, -mno-base-addresses.
19142         (MMIX Options): Ditto.
19143
19144 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19145
19146         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
19147
19148 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
19149
19150         * config/rs6000/altivec.h: Change elem to _S_elem.
19151
19152 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
19153
19154         * config/netbsd.h (WCHAR_TYPE): Define.
19155         (WCHAR_TYPE_SIZE): Ditto.
19156         (WINT_TYPE): Ditto.
19157         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
19158         (WCHAR_UNSIGNED): Ditto.
19159         (WCHAR_TYPE_SIZE): Ditto.
19160         (WINT_TYPE): Ditto.
19161         * config/arm/netbsd.h: Likewise.
19162         * config/i386/netbsd-elf.h: Likewise.
19163         * config/i386/netbsd.h: Likewise.
19164         * config/m68k/netbsd-elf.h: Likewise.
19165         * config/m68k/netbsd.h: Likewise.
19166         * config/ns32k/netbsd.h: Likewise.
19167         * config/sparc/netbsd.h: Likewise.
19168         * config/vax/netbsd.: Likewise.
19169
19170 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
19171
19172         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
19173         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
19174         (TARGET_INITIALIZER): this.
19175         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
19176         (BITFIELD_NBYTES_LIMITED): Markup fix.
19177         * tree.h (default_ms_bitfield_layout_p): Declare.
19178         (record_layout_info): Added prev_field.
19179         * tree.c (default_ms_bitfield_layout_p): New fn.
19180         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
19181         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
19182         * stor-layout.c: Include target.h.
19183         (start_record_layout): Initialize prev_field.
19184         (place_field): Handle MS bit-field layout, and disregard
19185         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
19186         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
19187         * Makefile.in (stor-layout.o): Adjust dependencies.
19188
19189 2002-02-05  Jason Merrill  <jason@redhat.com>
19190
19191         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
19192
19193 2002-02-05  Andreas Jaeger  <aj@suse.de>
19194
19195         * crtstuff.c: Fix comments.
19196
19197 2002-02-05  Richard Henderson  <rth@redhat.com>
19198
19199         PR fortran/3393
19200         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
19201         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
19202
19203         PR fortran/3392
19204         * config/mips/mips.c (function_arg): Handle TImode.
19205         (function_arg_advance): Likewise.
19206
19207 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19208
19209         * config/rs6000/altivec.h (vec_step_help): Rename to
19210         __vec_step_help.
19211
19212 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19213
19214         * config/rs6000/altivec.h: Fix typos.
19215
19216 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
19217
19218         * config/arm/netbsd.h: Correct a comment.
19219
19220 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19221
19222         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
19223         building void typed builtins.
19224
19225         * config/rs6000/altivec.h (vec_ld*): Fix typos.
19226         (vec_step): Implement for C++.
19227
19228 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19229
19230         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
19231
19232 2002-02-04  Richard Henderson  <rth@redhat.com>
19233
19234         * combine.c (nonzero_bits): Re-introduce special case for
19235         sp/fp/ap wrt REGNO_POINTER_ALIGN.
19236
19237 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19238
19239         * doc/extend.texi: Warn about unsupported usage of altivec
19240         builtins.
19241
19242         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
19243         (altivec_predicate_*): New.
19244
19245         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
19246         Add C++ version of vec_*() functions.
19247
19248         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
19249         (bdesc_2arg): Remove altivec predicates.
19250         (altivec_expand_builtin): Handle predicates.
19251         (altivec_init_builtins): Handle predicates.
19252         (altivec_expand_predicate_builtin): New.
19253
19254 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19255
19256         * pa.c (DO_FRAME_NOTES): Move forward.
19257         (store_reg): Revise handling of frame notes.
19258         (load_reg): Likewise.
19259         (set_reg_plus_d): Likewise.
19260         (hppa_expand_prologue): Likewise.
19261         (hppa_expand_epilogue): Likewise.
19262
19263 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19264
19265         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
19266
19267 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19268
19269         PR c/4475, c++/3780:
19270         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
19271         * c-common.h (SWITCH_TYPE): Define.
19272         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
19273         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
19274         Rename spareness variable to sparseness.
19275         (expand_end_case_type): Renamed from expand_end_case, use orig_type
19276         if non-NULL instead of TREE_TYPE (orig_index).
19277         * tree.h (expand_end_case_type): Renamed from expand_end_case.
19278         (expand_end_case): Define using expand_end_case_type.
19279         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
19280         to expand_end_case_type.
19281         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
19282
19283 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19284
19285         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
19286         (BIGGEST_ALIGNMENT): Change to 128.
19287
19288 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19289
19290         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
19291
19292 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19293
19294         * pa.md (call_internal_reg_64bit): Remove unused variable.
19295
19296 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
19297
19298         * config/arm/arm.h (machine_function): Add uses_anonymous_args
19299         field.
19300         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
19301         * config/arm/arm.c (current_function_anonymous_args): Delete,
19302         replace uses with cfun->machine->uses_anonymous_args.
19303         (arm_reorg): Do not reset uses_anonymous_args.
19304
19305         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
19306         any geenral register.
19307
19308 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
19309
19310         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
19311         the entry block.
19312
19313 2002-02-04  Richard Henderson  <rth@redhat.com>
19314
19315         * combine.c (force_to_mode): Remove STACK_BIAS code.
19316         (nonzero_bits): Likewise.  Replace sp/fp special case with
19317         REGNO_POINTER_ALIGN.
19318
19319         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
19320         (HARD_FRAME_POINTER_REGNUM): New.
19321         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
19322         (FIXED_REGS, CALL_USED_REGS): Update.
19323         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
19324         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
19325         (HARD_REGNO_NREGS): Update for SFP.
19326         (STACK_POINTER_OFFSET): Include bias here ...
19327         (FIRST_PARM_OFFSET): ... not here.
19328         (STACK_BIAS): Remove.
19329         (INIT_EXPANDERS): New.
19330         (STARTING_FRAME_OFFSET): Do not include bias.
19331         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
19332         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
19333         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
19334         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
19335         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
19336         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
19337         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
19338         (MUST_SAVE_REGISTER): Likewise.
19339         (sparc_flat_function_prologue): Likewise.
19340         (sparc_flat_function_epilogue): Likewise.
19341         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
19342         (sparc_init_modes): SFP is GENERAL_REGS.
19343         (sparc_builtin_saveregs): SFP does not have bias applied.
19344
19345 2002-02-04  Richard Henderson  <rth@redhat.com>
19346
19347         * config/alpha/alpha.c (current_function_is_thunk): Don't check
19348         current_function_is_thunk.
19349         (alpha_sa_mask): Distinguish between current_function_is_thunk
19350         called from ASM_OUTPUT_MI_THUNK and not.
19351         (alpha_does_function_need_gp): Thunks always need gp.
19352         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19353         (alpha_output_mi_thunk_osf): New.
19354         * config/alpha/alpha-protos.h: Update.
19355         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
19356
19357 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
19358
19359         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
19360         function types, not when they're taken away.
19361
19362 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
19363
19364         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
19365         CODE_LABEL and jump table when replacing a table jump with a
19366         simple jump.
19367
19368 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
19369
19370         * config/s390/s390-protos.h (legitimize_la_operand,
19371         s390_secondary_input_reload_class, s390_plus_operand,
19372         s390_expand_plus_operand): Add prototypes.
19373
19374         config/s390/s390.c (s390_secondary_input_reload_class,
19375         s390_plus_operand, s390_expand_plus_operand): New functions.
19376
19377         (struct s390_address): New member 'pointer'.
19378         (s390_decompose_address): Compute it.
19379         (legitimate_la_operand_p): Use it.
19380         (legitimize_la_operand): New function.
19381         (movti, movdi, movdf splitters): Call it.
19382
19383         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
19384         (PREDICATE_CODES): Add s390_plus_operand.
19385
19386         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
19387         (la_ccclobber): Allow GENERAL_REGS as output operand.
19388
19389         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
19390         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
19391         (*la_64, *la_31, reload_indi, reload_insi): ... these.
19392
19393 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
19394
19395         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
19396         register names for regular asm () construct.
19397
19398 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19399
19400         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
19401         registers.
19402
19403 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19404
19405         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
19406         pat for recog.
19407
19408 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
19409
19410         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
19411         constant pool to be identical by string address and index.
19412
19413 2002-02-04  Anthony Green  <green@redhat.com>
19414
19415         * output.h (SECTION_OVERRIDE): Define.
19416         * varasm.c (named_section): Obey SECTION_OVERRIDE.
19417
19418 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
19419
19420         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
19421         by existing arm*-*-netbsd* (a.out) target.
19422         (ns32k-*-netbsdelf*): Likewise.
19423         (sparc-*-netbsdelf*): Likewise.
19424         (vax-*-netbsdelf*): Likewise.
19425
19426 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
19427
19428         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
19429         headers and libobjc headers.
19430
19431 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
19432
19433         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
19434         (_mingw.h): Remove duplicate include.
19435
19436 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
19437
19438         * config.gcc: Set cpu_type to m68k for 68010, as well.
19439         (m68010-*-netbsdelf*): New...
19440         (m68k*-*-netbsdelf*): ...targets.
19441         * config/m68k/netbsd-elf.h: New file.
19442
19443 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19444
19445         * config/h8300/h8300.c (hand_list): Move inside function_arg.
19446
19447 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19448
19449         * config/h8300/h8300.c (h8_push_ops): Move inside
19450         h8300_init_once.
19451         (h8_pop_ops): Likewise.
19452         (h8_move_ops): Likewise.
19453
19454 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19455
19456         * config/h8300/h8300.c (os_task): Make it static.
19457         (monitor): Likewise.
19458         (pragma_saveall): Likewise.
19459
19460 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
19461
19462         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
19463         constant is a valid sign-extension for Pmode.
19464
19465 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19466
19467         * config/h8300/h8300.c: Fix formatting.
19468
19469 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19470
19471         * config/h8300/h8300.md: Fix formatting.
19472
19473 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19474
19475         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
19476         predicates of operands[1].  Split the patterns for each
19477         processor variant.
19478
19479 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19480
19481         * config/h8300/h8300.md (xor patterns): Tighten the predicates
19482         of operands[1] to register_operand.
19483
19484 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
19485
19486         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
19487         * cpphash.c (_cpp_init_hashtable): Similarly.
19488         * cppinit.c (cpp_create_reader): Default the signed_char flag.
19489         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
19490         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
19491         (cpp_handle_option): Handle the new options.
19492         * cpplex.c (cpp_interpret_charconst): Use new flag.
19493         * cpplib.h (struct cpp_options): New member signed_char.
19494         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
19495         (cpp_options): Handle -fsigned-char and -funsigned-char.
19496         (static_specs): Remove signed_char_spec.
19497         (do_spec1): Don't handle %c.
19498         * system.h: Poison SIGNED_CHAR_SPEC.
19499         * tradcif.y (yylex): Use flag_signed_char.
19500         * tradcpp.h (flag_signed_char): New.
19501         * tradcpp.c (flag_signed_char): New.
19502         (main): Handle new command-line options.
19503         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
19504 config:
19505         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
19506         * avr/avr.h: Remove old comments.
19507         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
19508         (CC1_SPEC): Pass -fsigned-char if -mic*.
19509         (SIGNED_CHAR_SPEC): Remove.
19510 doc:
19511         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
19512
19513 2002-02-01  Eric Christopher  <echristo@redhat.com>
19514
19515         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
19516         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
19517         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
19518         (ASM_OUTPUT_REG_POP): Ditto.
19519
19520 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
19521
19522         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
19523         patch.
19524
19525 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
19526
19527         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
19528
19529 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
19530
19531         PR c/5304:
19532         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
19533         unconditionally.
19534
19535 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
19536
19537         * cfganal.c: Include tm_p.h.
19538         (keep_with_call_p): Fix the test that determines if a register holds
19539         the return value of a call.
19540
19541 2002-02-01  DJ Delorie  <dj@redhat.com>
19542
19543         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
19544         we are given conflicting registers, switch to the other one we
19545         had allocated for us.
19546         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
19547         as TImode so we know when the "other" register is available.
19548
19549 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
19550
19551         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
19552         sparc/sparc_bi.h.
19553
19554 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
19555
19556         * cfganal.c (keep_with_call_p): New function.
19557         (flow_call_edges_add): Prevent splitting a block between a call and
19558         a single-set instruction that should be kept in the same block.
19559
19560 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19561
19562         * doc/install.texi (avr): Update outdated URL.
19563
19564 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
19565
19566         * config/stormy16/stormy16.md (pushqi): New.
19567         (popqi): New.
19568         (pushhi): New.
19569         (pophi): New.
19570         (movhi): Remove stack operands.
19571         (movqi): Likewise.
19572         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
19573         nonimmediate_nonstack_operand.
19574         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
19575         New.
19576         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
19577         New.
19578
19579 2002-01-31  Jason Merrill  <jason@redhat.com>
19580
19581         * Makefile.in (c-parse.c): Handle .output file.
19582         * objc/Make-lang.in (objc-parse.c): Likewise.
19583
19584 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
19585
19586         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
19587         the -me[lb] option is given.  Don't output the default flag
19588         twice.
19589
19590 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
19591
19592         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
19593         the primary source file; this has not been done yet.
19594         * c-decl.c (c_expand_body): Reset input_filename from
19595         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
19596
19597 2002-01-31  Kazu Hirata  <kazu@hxi.com>
19598
19599         * rtlanal.c (subreg_regno_offset): Do not use
19600         SUBREG_REGNO_OFFSET.
19601         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
19602         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
19603
19604 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
19605
19606         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
19607         version rather than GNATS version in --version output.
19608
19609 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
19610
19611         * ifcvt.c (noce_process_if_block): Make a copy of the destination
19612         when copying back from a temporary.
19613
19614 2002-01-30  Richard Henderson  <rth@redhat.com>
19615
19616         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
19617         and new_dest are the same.
19618
19619 2002-01-30  Richard Henderson  <rth@redhat.com>
19620
19621         PR opt/5076
19622         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
19623         * rtl.c (note_insn_name): Update.
19624         * emit-rtl.c (remove_unnecessary_notes): Kill it.
19625         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
19626         to perform loop rotation.
19627         (expand_exit_loop_top_cond): New.
19628         * tree.h (expand_exit_loop_top_cond): Declare it.
19629         * c-semantics.c (genrtl_while_stmt): Use it.
19630         (genrtl_for_stmt): Likewise.
19631
19632 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
19633
19634         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
19635         arguments to 64-bit boundaries on 64-bit ABIs.
19636
19637 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
19638
19639         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
19640
19641 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
19642
19643         * c-decl.c (grokdeclarator): Handle type being a typedef for an
19644         invalid type.
19645
19646 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
19647
19648         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
19649         * config/sparc/sparc_bi.h: Remove file.
19650         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
19651
19652 2002-01-30  Richard Henderson  <rth@redhat.com>
19653
19654         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
19655
19656 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
19657
19658         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
19659
19660 2002-01-30  Jason Merrill  <jason@redhat.com>
19661
19662         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
19663         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
19664         (reg_save): Use DW_CFA_offset_extended_sf instead.
19665
19666         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
19667
19668 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19669
19670         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
19671         in cselib_lookup.
19672
19673 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
19674
19675         * rs6000.md ("*call_value_local32"): Remove constraints.
19676         ("*call_value_local64"): Same.
19677         ("*call_value_indirect_nonlocal_aix32"): Same.
19678         ("*call_value_nonlocal_aix32"): Same.
19679         ("*call_value_indirect_nonlocal_aix64"): Same.
19680         ("*call_value_nonlocal_aix64"): Same.
19681         ("*call_value_nonlocal_sysv"): Same.
19682
19683 2002-01-29  Richard Henderson  <rth@redhat.com>
19684
19685         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
19686
19687 2002-01-29  Richard Henderson  <rth@redhat.com>
19688
19689         * expr.c (force_operand): Ignore flag_pic for detecting pic
19690         address loads.
19691         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
19692         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
19693         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
19694         instead of open-coded loop.
19695         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
19696         be fixed when in use.
19697
19698 2002-01-29  Richard Henderson  <rth@redhat.com>
19699
19700         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
19701         * sched-rgn.c (propagate_deps): Update them.
19702         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
19703         clobbers list when either gets too long.
19704
19705 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19706
19707         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
19708         and INDEX_REGS the same as GENERAL_REGS.
19709         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
19710
19711 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19712
19713         * tree.c (build_nonstandard_integer_type): Correct prototype.
19714
19715 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
19716
19717         * config/s390/s390.md (movstrsico, movstrdix_64,
19718         movstrsix_31): Remove, replace by ...
19719         (movstrdi_short, movstrsi_short, movstrdi_long,
19720         movstrsi_long): ... these.  New.
19721         (movstrdi, movstrsi): Adapt.
19722
19723         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
19724         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
19725         Remove unnecessary CC clobber.
19726         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
19727         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
19728
19729         (divmoddi4): Don't partially initialize TImode register.
19730
19731 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
19732
19733         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
19734
19735 2002-01-29  Richard Henderson  <rth@redhat.com>
19736
19737         * flow.c (print_rtl_and_abort): Remove.
19738         (print_rtl_and_abort_fcn): Remove.
19739         (verify_local_live_at_start): Use dump_bb instead.
19740         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
19741         (verify_wide_reg_1): Return 2 on mode test failure.
19742
19743 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19744
19745         PR c/3325, c/3326, c/2511, c/3347
19746         * c-decl.c (enum_decl_context): Remove BITFIELD.
19747         (grokdeclarator): Take bitfield width as an input.
19748         Ensure bitfields are given the correct type.  Perform
19749         bitfield width validation with build_bitfield_integer_type
19750         rather than waiting for finish_struct.
19751         (grok_typename, grok_typename_in_parm_context, start_decl,
19752         push_parmdecl, grokfield, start_function): Update calls to
19753         grokdeclarator.
19754         (build_bitfield_integer_type): New function.
19755         (finish_struct): Move bitfield validation to grokdeclarator
19756         and build_bitfield_integer_type.
19757         * tree.c (build_nonstandard_integer_type): New function.
19758         * tree.h (build_nonstandard_integer_type): New prototype.
19759 objc:
19760         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
19761
19762 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19763
19764         PR other/1502:
19765         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
19766         don't ignore unrecognized -W* options.
19767         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
19768         * cpplib.h (cpp_handle_option): Adjust prototype.
19769         * c-decl.c (c_decode_options): Pass 0 as last argument to
19770         cpp_handle_option.
19771
19772         PR c/2896:
19773         * gcc.c (cpp_unique_options): Split from cpp_options.
19774         (cpp_options): Source cpp_unique_options.
19775         (default_compilers): Use cpp_unique_options instead of cpp_options
19776         when used together with cc1_options.
19777         (static_specs): Add cpp_unique_options.
19778         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
19779         when used together with cc1_options.
19780
19781 2002-01-29  Kazu Hirata  <kazu@hxi.com>
19782
19783         * config/h8300/h8300-protos.h: Update the prototype of
19784         output_a_shift.
19785         * config/h8300/h8300.c (output_a_shift): Remove an unused
19786         argument 'insn'.  Remove redundant code.
19787         * config/h8300/h8300.md: Adust to the new prototype of
19788         output_a_shift.
19789
19790 2002-01-29  Kazu Hirata  <kazu@hxi.com>
19791
19792         * config/h8300/h8300-protos.h: Update the prototypes of
19793         emit_a_rotate and expand_a_rotate.
19794         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
19795         first argument to 'enum rtx_code'.
19796         (expand_a_rotate): Likewise.
19797
19798 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19799
19800         * config/h8300/h8300-protos.h: Update the prototype of
19801         output_simode_bld.
19802         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
19803         'log2'.
19804         * config/h8300/h8300.md: Adjust to the new prototype.
19805
19806 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19807
19808         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
19809         redundant code.
19810
19811 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19812
19813         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
19814         is a fixed register before returning pic_offset_table_rtx.
19815         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
19816         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
19817
19818 2002-01-28  Jason Merrill  <jason@redhat.com>
19819
19820         * dwarf2.h: Sync with src version.
19821
19822 2002-01-28  Paul Koning  <pkoning@equallogic.com>
19823
19824         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
19825         BT_FN_VOID_PTR_VAR.
19826         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
19827         * doc/extend.texi (__builtin_prefetch): Update documentation:
19828         first argument is now const void ptr.
19829
19830 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19831
19832         * config/h8300/h8300-protos.h: Remove an unused prototype.
19833
19834 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
19835
19836         * toplev.c (lang_independent_init): Round up identifier size.
19837
19838 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
19839
19840         * config.gcc: Revert previous change.
19841
19842 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
19843
19844         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
19845
19846 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
19847
19848         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
19849         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
19850         other non-elf netbsd config frags.
19851         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
19852         collect2 will does that.
19853         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
19854         shared-lib frobbing will work.
19855
19856 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19857
19858         * config/h8300/h8300.h: Fix formatting.
19859         * config/h8300/h8300.md: Likewise.
19860
19861 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
19862
19863         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
19864         the old, removed AAA_standards fix.
19865         * fixinc/fixincl.x: Rebuilt.
19866
19867 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
19868
19869         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
19870         atexit call in crtbegin, hooked in after call to frame_dummy;
19871         register EH before registering __fini__start.
19872
19873 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
19874
19875         * config/rs6000/altivec.h: Remove spurious semicolons.
19876
19877 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19878
19879         * config/h8300/h8300.md: Replace dead bit extraction patterns
19880         with ones that work.
19881
19882 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19883
19884         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
19885         if not STRICT_ALIGNMENT.
19886         * rtl.h (MEM_ALIGN): Likewise.
19887
19888 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19889
19890         * doc/invoke.texi (-fdump-translation-unit): Revert this
19891         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19892
19893 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19894
19895         * config/h8300/h8300.md (define_constants): New.
19896         (anonymous patterns) Use defined constants appropriately.
19897
19898 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19899
19900         * config/h8300/h8300.c (function_arg): Remove redundant code.
19901
19902 2002-01-26  Richard Henderson  <rth@redhat.com>
19903
19904         * sched-deps.c (reg_pending_uses_head): New.
19905         (reg_pending_barrier): Rename from reg_pending_sets_all.
19906         (find_insn_list): Don't mark inline.
19907         (find_insn_mem_list): Remove.
19908         (add_dependence_list, add_dependence_list_and_free): New.
19909         (flush_pending_lists): Replace only_write param with separate
19910         for_read and for_write parameters.  Update all callers.  Use
19911         add_dependence_list_and_free.
19912         (sched_analyze_1): Do not add reg dependencies here; just set
19913         the pending bits.  Use add_dependence_list.
19914         (sched_analyze_2): Likewise.
19915         (sched_analyze_insn): Replace schedule_barrier_found with
19916         reg_pending_barrier.  Add all dependencies for pending reg
19917         uses, sets, and clobbers.
19918         (sched_analyze): Don't add reg dependencies for calls, just
19919         set pending bits.  Use regs_invalidated_by_call.  Treat
19920         sched_before_next_call as a normal list, not a fake insn.
19921         (init_deps): No funny init for sched_before_next_call.
19922         (free_deps): Free pending mems lists.  Don't zero reg_last.
19923         (init_deps_global): Init reg_pending_uses.
19924         (finish_deps_global): Free it.
19925         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
19926         (find_insn_mem_list): Remove.
19927         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
19928         (propagate_deps): Use them.  Zero temp mem lists.
19929
19930 2002-01-26  Richard Henderson  <rth@redhat.com>
19931
19932         * Makefile.in (CRTSTUFF_CFLAGS): New.
19933         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
19934         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
19935         crtstuff.c instead of alpha assembly version.
19936         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
19937         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
19938         not FORCE_{INIT,FINI}_SECTION_ALIGN.
19939         (__do_global_dtors_aux): Mark used.
19940         (frame_dummy, __do_global_ctors_aux): Mark used.
19941         (fini_dummy, init_dummy): Remove.
19942
19943         * config/alpha/crtbegin.asm: Remove file.
19944         * config/alpha/crtend.asm: Remove file.
19945         * config/alpha/t-crtbe: Remove file.
19946         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
19947         (LINK_EH_SPEC): New.
19948
19949         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
19950         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
19951         calling constructors.
19952         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
19953
19954         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
19955         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
19956         CRT_END_INIT_DUMMY hack.
19957         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
19958         FORCE_{INIT,FINI}_SECTION_ALIGN.
19959
19960         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
19961         FORCE_{INIT,FINI}_SECTION_ALIGN.
19962
19963         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
19964         invocation sequence.
19965         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
19966
19967         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
19968         (FORCE_CODE_SECTION_ALIGN): New.
19969
19970 2002-01-26  Richard Henderson  <rth@redhat.com>
19971
19972         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
19973
19974 2002-01-26  Richard Henderson  <rth@redhat.com>
19975
19976         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
19977         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
19978
19979 2002-01-26  Kazu Hirata  <kazu@hxi.com>
19980
19981         * config/h8300/h8300.md: Remove bit extraction patterns that
19982         cannot be triggered.
19983         Restrict each bit extraction pattern to a variant on which the
19984         pattern is tested.
19985
19986 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
19987
19988         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
19989
19990 2002-01-26  Kazu Hirata  <kazu@hxi.com>
19991
19992         * config/h8300/h8300.md: Remove bit test patterns that cannot
19993         be triggered.
19994         Restrict each bit test pattern to a variant on which the
19995         pattern is tested.
19996
19997 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19998
19999         * builtins.c (expand_builtin_strncat): Remove redundant check for
20000         INTEGER_CST.
20001
20002 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20003
20004         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
20005         default setting.
20006         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
20007         existing setting.
20008
20009 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20010
20011         * dbxout.c (dbxout_init): Use assemble_name rather than just
20012         stripping off the first character.
20013         (dbxout_source_file): Likewise.
20014
20015 2002-01-25  DJ Delorie  <dj@redhat.com>
20016
20017         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
20018         using rtx_equal_p, not by comparing pointers.
20019
20020 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
20021
20022         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
20023         for PIC_OFFSET_TABLE_REGNUM.
20024         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
20025
20026 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20027
20028         * config.gcc (x86_64-*-freebsd*): New target.
20029         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
20030         value.
20031         (i[34567]86-*-freebsd*): Don't include svr4.h.
20032         * config/i386/freebsd64.h: New file.
20033
20034 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
20035
20036         * config/alpha/x-vms (version): Make static.
20037
20038         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
20039         in previous checkin.
20040
20041         * Makefile.in (install-headers-cp): New target.
20042         * config.gcc (alpha-dec-*vms*): Install headers with
20043         install-headers-cp
20044
20045 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
20046
20047         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
20048         avoid it's copies.
20049
20050 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20051
20052         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
20053         of compare_tree_int.
20054         (expand_builtin_strncat): Likewise.
20055         * c-decl.c (finish_struct): Use tree_low_cst.
20056         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
20057         * tree.c (compare_tree_int): Likewise.
20058
20059 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
20060
20061         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
20062         adjustments even if they are implemented by more than two insns.
20063
20064 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
20065
20066         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
20067         * df.h (struct ref): Kill B.
20068         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
20069
20070         * basic-block.h (PROP_EQUAL_NOTES): New flag.
20071         * flow.c (propagate_one_insn): Use it.
20072         (mark_used_regs): Handle NIL.
20073
20074 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20075
20076         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
20077         to help folding.
20078
20079 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
20080
20081         * rs6000.md (prefetch): Make address V4SI mode so that the address
20082         is restricted to legitimate form for instruction.
20083
20084 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
20085
20086         * doc/install.texi (xtensa-*-elf): New target.
20087         (xtensa-*-linux*): New target.
20088         * doc/contrib.texi: Add myself.
20089
20090 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
20091
20092         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
20093         purpose register to hold an SImode (or smaller) value.
20094
20095 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
20096
20097         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
20098         registry only.
20099         * crtstuff.c: Likewise.
20100
20101 2002-01-25  Kazu Hirata  <kazu@hxi.com>
20102
20103         * config/h8300/h8300.md (negation patterns): Tighten
20104         predicates to register_operand.
20105
20106 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
20107
20108         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
20109         mode, not Pmode.
20110
20111         * builtins.c (expand_builtin_prefetch): Same.
20112
20113 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20114
20115         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
20116         modes.
20117
20118 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20119
20120         * config/h8300/h8300.c (print_operand): Remove support for
20121         operand character 'A'.
20122         * config/h8300/h8300.md (three anonymous patterns): Replace
20123         operand character 'A' with either 'T' or 'S'.
20124
20125 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20126
20127         * config/h8300/h8300.c (print_operand): Remove support for
20128         operand character 'U'.
20129
20130 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
20131
20132         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
20133
20134 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
20135
20136         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
20137         values to be assigned to the stack pointer.
20138
20139 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
20140
20141         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
20142         to const_double needs to be done right for big-endian systems.
20143
20144 2002-01-24  Jason Merrill  <jason@redhat.com>
20145
20146         PR c++/2432
20147         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
20148         to can_throw_internal.
20149
20150 2002-01-23  Richard Henderson  <rth@redhat.com>
20151
20152         * fold-const.c (fold): Change UINT_MAX test to check vs precision
20153         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
20154
20155 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20156
20157         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
20158         (symGOT2reg): Use them, then set as GOT value as unchanging.
20159         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
20160         as a temporary, if possible.
20161         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
20162         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
20163
20164 2002-01-23  Kazu Hirata  <kazu@hxi.com>
20165
20166         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
20167         accept to accept 0x80 as operands[2].
20168
20169 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20170
20171         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
20172
20173 2002-01-23  Richard Henderson  <rth@redhat.com>
20174
20175         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
20176
20177 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
20178
20179         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
20180         (parmlist_or_identifiers_1): Verify that only a parmlist follows
20181         an attribute.
20182
20183 2002-01-23  Richard Henderson  <rth@redhat.com>
20184
20185         * expr.c (move_by_pieces_1): Extend size before negation.
20186
20187         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
20188         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
20189         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
20190         * config/m68k/t-m68kelf: Likewise.
20191
20192 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
20193
20194         * config/xtensa/elf.h: New file.
20195         * config/xtensa/lib1funcs.asm: New file.
20196         * config/xtensa/lib2funcs.S: New file.
20197         * config/xtensa/linux.h: New file.
20198         * config/xtensa/t-xtensa: New file.
20199         * config/xtensa/xtensa-config.h: New file.
20200         * config/xtensa/xtensa-protos.h: New file.
20201         * config/xtensa/xtensa.c: New file.
20202         * config/xtensa/xtensa.h: New file.
20203         * config/xtensa/xtensa.md: New file.
20204         * config.gcc (xtensa-*-elf*): New target.
20205         (xtensa-*-linux*): New target.
20206         * cse.c (canon_hash): Compare rtx pointers instead of register
20207         numbers.  This is required for the Xtensa port.
20208         * integrate.c (copy_insn_list): Handle case where the static
20209         chain is in memory and the memory address has to be copied to
20210         a register.
20211         * doc/invoke.texi (Option Summary): Add Xtensa options.
20212         (Xtensa Options): New node.
20213         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
20214
20215 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
20216
20217         * diagnostic.c (internal_error): Do ICE suppression only
20218         when ENABLE_CHECKING is not defined.
20219
20220         * c-typeck.c (require_complete_type): Return error_mark_node
20221         if type is error_mark_node.
20222
20223 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
20224
20225         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
20226         -Os and issue a warning.
20227
20228 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
20229
20230         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
20231         current (lack of) need for host configuration by hand.
20232
20233         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
20234         references.  Documentation of some target macros moved from
20235         hostconfig.texi to tm.texi.
20236
20237 2002-01-23  Will Cohen  <wcohen@redhat.com>
20238
20239         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
20240         defined.
20241
20242 2002-01-23  Kazu Hirata  <kazu@hxi.com>
20243
20244         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
20245         operand[3].
20246
20247 2002-01-23  Jason Merrill  <jason@redhat.com>
20248
20249         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
20250
20251         * function.c (assign_parms): Don't put args of inline functions
20252         into registers when not optimizing.
20253
20254 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
20255
20256         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
20257         (prologue_use): New pattern.
20258         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
20259         preference to gen_rtx_USE.
20260         (thumb_expand_prologue): Use gen_prologue_use in preference to
20261         gen_rtx_USE.
20262         (thumb_expand_epilogue): Use gen_prologue_use in preference to
20263         gen_rtx_USE.
20264
20265 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
20266
20267         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
20268
20269 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
20270
20271         PR c/3504
20272         * doc/extend.texi: Correct documentation of __alignof__.
20273
20274 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
20275
20276         * params.h: Rename arguments of DEFPARAM so that it will be
20277         recognized as a translation keyword.
20278
20279 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20280
20281         * extend.texi: Document altivec functions.
20282         Fix N-bit adjectives in X86 builtin documentation.
20283
20284 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
20285
20286         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
20287         auto_inc_dec values.
20288
20289 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
20290
20291         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
20292         after backslash.
20293         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
20294
20295 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
20296
20297         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
20298
20299 2002-01-22  Richard Henderson  <rth@redhat.com>
20300
20301         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
20302         copy_insn not copy_rtx.
20303
20304 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
20305
20306         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
20307         "nonzero" as that might add "1" bits.  Ensure "constop" is
20308         properly sign extened.
20309         (force_to_mode): Tweak for sign extended constop.
20310
20311 2002-01-22  Richard Henderson  <rth@redhat.com>
20312
20313         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
20314         for_each_rtx instead of assuming we're already looking at the MEM.
20315         (split_small_symbolic_mem_operand): Likewise.
20316         * config/alpha/alpha.h (PREDICATE_CODES): Update.
20317         * config/alpha/alpha.md (small symbolic memory splitters): Update.
20318
20319 2002-01-22  Richard Henderson  <rth@redhat.com>
20320
20321         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
20322         sequence number for the literal.
20323         (divmoddi_internal_er): Likewise.
20324
20325 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20326
20327         PR java/4972
20328         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
20329         in LIBICONV variable.
20330         * configure: Regenerated.
20331
20332 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
20333
20334         * dependence.c (build_def_use): Remove array_idx.
20335
20336         * dwarfout.c (last_filename): Remove.
20337         (output_compile_unit_die): Remove last_filename.
20338
20339 2002-01-22  Roger Sayle  <roger@eyesopen.com>
20340             Richard Henderson  <rth@redhat.com>
20341
20342         PR opt/3640
20343         * fold-const.c (fold): Optimize unsigned comparisons against
20344         UINT_MAX (and similar unsigned constants).
20345
20346 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
20347
20348         * Makefile.in (loop.o): Depend on OPTABS_H.
20349         * loop.c (emit_prefetch_instructions): Check the prefetch operand
20350         against the predicate.
20351
20352         PR target/5379
20353         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
20354         for the address operand.
20355
20356 2002-01-22  Richard Henderson  <rth@redhat.com>
20357
20358         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
20359
20360 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20361
20362         PR other/5450
20363         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
20364         preprocessor flags.
20365
20366 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
20367
20368         * config.gcc (x86_64-*-netbsd*): New target.
20369         * config/i386/netbsd64.h: New file.
20370
20371 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20372
20373         * regrename.c (kill_value): Fix typo.
20374
20375 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20376
20377         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
20378
20379         * config/rs6000/rs6000.h: Same.
20380
20381         * function.c (instantiate_virtual_regs): Remove
20382         STARTING_FRAME_PHASE.
20383         (assign_stack_local_1): Same.
20384         Calculate frame phase.
20385
20386 2002-01-22  Nick Clifton  <nickc@redhat.com>
20387
20388         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
20389         variable declaration to outer scope in order to simplify
20390         future extensions.
20391         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
20392         arm_hard_regno_mode_ok.
20393         * config/arm/arm-protos.h: Add a prototype for
20394         arm_hard_regno_mode_ok.
20395         * config/arm/arm.c (soft_df_operand): Remove now redundant
20396         check for DImode values using IP_REGNUM.
20397         (nonimmediate_soft_df_operand): Remove now redundant check for
20398         DImode values using IP_REGNUM.
20399         (arm_hard_regno_mode_ok): New function. New check: make sure
20400         that DImode values are not stored in IP_REGNUM.
20401
20402         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
20403         note with a USE.
20404         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
20405
20406 2002-01-22  Jason Merrill  <jason@redhat.com>
20407
20408         * c-semantics.c (genrtl_compound_stmt): Only check nesting
20409         consistency if this COMPOUND_STMT is scoped.
20410
20411 2002-01-22  Kazu Hirata  <kazu@hxi.com>
20412
20413         * predict.c: Fix formatting.
20414         * print-tree.c: Likewise.
20415         * protoize.c: Likewise.
20416         * real.h: Likewise.
20417         * rtl.h: Likewise.
20418         * sbitmap.h: Likewise.
20419         * scan.c: Likewise.
20420         * sched-deps.c: Likewise.
20421         * sched-vis.c: Likewise.
20422         * sdbout.c: Likewise.
20423         * sibcall.c: Likewise.
20424         * ssa.c: Likewise.
20425         * ssa-ccp.c: Likewise.
20426         * ssa-dce.c: Likewise.
20427         * stmt.c: Likewise.
20428         * stor-layout.c: Likewise.
20429         * system.h: Likewise.
20430
20431 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20432
20433         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
20434         if fits in bounds of base type.
20435
20436         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
20437         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
20438         (add_bound_info, default): If can't find a context, make a
20439         SAVE_EXPR.
20440         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
20441
20442 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
20443
20444         * c-typeck.c (parser_build_binary_op): If result from
20445         build_binary_op is ERROR_MARK just return error_mark_node without
20446         further processing.
20447
20448 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
20449
20450         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
20451         Split a.out-specific bits into...
20452         * config/netbsd-aout.h: ...this.
20453         * config/netbsd-elf.h: New file.
20454         * config/alpha/netbsd-elf.h: Remove.
20455         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
20456         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
20457         (STARTFILE_SPEC): Remove redundant definition.
20458         (ENDFILE_SPEC): Likewise.
20459         (LINK_SPEC): Likewise.
20460         (CPP_SPEC): Likewise.
20461         (ASM_SPEC): Likewise.
20462         (LIB_SPEC): Likewise.
20463         (SWITCH_TAKES_ARG): Likewise.
20464         (TARGET_MEM_FUNCTIONS): Likewise.
20465         (CPP_PREDEFINES): Redefine.
20466         (ASM_FINAL_SPEC): Remove redefinition.
20467         (ASM_COMMENT_START): Redefine.
20468         (FUNCTION_PROFILER): Define.
20469         (TARGET_VERSION): Redefine.
20470         Comment and formatting cleanup.
20471         * config/i386/netbsd.h: Include <netbsd-aout.h>.
20472         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
20473         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
20474         big- or little-endian.
20475         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
20476         * config.gcc (*-*-netbsd*): Add definitions common to all
20477         NetBSD configs.
20478         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
20479         gnu_ld definitions.  Add netbsd-elf.h to and remove
20480         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
20481         tmake_file, and don't lose previous tmake_file contents.
20482         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
20483         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
20484         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
20485         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
20486         (mipsel-*-netbsd*): Rename this to...
20487         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
20488         mips/little.h to tm_file for mips*el-*.
20489         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
20490         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
20491         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
20492
20493 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20494
20495         * pa-protos.h (reg_before_reload_operand): New function prototype.
20496         * pa.c (reg_before_reload_operand): New function implementation.
20497         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
20498         contraints to "*m".
20499
20500 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20501
20502         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
20503
20504 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20505
20506         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
20507         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
20508         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
20509         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
20510         (ENDFILE_SPEC): Undefine.
20511         (STARTFILE_SPEC): Redefine for PA.
20512
20513 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20514
20515         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
20516
20517 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
20518
20519         * config.gcc: Add entries to supported PowerPC --with-cpu
20520         types.
20521
20522 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
20523
20524         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
20525         true for 64-bit mode only SSE registers in 32-bit mode.
20526
20527 2002-01-21  Kazu Hirata  <kazu@hxi.com>
20528
20529         * unwind-dw2.c: Fix formatting.
20530         * unwind-dw2-fde.c: Likewise.
20531         * unwind-dw2-fde.h: Likewise.
20532         * unwind-pe.h: Likewise.
20533         * varasm.c: Likewise.
20534         * varray.h: Likewise.
20535
20536 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
20537
20538         Remove workaround for register stack overwrite bug in mmix.
20539         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
20540         support for TARGET_REG_STACK_FILL_BUG.
20541         * config/mmix/mmix.h: Remove member has_call_without_parameters.
20542         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
20543         Delete.
20544         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
20545         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
20546         -mno-reg-stack-fill-bug-workaround.
20547         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
20548         machine member has_call_without_parameters.
20549         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
20550         -mreg-stack-fill-bug-workaround and
20551         -mno-reg-stack-fill-bug-workaround.
20552         (MMIX Options): Ditto.
20553
20554 2002-01-21  Kazu Hirata  <kazu@hxi.com>
20555
20556         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
20557         as appropriate.
20558         Remove redundant code.
20559
20560 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
20561
20562         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
20563         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
20564         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
20565         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
20566         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
20567         out target macro definitions and non-target-specific comments
20568         mostly taken from old versions of the manual.
20569
20570 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20571
20572         * config/h8300/h8300.h: Fix comment formatting.
20573         * config/ia64/aix.h: Likewise.
20574         * config/ia64/ia64-protos.h: Likewise.
20575         * config/ia64/ia64.c: Likewise.
20576         * config/ia64/ia64.h: Likewise.
20577         * config/ia64/ia64intrin.h: Likewise.
20578         * config/ia64/linux.h: Likewise.
20579         * config/ia64/unwind-aix.c: Likewise.
20580         * config/ia64/unwind-ia64.c: Likewise.
20581
20582 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20583
20584         * config/h8300/h8300.c: Revise comments about shift code.
20585
20586 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20587
20588         * config/h8300/h8300.c (function_arg): Update a comment.
20589
20590 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20591
20592         * config/h8300/h8300.md: Update the comments at the beginning
20593         of the file.
20594
20595 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20596
20597         * config/i370/i370.c: Fix comment formatting.
20598         * config/i370/i370.h: Likewise.
20599         * config/i370/i370.md: Likewise.
20600         * config/i370/linux.h: Likewise.
20601
20602 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20603
20604         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
20605
20606         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
20607         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
20608         in incomplete case.
20609
20610 2002-01-20  Graham Stott  <grahams@redhat.com>
20611
20612         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
20613
20614 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20615
20616         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
20617
20618 2002-01-19  Tom Rix  <trix@redhat.com>
20619
20620         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
20621
20622 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
20623
20624         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
20625
20626         * function.c (assign_stack_local_1): Adjust x_frame_offset with
20627         STARTING_FRAME_PHASE.
20628         (STARTING_FRAME_PHASE): New.
20629         (instantiate_virtual_regs): Check saneness of
20630         STARTING_FRAME_PHASE.
20631
20632         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
20633
20634 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
20635
20636         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
20637
20638 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20639
20640         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
20641         be used for bootstrapping GCC 3.0.
20642
20643 2002-01-18  Kazu Hirata  <kazu@hxi.com>
20644
20645         * config/h8300/h8300.md: Fix an insn length.
20646
20647 2002-01-18  Kazu Hirata  <kazu@hxi.com>
20648
20649         * bitmap.h: Fix comment formatting.
20650         * combine.c: Likewise.
20651         * cppfiles.c: Likewise.
20652         * c-pragma.h: Likewise.
20653         * c-typeck.c: Likewise.
20654         * df.c: Likewise.
20655         * dwarf2out.c: Likewise.
20656         * function.c: Likewise.
20657         * gcc.c: Likewise.
20658         * genattrtab.c: Likewise.
20659         * gthr-win32.h: Likewise.
20660         * haifa-sched.c: Likewise.
20661         * predict.c: Likewise.
20662         * rtlanal.c: Likewise.
20663         * rtl.h: Likewise.
20664         * unwind-dw2-fde.h: Likewise.
20665         * unwind-pe.h: Likewise.
20666         * vmsdbgout.c: Likewise.
20667
20668 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20669
20670         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
20671         if type_required and passed decl.
20672
20673 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
20674
20675         * config.gcc (cpu_type): Include altivec.h in powerpc
20676         extra_headers.
20677         Same for darwin.
20678
20679         * config/rs6000/altivec.h: New.
20680
20681 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
20682
20683         * doc/install.texi (*-ibm-aix*): Update assembler and exception
20684         handling information.
20685         * doc/trouble.texi (Interoperation): Add libstdc++ information
20686         for AIX.
20687         (Misunderstandings): Add template instantiation and static template
20688         member information for AIX.
20689
20690 2002-01-17  Jason Merrill  <jason@redhat.com>
20691
20692         * dbxout.c (dbxout_type): Support const and volatile.
20693
20694         * except.c (add_partial_entry): Remove backwards compatibility code.
20695         (end_protect_partials): Likewise.
20696
20697 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
20698
20699         * config/ia64/ia64.md (prologue_use): New.
20700         * config/ia64/ia64.c (ia64_expand_prologue): Use
20701         gen_prologue_use instead of gen_rtx_USE.
20702         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
20703         as CODE_FOR_pred_rel_mutex.
20704         (ia64_sched_reorder2): Likewise.
20705
20706 2002-01-16  Eric Christopher  <echristo@redhat.com>
20707
20708         * config/mips/r3900.h: Reformat.
20709         (SUBTARGET_CPP_SIZE_SPEC): Remove.
20710         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
20711         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
20712         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
20713         * config/mips/t-elf: Remove mips3 multilib.
20714
20715 2002-01-16  H.J. Lu <hjl@gnu.org>
20716
20717         * config/mips/linux.h: Include "mips/abi64.h".
20718
20719 2002-01-16  H.J. Lu <hjl@gnu.org>
20720
20721         * config/mips/t-linux: New.
20722
20723         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
20724
20725         * config/mips/linux.h: Don't include "gofast.h".
20726         (INIT_SUBTARGET_OPTABS): Removed.
20727
20728 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20729
20730         * config/h8300/h8300-protos.h: Replace emit_a_shift with
20731         output_a_shift.
20732         * config/h8300/h8300.c: Likewise.
20733         * config/h8300/h8300.md: Likewise.
20734
20735 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20736
20737         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
20738         spaces after an opcode name.
20739         (pushqi1_h8300hs): Likewise.
20740         (pushhi1_h8300hs): Likewise.
20741
20742 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20743
20744         * doc/extend.texi: Replace "option" with "attribute"
20745         appropriately.
20746
20747 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20748
20749         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
20750         (and:DI () (const_int -8)).
20751         (split_small_symbolic_mem_operand): Split
20752         (mem (and:DI () (const_int -8)).
20753
20754 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20755
20756         PR target/5309:
20757         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
20758         same way as TYPE_IMUL.
20759         (ultrasparc_sched_reorder): Likewise.
20760         * config/sparc/sparc.md (type): Add comment to update
20761         ultrasparc_sched_reorder when making changes.
20762
20763 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20764
20765         * doc/invoke.texi: Change the dump file name of block
20766         reordering pass from 28.bbro to 29.bbro.
20767         Mention -dk option.
20768
20769 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
20770
20771         * i386.md (minsf splitter): Fix pasto.
20772
20773 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
20774
20775         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
20776         to frame pointer initialisation instruction.
20777         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
20778         initialisation instruction.
20779         (soft_df_operand): Do not accept the IP register.
20780         (nonimmediate_soft_df_operand): Do not accept the IP register.
20781
20782 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20783
20784         PR target/5357:
20785         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
20786         MASK_V8 being both set.
20787
20788 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
20789
20790         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
20791         insn for GOT register; add REG_MAYBE_DEAD notes instead.
20792         config/s390/s390.md (call, call_value): Add GOT register to
20793         CALL_INSN_FUNCTION_USAGE where needed.
20794         (call_exp, call_value_exp): New.
20795
20796 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
20797
20798         * config/arm/arm.c: General formatting tidy up.
20799
20800 2002-01-16  Graham Stott  <grahams@redhat.com>
20801
20802         * calls.c (try_to_integrate): Use "(size_t)" intermediate
20803         cast and when casting an integer literal to "rtx" pointer.
20804         (expand_call): Likewise.
20805         * flow.c (try_pre_increment): Likewise.
20806         (find_use_as_address): Likewise.
20807         * integrate.c (expand_iline_function): Likewise.
20808         * regmove.c (try_auto_increment): Likewise.
20809
20810 2002-01-16  Graham Stott  <grahams@redhat.com>
20811
20812         * sched-rgn.c (passed): Use sbitmap_free.
20813         (header): Likewise.
20814         (inner): Likewise.
20815         (in_queue): Likewise.
20816         (in_stack): Likewise.
20817
20818 2002-01-15  Eric Christopher  <echristo@redhat.com>
20819
20820         * flow.c (propagate_one_insn): Change to use fatal_insn.
20821
20822 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20823
20824         * expmed.c (extract_fixed_bit_field): Remove unused code.
20825         * system.h: Poison SLOW_ZERO_EXTEND.
20826         * doc/tm.texi: Remove.
20827         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
20828         * config/arm/arm.h: Likewise.
20829         * config/avr/avr.h: Likewise.
20830         * config/clipper/clipper.h: Likewise.
20831         * config/convex/convex.h: Likewise.
20832         * config/d30v/d30v.h: Likewise.
20833         * config/dsp16xx/dsp16xx.h: Likewise.
20834         * config/elxsi/elxsi.h: Likewise.
20835         * config/fr30/fr30.h: Likewise.
20836         * config/h8300/h8300.h: Likewise.
20837         * config/i370/i370.h: Likewise.
20838         * config/i386/i386.h: Likewise.
20839         * config/m68k/m68k.h: Likewise.
20840         * config/mips/mips.h: Likewise.
20841         * config/ns32k/ns32k.h: Likewise.
20842         * config/pdp11/pdp11.h: Likewise.
20843         * config/pj/pj.h: Likewise.
20844         * config/s390/s390.h: Likewise.
20845         * config/sh/sh.h: Likewise.
20846         * config/stormy16/stormy16.h: Likewise.
20847         * config/v850/v850.h: Likewise.
20848         * config/vax/vax.h: Likewise.
20849         * config/we32k/we32k.h: Likewise.
20850
20851 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
20852
20853         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
20854         (altivec_lvsl): Change constraint to b.
20855         (altivec_lvsr): Same.
20856         (altivec_lvebx): Same.
20857         (altivec_lvehx): Same.
20858         (altivec_lvewx): Same.
20859         (altivec_lvxl): Same.
20860         (altivec_lvx): Same.
20861         (altivec_stvx): Add parallel.
20862         (altivec_stvxl): Same.
20863         (altivec_stvehx): Same.
20864         (altivec_stvebx): Same.
20865         (altivec_stvebx): Same.
20866
20867 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
20868
20869         * config.gcc: Change altivec.h to altivec-defs.h.
20870
20871         * config/rs6000/altivec.h: Delete.
20872
20873         * config/rs6000/altivec-defs.h: Add.
20874
20875 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20876
20877         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
20878         and UMOD modes.
20879
20880         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
20881         less than or equal to eight bytes.
20882
20883         * vax.md (andsi3): Remove constraints and change SET destination
20884         operand type to nonimmediate_operand.
20885         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
20886         when it is a CONST_INT.
20887
20888 2002-01-15  Jason Merrill  <jason@redhat.com>
20889
20890         * c-common.def (FILE_STMT): New code.
20891         * c-common.c (statement_code_p): It's a statement.
20892         * c-common.h (stmt_tree_s): Add x_last_filename.
20893         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
20894         (last_expr_filename): New macro.
20895         * c-semantics.c (begin_stmt_tree): Initialize it.
20896         (add_stmt): If the filename changed, also insert a
20897         FILE_STMT.
20898         (expand_stmt): Handle seeing one.
20899
20900 2002-01-15  Eric Christopher  <echristo@redhat.com>
20901
20902         * flow.c (propagate_one_insn): Add error message and print out
20903         insn for debugging.
20904
20905 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
20906
20907         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
20908         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
20909         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
20910         TRAMPOLINE_ALIGNMENT.
20911         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
20912         to be in bits.
20913         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
20914         PCC_BITFIELD_TYPE_MATTERS.
20915         * config/interix.h (STDC_VALUE): Remove.  Use
20916         STDC_0_IN_SYSTEM_HEADERS.
20917         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
20918         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
20919         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
20920
20921 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20922
20923         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
20924         not work on this platform currently.
20925
20926 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
20927
20928         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
20929         readonly_warning in _().
20930
20931 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
20932
20933         * gcc.c (delete_if_ordinary): Backout previous change.
20934
20935 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20936
20937         * config/h8300/h8300.c (print_operand): Remove support for
20938         unused operand characters.
20939
20940         * read-rtl.c: Fix formatting.
20941         * real.c: Likewise.
20942         * recog.c: Likewise.
20943         * regclass.c: Likewise.
20944         * regmove.c: Likewise.
20945         * reg-stack.c: Likewise.
20946         * reload1.c: Likewise.
20947         * rtlanal.c: Likewise.
20948
20949 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20950
20951         * config/i386/i386.c: Fix formatting.
20952
20953 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
20954
20955         * c-typeck.c (process_init_element): Don't save_expr
20956         COMPOUND_LITERAL_EXPR if just its initializer will be used.
20957
20958 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
20959
20960         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
20961         emit optional traceback table if optimize_size or TARGET_ELF.
20962         * config/rs6000/rs6000.md (prefetch): New.
20963
20964 2002-01-15  Andreas Jaeger  <aj@suse.de>
20965
20966         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
20967
20968 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20969
20970         * mips-tfile.c: Fix formatting.
20971
20972 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
20973
20974         * unroll.c (final_reg_note_copy): Fix previous commit.
20975
20976 2002-01-14  Kazu Hirata  <kazu@hxi.com>
20977
20978         * config/h8300/h8300-protos.h: Remove the prototype for
20979         eq_operator.
20980         * config/h8300/h8300.c (eq_operator): Remove.
20981
20982 2002-01-14  Richard Henderson  <rth@redhat.com>
20983
20984         * config/i386/i386.md (prefetch): Tidy.
20985         (prefetch_3dnow): Fix locality operand.
20986
20987 2002-01-14  Richard Henderson  <rth@redhat.com>
20988
20989         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
20990         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
20991
20992 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
20993
20994         * reload1.c (reload_combine): Pass reg_sum replacement through
20995         copy_rtx in loop performing multiple changes.
20996
20997 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
20998
20999         * except.c (remove_unreachable_regions): New.
21000         (free_eh_status): Clear exception_handler_labels.
21001         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
21002         (find_exception_handler_labels): Don't add the same label more than
21003         once.
21004         (remove_exception_handler_label): Don't die if
21005         find_exception_handler_labels hasn't been called for the current
21006         function yet.
21007
21008 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
21009
21010         * toplev.c (rest_of_compilation): Rebuild jump labels after
21011         gcse.
21012
21013 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
21014
21015         * doc/extend.texi: Move documentation of X86 built-in functions
21016         here.
21017         * doc/invoke.texi: From here.
21018         * doc/sourcebuild.texi: Document location of documentation for
21019         machine built-in functions.
21020
21021 2002-01-13  Christopher Faylor  <cgf@redhat.com>
21022
21023         * cppfiles.c (TEST_THRESHOLD): New macro.
21024         (SHOULD_MMAP): Ditto.
21025         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
21026         be used.
21027
21028 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
21029
21030         * unroll.c (final_reg_note_copy): Properly handle
21031         REG_LABEL
21032         (unroll_loops): Fix LOOP_CONDITION heuristics.
21033
21034 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
21035
21036         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
21037         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
21038
21039 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
21040
21041         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
21042         threaded loop.
21043
21044 2002-01-14  Tom Rix  <trix@redhat.com>
21045
21046         * config/rs6000/rs6000.md: Fix typo with sradi.
21047
21048 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
21049
21050         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
21051         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
21052         (clrstrdi, clrstrsi): Adapt callers.
21053
21054         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
21055
21056         (movti splitter): Never use register 0 as base register.
21057
21058 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
21059
21060         * combine.c (simplify_shift_const): Always generate new rtx
21061         for shift expression instead of reusing given expression.
21062
21063 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21064
21065         * config/alpha/alpha.c (alpha_expand_mov): Don't call
21066         alpha_legitimize_address unless mode is Pmode.
21067
21068 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
21069
21070         * doc/md.texi (Modifiers): Document the '*' constraint for the
21071         user.
21072
21073         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
21074         * doc/extend.texi (Function Attributes): 'interrupt' is valid
21075         for xstormy16 too.
21076
21077 2002-01-13  Richard Henderson  <rth@redhat.com>
21078
21079         * reload.c (find_reloads): Use a hard reg destination as reload reg
21080         for an input reload of the source.
21081
21082 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21083
21084         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
21085         more generic.
21086
21087 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
21088
21089         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21090         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21091
21092         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
21093
21094 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21095
21096         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
21097
21098 2002-01-12  Tom Rix  <trix@redhat.com>
21099
21100         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
21101         TARGET_POWERPC64.
21102
21103 2002-01-12  Richard Henderson  <rth@redhat.com>
21104
21105         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
21106
21107         * doc/invoke.texi: Update Alpha options.
21108
21109         * doc/invoke.texi: Update i386 built-in function lists.
21110
21111 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
21112
21113         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
21114         referencing outside.
21115
21116 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21117
21118         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
21119         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
21120         offsets, and change line folding.
21121         * optabs.c (expand_binop): Remove warnings.
21122         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
21123
21124 2002-01-12  Graham Stott <grahams@redhat.com>
21125
21126         * attribs.c (handle_deprecated_attribute): constify WHAT.
21127         * diagnostic.c (warn_deprecated_use): Add braces, fixes
21128         dangling else warning and constify WHAT.
21129         * except.h (struct function, struct inline_remap): Move
21130         struct tag forward defs before all prototypes.
21131         (duplicate_eh_regions): Whitespace.
21132
21133 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
21134
21135         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21136         MODE_BASE_REG_CLASS.
21137         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
21138
21139 2002-01-12  Richard Henderson  <rth@redhat.com>
21140
21141         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
21142         (ix86_expand_vector_move): New.
21143         (bdesc_2arg): Remove andps, andnps, orps, xorps.
21144         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
21145         Remove old prefetch builtins.  Special case the logicals removed above.
21146         (ix86_expand_builtin): Likewise.
21147         (safe_vector_operand): Use V4SFmode, not TImode.
21148         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
21149         (ix86_expand_timode_binop_builtin): New.
21150         * config/i386/i386-protos.h: Update.
21151         * config/i386/i386.h (enum ix86_builtins): Update.
21152         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
21153         Use ix86_expand_vector_move in vector move expanders.
21154         (movti_internal, movti_rex64): Add xorps alternative.
21155         (sse_clrv4sf): Rename and adjust from sse_clrti.
21156         (prefetch): Don't work so hard.
21157         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
21158         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
21159         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
21160
21161 2002-01-11  Richard Henderson  <rth@redhat.com>
21162
21163         * config/i386/mmintrin.h: New file.
21164         * config/i386/xmmintrin.h: New file.
21165         * config.gcc (i?86-*-*): Add extra_headers.
21166         * simplify-rtx.c (simplify_unary_operation): Handle saturating
21167         truncation codes.
21168         (simplify_binary_operation): Handle saturating arithmetic codes.
21169         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
21170         not the lowpart subreg.
21171         (ix86_expand_builtin): Return a TImode dummy register instead of 0
21172         on error.
21173         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
21174
21175 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21176
21177         * conflict.c (conflict_graph_compute): Free regsets when finished.
21178         * ssa.c (compute_coalesced_reg_partition): Likewise.
21179
21180 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21181
21182         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
21183         every where we allocate a register.
21184
21185 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21186
21187         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
21188         * lcm.c (compute_earliest, compute_farthest): Likewise.
21189
21190 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
21191
21192         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
21193
21194 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
21195
21196         * doc/rtl.texi (Insns): Fix 2 typos.
21197
21198 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
21199
21200         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
21201         options.  Use @table @gcctabopt for MMIX options.  Add index
21202         entries for MMIX options.  Start new paragraph with first
21203         heading of the machine-dependent options.
21204
21205 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21206
21207         PR other/5299
21208         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
21209         * combine.c (force_to_mode): Same.
21210         * reload1.c (clear_reload_reg_in_use): Same.
21211
21212 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
21213
21214         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
21215         and 'subtargets'.
21216
21217 2002-01-11  Andreas Jaeger  <aj@suse.de>,
21218             Brad Lucier <lucier@math.purdue.edu>
21219
21220         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
21221         mcpu.
21222
21223 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
21224
21225         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
21226         Protect with IN_LIBGCC.
21227         (LINK_EH_SPEC): Add required trailing space.
21228
21229 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
21230
21231         * c-tree.h: Move function declarations so that they are listed
21232         under the filename which contains them.
21233         (check_identifier, finish_decl_top_level,
21234         lookup_name_current_level_global, shadow_record_fields): Remove.
21235
21236 2002-01-11  Andreas Jaeger  <aj@suse.de>
21237
21238         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
21239         march.
21240
21241 2002-01-10  Richard Henderson  <rth@redhat.com>
21242
21243         * config/alpha/alpha.c (print_operand): Add 'J'.
21244         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
21245         new operand with the sequence number for the lituse.  When splitting
21246         the insns, use gen_movdi_er_high_g and generate a sequence number.
21247         (gen_movdi_er_high_g): Print the sequence number if non-zero.
21248
21249 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
21250
21251         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
21252         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
21253         stvxl.
21254         (altivec_expand_builtin): Same.
21255         (altivec_expand_stv_builtin): New.
21256
21257         * config/rs6000/rs6000.h (rs6000_builtins): Same.
21258
21259         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
21260         ("altivec_lvehx"): New.
21261         ("altivec_lvewx"): New.
21262         ("altivec_lvxl"): New.
21263         ("altivec_lvx"): New.
21264         ("altivec_stvx"): New.
21265         ("altivec_stvebx"): New.
21266         ("altivec_stvehx"): New.
21267         ("altivec_stvewx"): New.
21268         ("altivec_stvxl"): New.
21269
21270 2002-01-10  Richard Henderson  <rth@redhat.com>
21271
21272         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
21273         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
21274         care not to delete instructions twice.
21275
21276 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
21277
21278         * toplev.c: Don't declare environ (it's not used anywhere).
21279         * configure.in: Don't check for declaration of environ.
21280         * config/i386/xm-mingw32.h: Don't #define environ.
21281         * config.in, configure: Regenerate.
21282
21283 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
21284
21285         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
21286         * configure: Regenerate.
21287
21288         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
21289         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
21290         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
21291         alpha/xm-vms.h.
21292         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
21293         LIMITS_H_TEST here, not in m68k/x-next.
21294         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
21295         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
21296
21297         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
21298         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
21299         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
21300
21301         * config/i386/x-djgpp: Renamed i386/t-djgpp.
21302         * config/m88k/x-dolph: Renamed m88k/t-dolph.
21303         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
21304         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
21305         replacement of quadlib.asm with quadlib.c.
21306
21307         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
21308         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
21309         config/rs6000/xm-beos.h: Delete file.
21310
21311         * config.gcc: Update to match above changes.
21312
21313 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21314
21315         * config/h8300/h8300.h: Fix comment typos.
21316         * config/h8300/h8300.md: Likewise.
21317         * config/h8300/lib1funcs.asm: Likewise.
21318
21319 2002-01-10  Dale Johannesen  <dalej@apple.com>
21320
21321         PR optimization/5269
21322         * unroll.c (precondition_loop_p): Make *increment be the correct
21323         sign when n_iterations known, to avoid confusing caller.
21324
21325 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21326
21327         * doc/extend.texi (deprecated): Fix a typo.
21328
21329 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
21330
21331         * basic-block.h (update_br_prob_note): Declare.
21332         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
21333         (try_forward_edges): Care negative frequencies and update note.
21334         (outgoing_edges_match): Tweek conditional merging heuristics.
21335         (try_crossjump_to_edge): use update_br_prob_note.
21336         * cfglayout.c (fixup_reorder_chain): Likewise.
21337         * cfrtl.c (update_br_prob_note): New.
21338         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
21339
21340         * i386.c (ix86_decompose_address): Return -1 if address contains
21341         shift.
21342         (legitimate_address_p): Require ix86_decompose_address to return 1.
21343
21344         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
21345         (cprop_insn): Likewise.
21346
21347 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21348
21349         * toplev.c: Fix formatting.
21350         * tree.c: Likewise.
21351         * tree-dump.c: Likewise.
21352         * unroll.c: Likewise.
21353         * unwind-dw2.c: Likewise.
21354         * unwind-dw2-fde.c: Likewise.
21355         * unwind-dw2-fde-glibc.c: Likewise.
21356         * unwind-sjlj.c: Likewise.
21357
21358 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
21359
21360         * doc/invoke.texi: Document PDP-11 options.
21361
21362 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21363
21364         * config/h8300/h8300.h: Fix formatting.
21365
21366 2002-01-10  Ira Ruben   <ira@apple.com>
21367
21368         Add __attribute__ ((deprecated)).
21369         * extend.texi: Document __attribute__ ((deprecated)).
21370         * invoke.texi: Document -Wno-deprecated-declarations.
21371         * testsuite/g++.dg/other/deprecated.C: New C++ test.
21372         * testsuite/gcc.dg/deprecated.c: New C test.
21373         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
21374         (c_common_attribute_table): Add "deprecated" entry.
21375         (handle_deprecated_attribute): New function.
21376         * c-decl.c (deprecated_states): New enum.
21377         deprecated_state: State of "deprecated" handling.
21378         (start_decl): Set deprecated_state based on attributes.
21379         (grokdeclarator): Test for deprecated uses, propagate attribute.
21380         * c-typeck.c (build_component_ref): Test for deprecated fields.
21381         (build_external_ref): Test for deprecated primaries.
21382         * diagnostic.c (warn_deprecated_use) New function to issue
21383         warnings about __attribute__ ((depricated)) references.
21384         * flags.h (warn_deprecated_decl): Extern declared for
21385         -W[no-]deprecated-declarations option.
21386         * print-tree.c (print_node): Show deprecated flag status.
21387         * toplev.c (warn_deprecated_decl): Defined.
21388         (W_options): Added "deprecated-declaration".
21389         * toplev.h (warn_deprecated_use): Extern declared.
21390         * tree.h (struct tree_common): Define deprecated_flag.
21391         (TREE_DEPRECATED): New macro to access flag.
21392         * cp/call.c (build_call): Test for deprecated calls.
21393         * cp/class.c (add_implicitly_declared_members): Set global
21394         flag to tell grokdeclarator to not issue deprecated warnings.
21395         * cp/cp-tree.h: Add extern for adding_implicit_members.
21396         * cp/decl.c (deprecated_states): New enum.
21397         (start_decl): Set deprecated_state based on attributes.
21398         (grokdeclarator): Test for deprecated uses, propagate attribute.
21399         * cp/lex.c (do_identifier): Test for deprecated primaries.
21400         * cp/typeck.c (build_component_ref): Test for deprecated fields.
21401
21402 2002-01-10  Ira Ruben   <ira@apple.com>
21403
21404         Fix to assign attributes to inline member functions.
21405         * cp/decl.c (start_method): Handle attrlist.
21406
21407 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21408
21409         * combine.c (expand_field_assignment): Use subreg_lsb().
21410
21411 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
21412
21413         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
21414         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
21415         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
21416         Recurse for any operand of AND as long as constant is non-zero.
21417
21418 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21419
21420         * config/h8300/h8300.md: Remove constraints from expanders.
21421
21422 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21423
21424         * varasm.c: Fix formatting.
21425         * varray.c: Likewise.
21426         * vmsdbgout.c: Likewise.
21427         * xcoffout.c: Likewise.
21428
21429 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
21430
21431         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
21432         update edge probabilities to match.
21433
21434 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
21435
21436         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
21437         dependencies.
21438         * doc/languages.texi, doc/sourcebuild.texi: New files.
21439         * doc/configfiles.texi: Make a subsubsection.  Update.
21440         * doc/configterms.texi: Add @node.  Remove warning that this isn't
21441         instructions for building GCC.
21442         * doc/makefile.texi: Make a subsection.
21443         * doc/gccint.texi: Update.
21444
21445 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
21446
21447         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
21448
21449 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
21450
21451         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
21452
21453 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
21454
21455         * optabs.c (expand_fix): Look for wider integer modes first.
21456
21457         * i386.md (mov?f): Avoid the fake const double trick for medium
21458         memory model.
21459         (min?f*/max?f*): Prohibit memory operands for i387 variant.
21460         (fop_df_4): Disable for SSE compilation.
21461
21462 2002-01-10  Graham Stott  <grahams@redhat.com>
21463
21464         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
21465         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
21466
21467 2002-01-10  Richard Henderson  <rth@redhat.com>
21468
21469         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
21470
21471 2002-01-10  Richard Henderson  <rth@redhat.com>
21472
21473         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
21474         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
21475
21476 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21477
21478         * combine.c (can_combine_p): Fix a comment typo.
21479
21480 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
21481
21482         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
21483         empty list correctly.  Change loop index $t to $f for
21484         consistency with rest of Makefile.
21485
21486 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
21487
21488         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
21489         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
21490
21491         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
21492         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
21493         (altivec_init_builtins): Same.
21494         (altivec_expand_unop_builtin): Return NULL_RTX on error.
21495         (altivec_expand_binop_builtin): Same.
21496         (altivec_expand_ternop_builtin): Same.
21497         (bdesc_dst): New.
21498
21499         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
21500         ("altivec_vctuxs"): Fix typo.
21501         ("altivec_vnmsubfp"): Same.
21502         ("altivec_dssall"): New.
21503         ("altivec_mfvscr"): New.
21504         ("altivec_dss"): New.
21505         ("altivec_lvsl"): New.
21506         ("altivec_lvsr"): New.
21507         ("altivec_dstt"): New.
21508         ("altivec_dstst"): New.
21509         ("altivec_dststt"): New.
21510         ("altivec_dst"): New.
21511
21512         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
21513         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
21514
21515 2002-01-09  Richard Henderson  <rth@redhat.com>
21516
21517         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
21518
21519 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
21520
21521         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
21522         function.
21523         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
21524         prototype.
21525         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
21526
21527 2002-01-09  Kazu Hirata  <kazu@hxi.com>
21528
21529         * read-rtl.c: Fix formatting.
21530         * real.c: Likewise.
21531         * regclass.c: Likewise.
21532         * regrename.c: Likewise.
21533         * reg-stack.c: Likewise.
21534         * reload1.c: Likewise.
21535         * reload.c: Likewise.
21536         * rtl.c: Likewise.
21537
21538 2002-01-09  Kazu Hirata  <kazu@hxi.com>
21539
21540         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
21541         to extract items in the expr_list chain.
21542
21543 2002-01-09  Richard Henderson  <rth@redhat.com>
21544
21545         * config/vax/vax.c (vax_rtx_cost): Never abort.
21546
21547         * config/vax/vax.h (REAL_ARITHMETIC): Define.
21548
21549 2002-01-09  Jan Hubicka  <jh@suse.cz>
21550
21551         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
21552
21553 2002-01-09  Richard Henderson  <rth@redhat.com>
21554
21555         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
21556         Unify code from various alternatives.
21557
21558 2002-01-09  Richard Henderson  <rth@redhat.com>
21559
21560         * regrename.c (copy_value): Ignore the copy if the source register
21561         is present in the value chain with a narrower mode.
21562
21563 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
21564
21565         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
21566         for the c4x target. Also improve layout.
21567
21568 2002-01-09  Richard Henderson  <rth@redhat.com>
21569
21570         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
21571         * config/m32r/m32r.md (and ior xor splitters): Swap operands
21572         to match insn patterns.
21573
21574 2002-01-09  Richard Henderson  <rth@redhat.com>
21575
21576         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
21577         (copyprop_hardreg_forward_1): Likewise.
21578
21579 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21580
21581         * pa.md (decrement_and_branch_until_zero): Change predicate for
21582         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
21583
21584 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
21585
21586         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
21587         gets undefined. For Darwin.
21588
21589 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21590
21591         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
21592
21593 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21594
21595         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
21596
21597 2002-01-08  Richard Henderson  <rth@redhat.com>
21598
21599         * regrename.c (copy_value): Ignore overlapping copies.
21600
21601 2002-01-08  Richard Henderson  <rth@redhat.com>
21602
21603         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
21604         as needed to avoid shared structure.
21605
21606 2002-01-08  Kazu Hirata  <kazu@hxi.com>
21607
21608         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
21609         H8/300H and H8/S.
21610
21611 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21612
21613         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
21614         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
21615         documentation of obsolete macros.
21616         * system.h: Poison these macros.
21617         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
21618         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
21619         config/c4x/c4x.h, config/clipper/clipper.h,
21620         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
21621         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
21622         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
21623         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
21624         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
21625         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
21626         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
21627         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
21628         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
21629         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
21630         config/sparc/sparc.h, config/stormy16/stormy16.h,
21631         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
21632         definitions and commented out definitions of obsolete macros.
21633         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
21634         of MAX_INT_TYPE_SIZE.
21635
21636 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
21637
21638         * config/s390/s390.c (s390_preferred_reload_class): Never
21639         return ADDR_REGS if it isn't a subset of the given class.
21640         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
21641         FP_REGS, but all superclasses as well.
21642
21643         * config/s390/s390.c (s390_function_profiler): Fix thinko.
21644
21645         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
21646         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
21647         must not be a const_int.
21648
21649 2002-01-08  Richard Henderson  <rth@redhat.com>
21650
21651         * Makefile.in (toplev.o): Depend on options.h.
21652         (gcc.o): Depend on specs.h.
21653
21654 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
21655
21656         * expr.c (store_expr): Convert VOIDmode constants back to target's
21657         mode.
21658
21659 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21660
21661         * doc/invoke.texi: Markup gcc as @command.  Refer to
21662         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
21663         of http://gcc.gnu.org/thanks.html.
21664
21665 2002-01-08  Dale Johannesen  <dalej@apple.com>
21666
21667         * config/rs6000/rs6000.md: Add missing int register
21668         target case to movdf_low.
21669
21670 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
21671
21672         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
21673         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
21674         (cppinit.o): Depend on except.h.
21675         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
21676         s-specs): New rules.
21677
21678         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
21679         Don't create specs.h/options.h/gencheck.h here.  Remove
21680         unnecessary variable settings from last argument of AC_OUTPUT.
21681         * config.in, configure: Regenerate.
21682         * intl.c: Hardcode package name as "gcc".
21683
21684         * cppinit.c: Include except.h.
21685         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
21686         appropriate.
21687         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
21688         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
21689         (!)USING_SJLJ_EXCEPTIONS.
21690         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
21691
21692 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21693
21694         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
21695         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
21696         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
21697         documentation of obsolete macros.
21698         * system.h: Poison these macros.
21699         * config/d30v/d30v.h, config/ns32k/encore.h,
21700         config/stormy16/stormy16.h: Remove definitions and commented out
21701         definitions of obsolete macros.
21702
21703 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
21704
21705         * objc/objc-act.c (handle_class_ref): Mark the declaration of
21706         %sobjc_class_ref_%s as used - to prevent unwanted compiler
21707         warnings.
21708
21709 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
21710
21711         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
21712         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
21713         to insn adjusting stack/frame pointer.
21714         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
21715         accept operands that cause the insn to be non-splittable.
21716
21717 2002-01-08  Graham Stott  <grahams@redhat.com>
21718
21719         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
21720         (C_TYPE_FIELDS_VOLATILE): Likewise.
21721         (C_TYPE_BEING_DEFINED): Likewise.
21722         (C_IS_RESERVED_WORD): Likewise.
21723         (C_TYPE_VARIABLE_SIZE): Likewise.
21724         (C_DECL_VARIABLE_SIZE): Likewise.
21725         (C_MISSING_PROTOTYPE_WARNED): Likewise.
21726         (C_SET_EXP_ORIGINAL_CODE): Likewise.
21727         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
21728         parenthesis.
21729         (C_DECL_ANTICIPATED): Likewise.
21730         (c_build_type_variant): Add parenthesis.
21731
21732 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21733
21734         * gcc.c (option_map): Remove --version.
21735         (process_command): Handle -fversion following the GNU Coding
21736         Standards.  Partially addresses PR other/704.
21737
21738 2002-01-08  Graham Stott  <grahams@redhat.com>
21739
21740         * combine.c (combine_instructions): Fix typo.
21741
21742 2002-01-08  Graham Stott  <grahams@redhat.com>
21743
21744         * debug.h: Use "tree" and "rtx" throughout.
21745
21746         * debug.c: Likewise.
21747
21748 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
21749
21750         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
21751         constant pool, use the pool's version of the symbol instead.
21752
21753 2002-01-07  Richard Henderson  <rth@redhat.com>
21754
21755         * regrename.c (find_oldest_value_reg): Ignore the value chain if
21756         the original register was copied in a mode with a fewer number of
21757         hard registers than the desired mode.
21758         (copyprop_hardreg_forward_1): Likewise.
21759         (debug_value_data): Fix loop test.
21760         * toplev.c (parse_options_and_default_flags): Reenable
21761         -fcprop-registers at -O1.
21762
21763 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21764
21765         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
21766         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
21767
21768         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
21769         predicates.
21770
21771         * config/rs6000/rs6000.md: Add altivec predicate patterns.
21772
21773 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21774
21775         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
21776         (pa_output_function_prologue): Output local label at the beginning of
21777         the prologue when profiling.
21778         (hppa_profile_hook): Use the local label rather than the function label.
21779         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
21780
21781 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21782
21783         * config/rs6000/rs6000.c (print_operand): Remove extra space.
21784         (altivec_expand_unop_builtin): Fix thinko.
21785         (altivec_expand_binop_builtin): Same.
21786         (altivec_expand_ternop_builtin): Same.
21787         (altivec_expand_builtin): Same.
21788
21789 2002-01-07  Richard Henderson  <rth@redhat.com>
21790
21791         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
21792
21793 2002-01-07  Jason Merrill  <jason@redhat.com>
21794
21795         * unwind-dw2.c (execute_cfa_program): Use < again.
21796
21797 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
21798
21799         * predict.c (combine_predictions_for_insn): Avoid division by zero.
21800
21801 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
21802
21803         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
21804         Don't allow -1 - x -> ~x simplifications in the first pass.
21805
21806 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21807
21808         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
21809         arguments.
21810         (altivec_expand_binop_builtin): Same.
21811         (altivec_expand_unop_builtin): Same.
21812         (print_operand): Fix typo.
21813         (bdesc_1arg): Add vupk* variants.
21814
21815         * rs6000.h (rs6000_builtins): Add vupk* enums.
21816
21817         * rs6000.md: Add altivec_vupk* variants.
21818
21819 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
21820
21821         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
21822         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
21823         and last update dates.
21824
21825 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
21826
21827         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
21828
21829 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
21830
21831         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
21832         * config/avr/avr.h (CPP_SPEC): Likewise.
21833         (LINK_SPEC): Likewise.
21834         (CRT_BINUTILS_SPECS): Likewise.
21835         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
21836         * doc/invoke.texi (AVR Options): Document them.
21837
21838 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
21839
21840         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
21841         LABEL_NUSES.
21842
21843 2002-01-07  Graham Stott  <grahams@redhat.com>
21844
21845         * config/i386/i386.h: Update copyright date.
21846         (HALF_PIC_PTR): Add parenthesis.
21847         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
21848         (CONSTANT_ALIGNMENT): Add parenthesis.
21849         (DATA_ALIGNMENT): Likewise.
21850         (LOCAL_ALIGNMENT): Likewise.
21851         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
21852         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
21853         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
21854         (HARD_REGNO_NREGS): Add paranethesis.
21855         (VALID_SSE_REG_MODE): Whitespace.
21856         (VALID_MMX_REG_MODE): Whitespace.
21857         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
21858         (ix86_hard_regno_mode_ok): Add parenthesis.
21859         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
21860         (RETURN_IN_MEMORY): Whitespace.
21861         (N_REG_CLASSES): Add parenthesis.
21862         (INTEGER_CLASS_P): Add parenthesis and wrap.
21863         (FLOAT_CLASS_P): Likewise.
21864         (SSE_CLASS_P): Likewise.
21865         (MMX_CLASS_P): Likewise.
21866         (MAYBE_INTEGER_CLASS_P): Likewise.
21867         (MAYBE_FLOAT_CLASS_P): Likewise.
21868         (MAYBE_SSE_CLASS_P): Likewise.
21869         (MAYBE_MMX_CLASS_P): Likewise.
21870         (Q_CLASS_P): Likewise.
21871         (GENERAL_REGNO_P): Uppercase macro parameter.
21872         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
21873         (FP_REGNO_P): Likewise.
21874         (ANY_FP_REGNO_P): Uppercase macro parameter.
21875         (SSE_REGNO_P): Likewise.
21876         (SSE_REGNO): Likewise.
21877         (SSE_REG_P): Likewise.
21878         (SSE_FLOAT_MODE_P): Likewise.
21879         (MMX_REGNO_P): Likewise.
21880         (MMX_REG_P):Likewise.
21881         (STACK_REG_P): Likewise.
21882         (NON_STACK_REG_P): Likewise.
21883         (STACK_TOP_P): Likewise.
21884         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
21885         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
21886         (SECONDARY_MEMORY_NEEDED): Likewise.
21887         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
21888         (MD_ASM_CLOBBERS): Whitespace and wrap.
21889         (MUST_PASS_IN_STACK): Whitespace and wrap.
21890         (RETURN_POPS_ARGS): Add parenthesis.
21891         (INIT_CUMULATIVE_ARGS): Likewise.
21892         (FUNCTION_ARG): Likewise.
21893         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
21894         (SETUP_INCOMING_VARARGS): Likewise.
21895         (BUILD_VA_LIST_TYPE):  Add parenthesis.
21896         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
21897         parenthsis.
21898         (EXPAND_BUILTIN_VA_ARG): Likewise.
21899         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
21900         (INITIALIZE_TRAMPOLINE): Add parenthesis.
21901         (INITIAL_ELIMINATION_OFFSET): Likewise.
21902         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
21903         (REGNO_OK_FOR_BASE_P): Likewise.
21904         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
21905         (REGNO_OK_FOR_DIREG_P): Likewise.
21906         (REG_OK_FOR_INDEX_P): Whitespace.
21907         (REG_OK_FOR_BASE_P): Whitespace.
21908         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
21909         parenthesis.
21910         (FIND_BASE_TERM): Fix typo.
21911         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
21912         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
21913         (SYMBOLIC_CONST; Whitespace.
21914         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
21915         (ENCODE_SECTION_INFO): Whitespace.
21916         (FINALIZE_PIC): Remove do { ... } while (0).
21917         (PROMOTE_MODE): Wrap in do { ... } while (0).
21918         (CONST_COSTS): Whitespace.
21919         (RTX_COSTS): Add paramethesis, whitespace and wrap.
21920         (REGISTER_MOVE_COST): Add parenthesis.
21921         (MEMORY_MOVE_COST): Likewise.
21922         (EXTRA_CC_MODES): Whitespace.
21923         (SELECT_CC_MODE): Add parenthesis and whitespace.
21924         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
21925         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
21926         (ASM_OUTPUT_LABEL): Add paramethesis.
21927         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
21928         (ASM_OUTPUT_REG_POP): Likewise.
21929         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
21930         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
21931
21932         * config/i386/i386.c: Update copyright.
21933         (CHECK_STACK_LIMIT): Add parenthesis.
21934         (AT_BP): Uppercase macro parameter.
21935         (x86_64_int_parameter_registers): Constify.
21936         (x86_64_int_return_registers): Likewise.
21937         (ix86_compare_op0): Use rtx.
21938         (construct_container): Constify INTREG parameter.
21939         (function_arg): Use rtx.
21940
21941         * diagnostic.h: Update copyright date.
21942         (output_buffer_state): Add parenthesis.
21943         (output_buffer_format_args): Likewise.
21944
21945         * combine.c (combine_instructions): Replace XEXP (links, 0)
21946         with link.
21947
21948 2002-01-06  H.J. Lu <hjl@gnu.org>
21949
21950         * cfgcleanup.c (thread_jump): Fix 2 typos.
21951
21952 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
21953
21954         * config.gcc: Add support for --enable-altivec.
21955
21956 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21957
21958         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
21959
21960 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
21961
21962         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
21963         __objc_class_name_*.
21964
21965 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21966
21967         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
21968
21969 2002-01-06  Richard Henderson  <rth@redhat.com>
21970
21971         * reorg.c (emit_delay_sequence): Remove death notes, not merely
21972         nop them out.  Increment label reference count for REG_LABEL.
21973         (fill_slots_from_thread): Frob label reference count around
21974         delete_related_insns.
21975
21976 2002-01-05  Richard Henderson  <rth@redhat.com>
21977
21978         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
21979         jump threading.
21980
21981 2002-01-05  Richard Henderson  <rth@redhat.com>
21982
21983         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
21984         * integrate.c (output_inline_function): Likewise.
21985         * toplev.c (rest_of_compilation): Do it here instead.  Move call
21986         to remove_unnecessary_notes after emitting abstract instance.
21987         Force an emitted nested function to have its parent emited as well.
21988         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
21989         for null.
21990         (rtl_for_decl_location): Do not look at reload data structures
21991         before reload has run.
21992
21993 2002-01-05  Kazu Hirata  <kazu@hxi.com>
21994
21995         * cse.c: Fix formatting.
21996         * dwarf2asm.c: Likewise.
21997         * dwarf2out.c: Likewise.
21998         * explow.c: Likewise.
21999         * expmed.c: Likewise.
22000         * function.c: Likewise.
22001         * gcov.c: Likewise.
22002         * gencheck.c: Likewise.
22003         * genrecog.c: Likewise.
22004         * ggc-common.c: Likewise.
22005         * ggc-page.c: Likewise.
22006         * global.c: Likewise.
22007
22008 2002-01-05  Kazu Hirata  <kazu@hxi.com>
22009
22010         * combine.c: Fix formatting.
22011
22012 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
22013
22014         PR middle-end/1557
22015         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
22016
22017 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
22018
22019         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
22020         as 1 for __powerpc64__ as well.
22021
22022         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
22023
22024         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
22025         return it.
22026
22027 2002-01-05  Daniel Berlin  <dan@dberlin.org>
22028
22029         * lcm.c: Revert change, due to performance regression it causes on
22030         SPEC because it's slightly more conservative (sigh, I hate
22031         edge-based LCM).
22032
22033 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
22034
22035         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
22036
22037 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
22038
22039         * doc/cppinternals.texi: Update.
22040
22041 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
22042
22043         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
22044         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
22045         negatives.
22046         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
22047         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
22048         kludge for pre-october-14th mmix versions to handle new-found bug
22049         with PUSHJ/PUSHGO and the register stack.
22050         * config/mmix/mmix.h (struct machine_function): Rename member
22051         has_call_value_without_parameters to has_call_without_parameters.
22052         All referers changed.
22053         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
22054         TARGET_MASK_BRANCH_PREDICT): New macros.
22055         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
22056         -mno-reg-stack-fill-bug-workaround.
22057         * config/mmix/mmix.md ("call"): Set struct machine member
22058         has_call_without_parameters.
22059
22060 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
22061
22062         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
22063
22064 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
22065
22066         * cfgcleanup.c: Include tm_p.h
22067         (mark_effect): Fix handling of hard register; fix handling of SET
22068
22069 2002-01-04  Kazu Hirata  <kazu@hxi.com>
22070
22071         * config/h8300/h8300.md (anonymous patterns): Check that
22072         operands are registers before using REGNO on them.
22073
22074 2002-01-03  Roland McGrath  <roland@frob.com>
22075
22076         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
22077
22078 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
22079
22080         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
22081         * c-common.h (genrtl_expr_stmt_value): Likewise.
22082         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
22083         (expand_expr_stmt_value): Add maybe_last argument.
22084         Don't warn about statement with no effect if it is the last statement
22085         in expression statement.
22086         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
22087         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
22088         expand_expr_stmt_value.
22089         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
22090         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
22091         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
22092         as maybe_last to expand_expr_stmt_value.
22093
22094 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
22095
22096         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
22097         be passed in, do not build it.
22098         (c_begin_if_stmt): New function.
22099         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22100         * c-common.h (c_expand_start_cond): Update prototype.
22101         (c_begin_if_stmt): Prototype new function.
22102         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22103         * c-parse.in (if_prefix): Use c_begin_if_stmt,
22104         c_begin_while_stmt and c_finish_while_stmt_cond.
22105
22106 2002-01-04  William Cohen  <wcohen@redhat.com>
22107
22108         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
22109         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
22110         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
22111         * config/pa/som.h (ASM_FILE_START): Likewise.
22112
22113 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
22114
22115         * lcm.c: Include df.h.
22116         Add available_transfer_function prototype.
22117         (compute_available): Rework to use iterative dataflow framework.
22118         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
22119         with bb_info in df.h
22120         (available_transfer_function): New function.
22121
22122         * Makefile.in (lcm.o): add df.h to dependencies.
22123
22124 2002-01-04  Richard Henderson  <rth@redhat.com>
22125
22126         * config/alpha/alpha.c (some_operand): Accept HIGH.
22127         (input_operand): Likewise; accept simple references to globals.
22128         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
22129         (alpha_const_double_ok_for_letter_p): Likewise.
22130         (alpha_extra_constraint): Likewise.
22131         (alpha_preferred_reload_class): Likewise.  Do not force
22132         symbolic constants to memory.
22133         (alpha_legitimate_address_p): Accept simple references
22134         to small_symbolic_operand.
22135         (alpha_legitimize_address): New arg scratch.  Be prepared to be
22136         called when no_new_pseudos.  Emit simple symbolic references.
22137         Split integers into low, high, and rest.
22138         (alpha_expand_mov): Use alpha_legitimize_address.
22139         (some_small_symbolic_mem_operand): New.
22140         (split_small_symbolic_mem_operand): New.
22141         * config/alpha/alpha-protos.h: Update.
22142         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
22143         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
22144         (EXTRA_CONSTRAINT): Likewise.
22145         (PREFERRED_RELOAD_CLASS): Likewise.
22146         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
22147         (PREDICATE_CODES): Update.
22148         * config/alpha/alpha.md: New post-reload splitters to convert
22149         simplfied symbolic operands to the form that references $29.
22150         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
22151         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
22152
22153 2002-01-03  Richard Henderson  <rth@redhat.com>
22154
22155         * local-alloc.c (function_invariant_p): Update commentary.
22156
22157 2002-01-04  H.J. Lu <hjl@gnu.org>
22158
22159         * toplev.c (rest_of_compilation): Fix a typo when calling
22160         cleanup_cfg.
22161
22162 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22163
22164         * c-common.c: Fix formatting.
22165         * diagnostic.c: Likewise.
22166         * doloop.c: Likewise.
22167         * dwarf2out.c: Likewise.
22168
22169 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22170
22171         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
22172         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
22173
22174 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
22175
22176         * cpperror.c: Update comments and copyright.
22177         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
22178         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
22179
22180 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22181
22182         * collect2.c (main): Use strcmp when testing for "-shared".
22183
22184 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
22185
22186         * cppmacro.c: Don't include intl.h.  Update comments.
22187         (new_number_token): Allocate enough buffer for 64-bit unsigned
22188         integers; update prototype.
22189         * cppmain.c: Update comments.
22190
22191 2002-01-03  William Cohen  <wcohen@redhat.com>
22192
22193         * function.h (struct function): Add profile.
22194         (current_function_profile): New.
22195         doc/extend.texi: Update documentation.
22196         * final.c (final_start_function): Use current_function_profile
22197         instead of profile_flag.
22198         (profile_after_prologue): Likewise.
22199         * function.c (expand_function_start): Likewise.
22200         (expand_function_start): Likewise.
22201         * config/alpha/alpha.c (direct_call_operand):
22202         (alpha_does_function_need_gp): Likewise.
22203         (alpha_expand_prologue): Likewise.
22204         * config/arm/arm.c (arm_expand_prologue): Likewise.
22205         thumb_expand_prologue: Likewise.
22206         * config/d30v/d30v.c (d30v_stack_info): Likewise.
22207         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
22208         (fr30_expand_prologue): Likewise.
22209         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
22210         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
22211         * config/i386/i386.h (FINALIZE_PIC): Likewise.
22212         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
22213         * config/i960/i960.c (i960_output_function_prologue): Likewise.
22214         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
22215         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
22216         (m32r_expand_prologue): Likewise.
22217         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
22218         (m88k_expand_prologue): Likewise.
22219         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
22220         * config/mips/mips.c (compute_frame_size): Likewise.
22221         (mips_expand_prologue): Likewise.
22222         (mips_can_use_return_insn): Likewise.
22223         * config/pa/elf.h (ASM_FILE_START): Likewise.
22224         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
22225         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
22226         * config/pa/som.h (ASM_FILE_START): Likewise.
22227         * config/romp/romp.c (romp_using_r14): Likewise.
22228         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
22229         (rs6000_stack_info): Likewise.
22230         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22231         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
22232         * config/v850/v850.c (compute_register_save_size): Likewise.
22233
22234 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
22235
22236         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
22237         gen_lowpart_common fails, use gen_lowpart_SUBREG.
22238
22239 2002-01-03  Turly O'Connor  <turly@apple.com>
22240
22241         * darwin.c (machopic_output_possible_stub_label): Don't generate
22242         stub routines for pseudo-stubs which we've just defined.
22243
22244 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22245
22246         * builtins.c: Fix formatting.
22247         * c-typeck.c: Likewise.
22248         * combine.c: Likewise.
22249         * expr.c: Likewise.
22250         * loop.c: Likewise.
22251
22252 2002-01-03  Andreas Schwab  <schwab@suse.de>
22253
22254         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
22255         and return true if _cpp_push_next_buffer pushed a new include
22256         file.
22257         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
22258         _cpp_pop_file_buffer did not push a new file.
22259         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
22260
22261 2002-01-02  Eric Christopher  <echristo@redhat.com>
22262
22263         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
22264         FIND_REG_INC_NOTE call. Update copyright.
22265         * loop.c (canonicalize_condition): Ditto.
22266         * reorg.c (delete_scheduled_jump): Ditto.
22267
22268 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22269
22270         * gcse.c: Fix formatting.
22271
22272 2002-01-03  Graham Stott  <grahams@redhat.com>
22273
22274         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
22275         forward defs for struct tags rtx_def, union_tree, rtvec_def
22276         also output corresponding typedefs for rtx, tree, and rtvec.
22277
22278         * system.h: Move forward defs for struct tags rtx_def, union_tree,
22279         rtvec_def along with corresponding typedefs for rtx, tree, and
22280         rtvec to config.h, hconfig.h, tconfig.h.
22281
22282 2002-01-03  Graham Stott  <grahams@redhat.com>
22283
22284         * tree.h: Update copyright date.
22285         (IS_EXPR_CODE_CLASS): Add parenthesis.
22286         (TREE_SET_CODE): Add whitespace.
22287         (TREE_CHECK): Add parenthesis.
22288         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
22289         (CST_OR_CONSTRUCTOR_CHECK):
22290         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
22291         (TREE_SYMBOL_REFERENCED): Whitespace.
22292         (INT_CST_LT): Likewise.
22293         (INT_CST_LT_UNSIGNED): Likewise.
22294         (tree_real_cst): Unwrap comment.
22295         (tree_string): Likewise.
22296         (tree_complex): Likewise.
22297         (IDENTIFIER_POINTER): correct cast.
22298         (SAVE_EXPR_CONTEXT): Whitespace.
22299         (EXPR_WFL_FILENAME_NODE): Likewise.
22300         (EXPR_WFL_FILENAME): Remove parenthesis.
22301         (DECL_ORIGIN): Add parenthesis.
22302         (DECL_FROM_INLINE): Use NULL_TREE.
22303         (build_int_2): Whitespace.
22304         (build_type_variant): Add parenthesis.
22305
22306         * gcc/jcf-parse.c: Update copyright date.
22307         (yyparse): Constify resource_filename.
22308
22309 2002-01-03  Graham Stott  <grahams@redhat.com>
22310
22311         * rtl.h: Update copyright date.
22312         (RTL_CHECK1): Wrap long line.
22313         (RTL_CHECK2): Likewise.
22314         (RTL_CHECKC1): Wrap long line and whitespace.
22315         (RTL_CHECKC2): Likewise.
22316         (XWINT): Whitespace.
22317         (XINT): Likewise.
22318         (XSTR): Likewise.
22319         (XEXP): Likewise.
22320         (XVEC): Likewise.
22321         (XMODE): Likewise.
22322         (XBITMAP): Likewise.
22323         (XTREE): Likewise.
22324         (XBBDEF): Likewise.
22325         (XTMPL): Likewise.
22326         (X0WINT): Likewise.
22327         (X0INT):Likewise.
22328         (X0UINT): Likewise.
22329         (X0STR): Likewise.
22330         (X0EXP): Likewise.
22331         (X0VEC): Likewise.
22332         (X0MODE): Likewise.
22333         (X0BITMAP): Likewise.
22334         (X0TREE): Likewise.
22335         (X0BBDEF): Likewise.
22336         (X0ADVFLAGS): Likewise.
22337         (X0CSELIB): Likewise.
22338         (X0MEMATTR): Likewise.
22339         (XCWINT): Likewise.
22340         (XCINT): Likewise.
22341         (XCUINT): Likewise.
22342         (XCSTR): Likewise.
22343         (XCEXP): Likewise.
22344         (XCVEC): Likewise.
22345         (XCMODE): Likewise.
22346         (XCBITMAP): Likewise.
22347         (XCTREE): Likewise.
22348         (XCBBDEF): Likewise.
22349         (XCADVFLAGS): Likewise.
22350         (XCCSELIB): Likewise.
22351         (XC2EXP): Likewise.
22352         (INSN_UID): Likewise.
22353         (PREV_INSN): Likewise.
22354         (PATTERN): Likewise.
22355         (INSN_CODE): Likewise.
22356         (PUT_REG_NOTE_KIND): Likewise.
22357         (CODE_LABEL_NUMBER): Likewise.
22358         (NOTE_SOURCE_FILE): Likewise.
22359         (NOTE_BLOCK): Likewise.
22360         (NOTE_EH_HANDLER): Likewise.
22361         (NOTE_RANGE_INFO): Likewise.
22362         (NOTE_LIVE_INFO): Likewise.
22363         (NOTE_BASIC_BLOCK): Likewise.
22364         (NOTE_EXPECTED_VALUE): Likewise.
22365         (NOTE_LINE_NUMBER): Likewise.
22366         (LABEL_NAME): Likewise.
22367         (LABEL_NUSES): Likewise.
22368         (LABEL_ALTERNATE_NAME): Likewise.
22369         (ADDRESSOF_DECL): Likewise.
22370         (JUMP_LABEL): Likewise.
22371         (LABEL_NEXTREF): Likewise.
22372         (REGNO): Likewise.
22373         (ORIGINAL_REGNO: Likewise.
22374         (HARD_REGISTER_NUM_P): Add parenthesis.
22375         (SUBREG_REG): Whitespace.
22376         (SUBREG_BYTE): Likewise.
22377         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
22378         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
22379         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
22380         (ASM_OPERANDS_INPUT_VEC): Likewise.
22381         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
22382         (ASM_OPERANDS_INPUT): Likewise.
22383         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
22384         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
22385         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
22386         (ASM_OPERANDS_INPUT_MODE): Likewise.
22387         (ASM_OPERANDS_SOURCE_FILE): Likewise.
22388         (ASM_OPERANDS_SOURCE_LINE): Likewise.
22389         (MEM_SET_IN_STRUCT_P): Minor reformat.
22390         (TRAP_CONDITION): Whitespace.
22391         (TRAP_CODE): Likewise.
22392         (COND_EXEC_TEST): Likewise.
22393         (COND_EXEC_CODE): Likewise.
22394         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
22395         (PHI_NODE_P): Add parenthesis.
22396         (plus_constant): Whitespace and add parenthesis.
22397
22398 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22399
22400         * config/avr/avr.c: Fix comment typos.
22401         * config/c4x/c4x.md: Likewise.
22402         * config/dsp16xx/dsp16xx.h: Likewise.
22403         * config/dsp16xx/dsp16xx.md: Likewise.
22404         * config/i386/i386.md: Likewise.
22405         * config/ia64/ia64.c: Likewise.
22406         * config/m32r/m32r.h: Likewise.
22407         * config/m68hc11/m68hc11.md: Likewise.
22408         * config/mmix/mmix.c: Likewise.
22409         * config/mn10200/mn10200.c: Likewise.
22410         * config/romp/romp.c: Likewise.
22411         * config/sh/sh.c: Likewise.
22412         * config/stormy16/stormy16.c: Likewise.
22413         * config/stormy16/stormy16.h: Likewise.
22414         * config/stormy16/stormy16.md: Likewise.
22415
22416 2002-01-03  Graham Stott  <grahams@redhat.com>
22417
22418         * loop.h: Update copyright date.
22419         (LOOP_MOVABLES): Fix typo.
22420         (LOOP_REGS): Likewise.
22421         (LOOP_IVS): Likewise.
22422
22423 2002-01-03  Graham Stott  <grahams@redhat.com>
22424
22425         * cppinit.c: Update copyright date.
22426         Don't include output.h
22427         * Makefile.in: Update copyright date.
22428         Update dependency.
22429
22430 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22431
22432         PR c/5226
22433         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
22434         (-pthread) Add to RS/6000 options.
22435
22436 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22437
22438         * except.c: Fix comment typos.
22439         * loop.c: Likewise.
22440         * varasm.c: Likewise.
22441         * doc/tm.texi: Fix a typo.
22442
22443 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
22444
22445         * c-typeck.c (output_init_element): Allow initializing static storage
22446         duration objects with compound literals.
22447
22448 2002-01-02  Richard Henderson  <rth@redhat.com>
22449
22450         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
22451         after abusing it.
22452
22453 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22454
22455         * gcc.c (default_compilers): Const-ify.
22456         * mips-tdump.c (stab_names): Likewise.
22457         * mips-tfile.c (map_coff_types, map_coff_storage,
22458         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
22459         pseudo_ops_t, pseudo_ops): Likewise.
22460         * protoize.c (default_include): Likewise
22461
22462         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
22463         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
22464         Add array size in declaration.
22465         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
22466         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
22467         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
22468         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
22469         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
22470         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
22471         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
22472         emtens, make_nan): Const-ify.
22473         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
22474         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
22475
22476 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
22477
22478         * config.gcc (ia64-*-*): Set extra_headers.
22479         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
22480         * config/alpha/t-osf: Remove.
22481         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
22482
22483 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
22484
22485         * config/rs6000/t-aix43: Revert previous change.
22486
22487 2002-01-02  Jason Merrill  <jason@redhat.com>
22488
22489         * c-decl.c (c_expand_body): Call outlining_inline_function when
22490         emitting an inline function out of line.
22491
22492 2002-01-02  Richard Henderson  <rth@redhat.com>
22493
22494         * dwarf2out.c (limbo_die_node): Add created_for member.
22495         (new_die): New argument created_for.  Update all callers.
22496         (mark_limbo_die_list): New.
22497         (dwarf2out_init): Register limbo_die_list as a root.
22498         (dwarf2out_finish): Force insert limbo dies into their function
22499         context.
22500
22501 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
22502
22503         PR c++/5089
22504         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
22505
22506 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22507
22508         * config/h8300/fixunssfsi.c: Update copyright.
22509         Fix comment typos.
22510         Fix formatting.
22511         * config/h8300/h8300.c: Update copyright.
22512         Eliminate warnings.
22513
22514 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22515
22516         * config/romp/romp.c: Fix comment formatting.
22517         * config/romp/romp.h: Likewise.
22518         * config/romp/romp.md: Likewise.
22519         * config/s390/s390.c: Likewise.
22520         * config/stormy16/stormy16.c: Likewise.
22521         * config/stormy16/stormy16.h: Likewise.
22522
22523 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
22524
22525         * c-common.h (genrtl_expr_stmt_value): Declare.
22526         * c-semantics.c (genrtl_goto_stmt): Redirect to...
22527         (genrtl_goto_stmt_value): ... this new function.  Pass new
22528         argument down to expand_expr_stmt_value, taking
22529         TREE_ADDRESSABLE into account.
22530         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
22531         STMT_EXPR as addressable, i.e., one whose result we want.
22532         * expr.c (expand_expr): Don't save expression statement value
22533         of labeled_blocks or loop_exprs.
22534         * stmt.c (expand_expr_stmt): Redirect to...
22535         (expand_expr_stmt_value): ... this new function.  Use new
22536         argument to tell whether to save expression value.
22537         (expand_end_stmt_expr): Reset last_expr_type and
22538         last_expr_value if we don't have either.
22539         * tree-inline.c (declare_return_variable): Mark its use
22540         statement as addressable.
22541         * tree.h: Document new use of TREE_ADDRESSABLE.
22542         (expand_expr_stmt_value): Declare.
22543
22544 2002-01-01  Tom Rix  <trix@redhat.com>
22545
22546         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
22547         rs6000_emit_allocate_stack.
22548
22549 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
22550
22551         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
22552         ${srcdir}/ginclude/ to every entry in extra_headers.
22553         * configure: Regenerate.
22554         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
22555         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
22556         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
22557         * ginclude/proto.h: Rename to config/convex/proto.h.
22558
22559 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22560
22561         * attribs.c (handle_vector_size_attribute): Use host_integerp
22562         and tree_int_cst; remove warnings.
22563         * caller-save.c (insert_restore): Add cast to get rid of warning.
22564         (insert_save): Likewise.
22565         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
22566         * regmove.c (find_matches): Add temporary var to kill a warning.
22567
22568 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
22569
22570         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
22571         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
22572         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
22573         (vms-dwarf2eh.o): Add Makefile rule.
22574         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
22575         * config/alpha/vms-dwarf2eh.asm: New file.
22576
22577         * gcc.c (delete_if_ordinary): Delete all versions.
22578
22579 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
22580
22581         * config/mmix/mmix.md: Update FIXME to not mention
22582         define_constants.
22583         (MMIX_rJ_REGNUM): New define_constants constant.
22584         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
22585         "*movdicc_real"): Adjust contraints formatting.
22586         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
22587         for branch prediction.
22588         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
22589         output template.
22590         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
22591         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
22592         number.  Delete related FIXMEs.
22593         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
22594         from number to MMIX_rJ_REGNUM.
22595         (TARGET_MASK_BRANCH_PREDICT): New.
22596         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
22597         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
22598         value.  Add -mbranch-predict and -mno-branch-predict.
22599         (TARGET_VERSION): Drop date.
22600         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
22601         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
22602         for finding out global symbols.
22603         (mmix_asm_output_labelref): Revert condition for global symbol.
22604         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
22605         (mmix_print_operand_punct_valid_p): A '+' is valid.
22606
22607 See ChangeLog.6 for earlier changes.