OSDN Git Service

* gcc/explow.c (convert_memory_address): Remove special handling
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
2         * gcc/explow.c (convert_memory_address): Remove special handling
3         when POINTERS_EXTEND_UNSIGNED < 0.
4         * gcc/config/ia64.md (movsi_symbolic): New instruction for ILP32
5         mode.
6         (movedi_symbolic): Fix typo.
7         (load_fptr): Remove mode restriction so it works for SI and DI.
8         (load_fptr_internal1): Ditto.
9         (load_gprel): Ditto.
10         (load_symptr_internal1): Ditto.
11         (call_pic): Ditto.
12         * gcc/config/ia64.c (call_operand): Modify mode check.
13         (ia64_expand_load_address): Handle DI and SI addresses and symbols.
14         (ia64_expand_move): Ditto.
15         (ia64_assemble_integer): Handle SImode function pointers.
16         (ia64_expand_fetch_and_op): Handle SImode mem addresses.
17         (ia64_expand_op_and_fetch): Ditto.
18         (ia64_expand_compare_and_swap): Ditto.
19         (ia64_expand_lock_test_and_set): Ditto.
20         (ia64_expand_lock_release): Ditto.
21
22 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
23
24         * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
25
26 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
27             Richard Earnshaw  <rearnsha@arm.com>
28
29         * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test 
30         CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
31
32 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
33
34         * arm.md (stack_tie): New insn.  Use an idiom that the alias code
35         understands to be a memory clobber.
36         * arm.c (arm_expand_prologue): Use it.
37
38 2002-07-16  Daniel Berlin  <dberlin@dberlin.org>
39
40         * ra-rewrite.c: #include reload.h, insn-config.h
41         * ra-build.c: #include reload.h
42         * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
43         depend on reload.h, insn-config.h. 
44
45 Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
46
47         * expr.c (emit_move_insn_1): Handle arbitrary moves that are
48         the same size as a word.
49
50         * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
51         BYTES_BIG_ENDIAN into account.
52
53 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
54
55         * i386.md (prefetch): Fix for 64bit mode.
56         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
57
58         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
59
60 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
61
62         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
63
64 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
65
66         * ginclude/varargs.h: Replace with stub which issues #error.
67         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
68         __builtin_va_start.
69
70         * builtins.def (BUILT_IN_VARARGS_START): Delete.
71         (BUILT_IN_VA_START): New.
72         * builtins.c (expand_builtin_va_start): Eliminate first
73         argument and code to implement pre-ISO varargs.
74         (std_expand_builtin_va_start): Ignore first argument; it is
75         always 1.
76         (expand_builtin): Handle BUILT_IN_VA_START and
77         BUILT_IN_STDARG_START identically.  Delete
78         BUILT_IN_VARARGS_START case.
79
80         * function.c (assign_parms): Delete hide_last_arg and all
81         its uses.
82         (mark_varargs): Delete function.
83         * function.h (struct function): Delete 'varargs' bit.
84         (current_function_varargs): Delete macro.
85         * tree.h: Don't declare mark_varargs.
86
87         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
88         (c_expand_body): Don't call mark_varargs.
89         * c-objc-common.c: Handle BUILT_IN_VA_START and
90         BUILT_IN_STDARG_START identically.  Delete
91         BUILT_IN_VARARGS_START case.
92         * c-tree.h: Don't declare c_mark_varargs.
93         * c-parse.in: Remove grammar rules for '&...' (which has been
94         commented out since before 2.7.2) and for '...' in K+R
95         argument declarations.
96
97         * builtins.c, function.c, integrate.c, sibcall.c,
98         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
99         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
100         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
101         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
102         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
103         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
104         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
105         config/stormy16/stormy16.c: Delete all references to
106         current_function_varargs, and code predicated on that flag.
107
108         * config/alpha/alpha.c (alpha_va_start),
109         config/arc/arc.c (arc_va_start),
110         config/i386/i386.c (ix86_va_start),
111         config/mips/mips.c (mips_va_start),
112         config/mn10300/mn10300.c (mn10300_va_start),
113         config/rs6000/rs6000.c (rs6000_va_start),
114         config/s390/s390.c (s390_va_start),
115         config/sh/sh.c (sh_va_start),
116         Ignore first argument; it is always 1.
117
118         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
119         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
120         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
121         Delete m68hc11_va_start.
122         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
123         No need to define EXPAND_BUILTIN_VA_START.
124
125         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
126         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
127
128 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
129
130         PR optimization/7153
131         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
132         dies in more than one insn.
133
134 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
135
136         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
137
138 2002-07-15  Michael Matz  <matz@suse.de>,
139             Daniel Berlin  <dberlin@dberlin.org>,
140             Denis Chertykov  <denisc@overta.ru>
141
142         Add a new register allocator.
143
144         * ra.c: New file.
145         * ra.h: New file.
146         * ra-build.c: New file.
147         * ra-colorize.c: New file.
148         * ra-debug.c: New file.
149         * ra-rewrite.c: New file.
150
151         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
152         (ra-rewrite.o): New .o files for libbackend.a.
153         (GTFILES): Add basic-block.h.
154
155         * toplev.c (flag_new_regalloc): New.
156         (f_options): New option "new-ra".
157         (rest_of_compilation): Call initialize_uninitialized_subregs()
158         only for the old allocator.  If flag_new_regalloc is set, call
159         new allocator, instead of local_alloc(), global_alloc() and
160         friends.
161
162         * doc/invoke.texi: Document -fnew-ra.
163         * basic-block.h (FOR_ALL_BB): New.
164         * config/rs6000/rs6000.c (print_operand): Write small constants
165         as @l+80.
166
167         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
168         (df_reg_table_realloc): Make size at least as large as max_reg_num().
169         (df_insn_table_realloc): Size argument now is absolute, not relative.
170         Changed all callers.
171
172         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
173         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
174
175         2002-06-20  Michael Matz  <matz@suse.de>
176
177         * df.h (struct ref.id): Make unsigned.
178         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
179
180         2002-06-13  Michael Matz  <matz@suse.de>
181
182         * df.h (DF_REF_MODE_CHANGE): New flag.
183         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
184         involving subregs with invalid mode changes, when
185         CLASS_CANNOT_CHANGE_MODE is defined.
186
187         2002-05-07  Michael Matz  <matz@suse.de>
188
189         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
190
191         2002-05-03  Michael Matz  <matz@suse.de>
192
193         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
194
195         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
196
197         * regclass.c (regclass): Work with all regs which have sets or
198         refs.
199         (reg_scan_mark_refs): Count regs inside (clobber ...).
200
201         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
202
203         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
204         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
205         add new refs.
206         (df_bb_refs_update): Don't clear insns_modified here, ...
207         (df_analyse): ... but here.
208
209         * sbitmap.c (dump_sbitmap_file): New.
210         (debug_sbitmap): Use it.
211
212         * sbitmap.h (dump_sbitmap_file): Add prototype.
213
214         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
215
216         * df.c (df_insn_modify): Grow the UID table if necessary, rather
217         than assume all emits go through df_insns_modify.
218
219         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
220
221         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
222         increase REG_N_REFS (like flow does), so that regclass doesn't
223         think a reg is useless, and thus, not calculate a class, when it
224         really should have.
225
226         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
227
228         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
229         dataflow analysis.
230
231 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
232
233         PR middle-end/7245
234         * config/i386/i386.c (const_int_1_31_operand): New.
235         * config/i386/i386.h (PREDICATE_CODES): Add it.
236         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
237         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
238         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
239
240 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
241
242         PR target/7282
243         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
244         (floatunssidf2): Likewise.
245         (floatsidf_ppc64): New insn_and_split.
246         (floatunssidf_ppc64): Likewise.
247
248 2002-07-14  Andreas Jaeger  <aj@suse.de>
249
250         * config.gcc (sh64): Remove unused
251         target_requires_64bit_host_wide_int.
252
253 2002-07-12  Roger Sayle  <roger@eyesopen.com>
254
255         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
256         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
257         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
258         whether clear_by_pieces should be used to clear storage.
259         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
260
261         * doc/tm.texi: Document these two new target macros.
262
263 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
264
265         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
266         the scratch register.
267         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
268         of it, forbid reload to use it.
269
270 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
271
272         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
273         usage on 64-bit hosts, return value was truncated to 32 bits.
274
275 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
276
277         * simplify-rtx.c (simplify_subreg): Handle floating point
278         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
279         the element mode is requested, compute a subreg with an
280         integer mode of the same size as the element mode first.
281
282 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
283
284         * combine.c (try_combine): When converting a paradoxical subreg
285         to an extension, take LOAD_EXTEND_OP into account.
286
287 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
288
289         * config.gcc (mips-sgi-irix6*o32): New configuration.
290
291         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
292         configurations.
293         * configure: Regenerate.
294
295         * config/mips/iris6-o32-as.h: New file.
296         * config/mips/iris6-o32.h: New file.
297
298         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
299         (NM_FLAGS): Define.
300         (HAVE_AS_SHF_MERGE): Undefine.
301
302         * config/mips/t-iris5-as: New file.
303         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
304
305         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
306         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
307         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
308         dp-bit.c, fp-bit.c): Move ...
309         * config/mips/t-iris5-6: ... here.
310         New file, shared by IRIX 5 and IRIX 6.
311         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
312         mips-sgi-irix5*): Use it.
313
314         * config/mips/iris6.h: Remove duplicate comment.
315
316         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
317         !TARGET_IRIX6]: Define.
318         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
319
320         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
321
322 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
323
324         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
325         and delete code to force constant to register.
326         * pa-protos.h (adddi3_operand): Add prototype.
327         * pa.c (adddi3_operand): New function.
328
329 2002-07-11  Roger Sayle  <roger@eyesopen.com>
330
331         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
332         non-ANSI builtin functions.
333
334 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
335
336         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
337         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
338         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
339         (gen_const_vector_0): Use it.
340
341 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
342
343         * pa.md (adddi3): For 32-bit targets, force constants to a register
344         if they don't fit in an 11-bit immediate.  Change insn predicate to
345         arith11_operand.  Remove comment.
346         * pa.c (cint_ok_for_move): Fix comment.
347         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
348         targets.
349
350 2002-07-11  Tim Josling  <tej@melbpc.org.au>
351
352         Remove front end hard coding from gengtype.c.
353
354         * Makefile.in
355         (STAGESTUFF): add gtyp-gen.h
356         (GTFILES): Remove front end specific files.
357         (GTFILES_FILES_LANGS): New, from configure..
358         (GTFILES_FILES_FILES): Likewise.
359         (GTFILES_LANG_DIR_NAMES): Likewise.
360         (GTFILES_SRCDIR): Likewise.
361         (gtyp-gen.h): Build from configure information.
362         (s-gtype): Remove command line parameters from gengtype.
363         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
364         (mostlyclean): Delete files generated by and for gengtype.
365
366         * c-config-lang.in: New file.
367
368         * configure.in (all_gtfiles_files_langs): New. Accumulate files
369         for each language.
370         (all_gtfiles_files_files): New. Accumulate language for each file
371         accumulated.
372         (gtfiles): Pick up value for C.
373         (srcdir): AC-SUBST this variable.
374         (all_gtfiles_files_langs): AC-SUBST this variable.
375         (all_gtfiles_files_files): AC-SUBST this variable.
376
377         * configure: Regenerate.
378
379         * gengtype-lex.l (parse_file): Make parameter const.
380
381         * gengtype.c (toplevel): include gtyp-gen.h.
382         (BASE_FILE_<language> unnamed enum): Delete.
383         (lang_names): Delete (replaced by gtyp-gen.h)
384         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
385         all references.
386         (NUM_GT_FILES): New.
387         (NUM_LANG_FILES): New.
388         (srcdir_len): New.
389         (NUM_BASE_FILES): Change calculation.
390         (open_base_files): Change prototype to avoid warning.
391         (startswith): Delete.
392         (get_file_basename): Iterate through generated language list not
393         hard coded list.
394         (get_base_file_bitmap): Use generated list of files and languages.
395         (close_output_files): Add prototype to rmove warning.
396         (main): Iterate through list of generated files from gtyp-gen.h
397         rather than command line paramaters.  Ignore duplicated file
398         names.
399
400         * gengtype.h (parse_file): Amend prototype for const parameter.
401
402         * doc/sourcebuild.texi: Document gtfiles variable.
403
404         * doc/gty.texi: Document changes to gtfiles variable for front
405         ends.
406
407         * objc/config-lang.in (gtfiles): Add files needed for objc front
408         end.
409
410 2002-07-10  Roger Sayle  <roger@eyesopen.com>
411
412         PR c/2454
413         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
414         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
415
416 2002-07-10  Roger Sayle  <roger@eyesopen.com>
417             Zack Weinberg <zack@codesourcery.com>
418
419         * builtins.def: Make the argument types of abort and exit
420         independent of the front-end.
421
422 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
423
424         * config/rs6000/linux64.h (ASM_SPEC): Define.
425
426 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
427
428         * config/rs6000/rs6000.c (emit_frame_save): New.
429         (rs6000_frame_related): Replace reg2 before reg.
430         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
431         and eh_return registers.
432
433 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
434
435         Revert all patches for optimization of Complex .op. Real.
436         * complex_part_zero_p: Remove
437         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
438         with x.
439         * expand_cmplxdiv_wide: Ditto.
440         * expand_binop: Ditto.
441
442 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
443
444         * config/avr/avr.md: Fix two 0x80000000 constants to make them
445         negative also on 64-bit hosts.
446
447         Default to -fno-reorder-blocks when optimizing for size.
448         * config/avr/avr-protos.h (avr_optimization_options): Declare.
449         * config/avr/avr.c (avr_optimization_options): New function.
450         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
451
452         Optimize returning from simple functions.
453         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
454         * config/avr/avr.c (avr_simple_epilogue): New function.
455         * config/avr/avr.md (return): New insn.
456
457 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
458
459         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
460         HAS_INIT_SECTION to protection.
461
462 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
463
464         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
465         deprecated.
466
467 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
468
469         * combine.c (gen_lowpart_for_combine): Handle vector modes.
470         Supply non-VOID mode to simplify_gen_subreg.
471
472 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
473
474         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
475
476 2002-07-10  Jeffrey A Law  <law@redhat.com>
477
478         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
479         as appropriate.
480
481         * mn10200.c (expand_epilogue): Fix test to determine which scratch
482         register to use.
483
484 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
485
486         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
487         Get mode from dest.
488         If simplify_gen_subreg fails, try next equivalent.
489
490 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
491
492         * diagnostic.h: #include location.h
493         (location_t): Move definition to..
494         * location.h: ... here.  New file.
495         * tree.h: #include location.h
496         (DECL_SOURCE_LOCATION): New macro.
497         (DECL_SOURCE_FILE): Use.
498         (DECL_SOURCE_LINE): Likewise.
499         (struct tree_decl): REplace filename and linenum with locus.
500         * Makefile.in (TREE_H): add location.h
501         (diagnostic.o): Depends on gt-location.h
502         (gt-location.h): Depends on s-gtype
503
504 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
505
506         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
507         TARGET_OS_CPP_BUILTINS.
508         * config/rs6000/aix31.h: Likewise.
509         * config/rs6000/aix41.h: Likewise.
510         * config/rs6000/aix43.h: Likewise.
511         * config/rs6000/aix51.h: Likewise.
512         * config/rs6000/beos.h: Likewise.
513         * config/rs6000/darwin.h: Likewise.
514         * config/rs6000/eabi.h: Likewise.
515         * config/rs6000/eabisim.h: Likewise.
516         * config/rs6000/linux.h: Likewise.
517         * config/rs6000/linux64.h: Likewise.
518         * config/rs6000/lynx.h: Likewise.
519         * config/rs6000/mach.h: Likewise.
520         * config/rs6000/rtems.h: Likewise.
521         * config/rs6000/sysv4.h: Likewise.
522         * config/rs6000/vxppc.h: Likewise.
523
524 2002-07-09 Devang Patel <dpatel@apple.com>
525         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
526         Do not allow ObjC objects as a parameter type for Objective-C methods.
527         My previous patch restricted  'struct' also.
528
529 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
530
531         * cpperror.c (cpp_error): Default to directive_line within
532         directives here.
533         * cppexp.c (cpp_interpret_integer): Only use traditional
534         number semantics in directives.
535         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
536         (do_include_common): Similarly.
537         * cpptrad.c (scan_out_logical_line): Implement accurate
538         quoting of <> in #include.
539         * doc/cpp.texi: Update.
540
541 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
542                           J"orn Rennecke <joern.rennecke@superh.com>
543
544         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
545         * sh.md (attribute issues): Replace with:
546         (attribute pipe_model).  All users changed.
547         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
548         All users changed.
549         (function units sh5issue, sh5fds): New.
550         (attribute is_mac_media): New.
551         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
552         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
553         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
554         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
555         (call_media, call_value_media, sibcall_media): Likewise.
556         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
557         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
558         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
559         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
560         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
561         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
562         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
563         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
564         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
565         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
566         (truncdfsf2_media): Likewise.
567         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
568         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
569
570 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
571
572         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
573         * sh.c (general_extend_operand, inqhi_operand): New functions.
574         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
575         alternatives using 'N' modifier.  Add type.
576         (adddi3z_media): Likewise.  Enable generator function generation.
577         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
578         exact predicates / constraints.  Add type.
579         (subsi3): Allow 0 for SHMEDIA.
580         (udivsi3_i4_media): Use match_operand for input values
581         rather than hard registers.
582         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
583         unnecessarily through hard registers.  Keep copies of pseudo
584         registers outside of the libcall sequence.
585         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
586         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
587         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
588         (extendhidi2, extendqidi2): Likewise.
589         (andsi3_compact): Name.
590         (andcdi3): Enable generator function generation.
591         (zero_extendhisi2, zero_extendqisi2): Rename to
592         (zero_extendhisi2_compact, zero_extendqisi2_compact).
593         (extendhisi2, extendqisi2): Rename to
594         (extendhisi2_compact, extendqisi2_compact).
595         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
596         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
597         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
598         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
599         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
600         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
601         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
602         (shmedia32_initialize_trampoline_big): Likewise.
603         (shmedia32_initialize_trampoline_little): Likewise.
604         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
605         (negdi2): Remove spurious T clobber.
606         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
607         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
608         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
609         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
610         (ic_invalidate_line_media): Write back data cache before invalidating
611         instruction cache.  Add type.
612         (movsf_media): Sign-extend when the destination is a general
613         purpose register.  Add type.
614         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
615         (casesi_worker_0+1): Only increment ref count for proper label.
616         (casesi_worker_0+2): Likewise.
617
618 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
619
620         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
621
622 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
623
624         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
625         from Pmode to ptr_mode.
626         (get_exception_pointer): Ditto.
627         (connect_post_landing_pads): Ditto.
628         (dw2_build_landing_pads): Ditto.
629
630 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
631         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
632         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
633         (handle_pragma_redefine_extname): Change to use new function.
634
635 2002-07-08  Roger Sayle  <roger@eyesopen.com>
636
637         * combine.c (combine_simplify_rtx): Add an explicit cast
638         to avoid signed/unsigned comparison warning.
639         (simplify_if_then_else): Likewise.
640         (extended_count): Likewise.
641         (simplify_shift_const): Likewise.
642         (simplify_comparison): Likewise.
643
644 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
645
646         * config/mips/mips.md: Add imadd type.  Update scheduler description
647         to use imadd as well as imul.
648         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
649         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
650         (*mul_sub_si): Likewise for first alternative.  Change second
651         alternative from imul to multi.
652
653 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
654
655         * c-common.c (c_common_post_options): Update prototype;
656         don't init backends if preprocessing only.
657         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
658         * langhooks.h (struct lang_hooks): Update post_options to
659         return a boolean.
660         * toplev.c (parse_options_and_default_flags, do_compile,
661         lang_independent_init): Update prototypes.  Allow the
662         front end to specify that there is no need to initialize
663         the back end.
664         (general_init): Move call to hex_init here...
665         (toplev_main): ...from here.  Pass flag for back end init
666         suppression.
667
668 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
669
670         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
671         (PREDICATE_CODES): Add entries for equality_comparison_operator,
672         greater_comparison_operator and less_comparison_operator.
673         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
674         more operators.
675         (equality_comparison_operator): New function.
676         (greater_comparison_operator, less_comparison_operator): Likewise.
677         * sh.md (beq_media_i): Disable generator function generation.
678         Use match_operator to handle a whole class of comparisons.  Add
679         modifier in output template to provide branch prediction.  Add type.
680         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
681         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
682         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
683         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
684
685 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
686
687         Emit MMIX function prologue and epilogue as rtl.
688         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
689         not unprototyped get_hard_reg_initial_val.
690         ("call_value", "nonlocal_goto_receiver"): Ditto.
691         ("return"): Make define_expand.  Move real insn to...
692         ("*expanded_return"): New pattern.
693         ("prologue", "epilogue"): New define_expands.
694         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
695         (struct machine_function): New member in_prologue.
696         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
697         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
698         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
699         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
700         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
701         (LOCAL_REGNO): Define.  Adjust comment.
702         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
703         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
704         leaf_function_p.
705         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
706         the prologue.
707         (mmix_target_asm_function_prologue): Make static.  Just mark that
708         the prologue is being emitted.  Move guts to...
709         (mmix_expand_prologue): New function.  Adjust for emitting
710         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
711         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
712         \n.  Move guts to...
713         (mmix_expand_epilogue): New function.  Adjust for emitting
714         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
715         (mmix_target_asm_function_end_prologue): Mark that the prologue
716         has ended.
717         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
718         (mmix_conditional_register_usage): Improve comments.
719         (mmix_local_regno): New function.
720         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
721         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
722         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
723         (mmix_get_hard_reg_initial_val): Ditto.
724
725 2002-07-06  Andreas Jaeger  <aj@suse.de>
726
727         * toplev.c (set_fast_math_flags): Don't use ISO C style function
728         definitions.
729         * gengtype.c (open_base_files): Likewise.
730         (close_output_files): Likewise.
731         * tracer.c (find_best_predecessor): Likewise.
732         (find_best_successor): Likewise.
733         (ignore_bb_p): Likewise.
734
735 2002-07-05  Roger Sayle  <roger@eyesopen.com>
736
737         PR c++/7099
738         * builtin-attrs.def: Define new attribute lists for use in
739         builtins.def.
740         * builtins.def [DEF_BUILTIN]: Modify to take an additional
741         ATTRS argument, an enumerated value defined in builtin-attrs.def
742         that represents the attribute list for the builtins.  Modify
743         all builtin functions to pass an appropriate attribute list.
744         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
745         their required noreturn attributes.
746         * tree.h (enum_builtin_function): Ignore the additional parameter
747         to DEF_BUILTIN.
748         * builtins.c (built_in_names): Likewise.
749         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
750         argument with a tree representing the functions attribute list.
751         Pass this "attrs" argument to builtin_function.  No longer handle
752         the noreturn_p processing manually.
753         (built_in_attributes): Move the definitions from builtin-attrs.def
754         before c_common_nodes_and_builtins.
755         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
756         DEF_BUILTIN, passing it to both builtin_function and the changed
757         builtin_function_2.
758
759         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
760         __builtin__exit and __builtin__Exit.
761
762 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
763
764         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
765         QI mode registers in soft registers.
766         ("zero_extendqihi2"): Do not take into account soft registers
767         for register allocation (use '*' constraint).
768
769 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
770
771         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
772         it is dead.
773         ("*ashrsi3"): Likewise.
774         ("*lshrsi3"): Likewise.
775
776 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
777
778         * genautomata.c (output_max_insn_queue_index_def): Take latencies
779         into account.
780
781 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
782
783         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
784         address computation and memory moves.
785
786 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
787
788         PR c++/6706
789         * dwarfout.c (output_reg_number): Fix warning message.
790         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
791         before using it.
792
793 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
794
795         * gcc/gcc.c (asm_debug): Move initialization ...
796         (init_spec): ... here.
797
798 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
799
800         * c-parse.in (extdef): Append ';'.
801         (old_style_parm_decls): Append ';'.
802
803 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
804
805         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
806         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
807         to gcc_cv_as_gstabs_flag.
808         * configure: Rebuilt.
809
810 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
811
812         * ggc.h (ggc_add_root): Document as obsolete.
813
814 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
815
816         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
817         (mshflo_w): Likewise.
818
819 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
820
821         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
822         vector mode subregs of constants to finding integer mode
823         subregs of constants.
824         * cse.c (cse_insn): Use simplify_gen_subreg.
825         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
826         From a vector mode expression of different size than the
827         target mode.
828
829 2002-07-03  Eric Christopher  <echristo@redhat.com>
830
831         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
832         * config/mips/mips.h: Remove deprecated -m<processor> options
833         and cc1_cpu_spec associated.
834         (CONSTANT_ADDRESS_P): Fix last patch.
835         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
836         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
837         sunge_sf): Remove.
838
839 2002-07-03  Stan Shebs  <shebs@apple.com>
840
841         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
842         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
843         (CPP_SPEC): Remove insertion of APPLE_CC definition.
844
845 2002-07-03  Roger Sayle  <roger@eyesopen.com>
846
847         * combine.c (struct_undo): Change types of recorded substitutions
848         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
849         (do_SUBST_INT): Change types of the substitution from unsigned int
850         to int, to avoid compilation warning from SUBST_INT's only caller.
851
852         (make_extraction): Add cast to avoid compilation warning.
853         (force_to_mode): Remove cast to avoid compilation warning.
854
855 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
856             Jeff Law  <law@redhat.com>
857
858         * i386.md (length_immediate attribute): Fix typo.
859         (length_address attribute): Likewise.
860         (modrm attribute): Set it to 0 for immediate call instructions.
861         (jcc_1 pattern): Set modrm attribute to 0.
862         (jcc_2 pattern ): Likewise.
863         (jump pattern): Likewise.
864         (doloop_end_internal pattern): Explicitly set length.
865         (leave pattern): Fix typo.
866         (leave_rex64 pattern): Likewise.
867
868 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
869
870         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
871         in FPR as preference.
872         (fctiwz): Same.
873         (floatdidf2, fix_truncdfdi2): Same.
874         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
875         (floatditf2): Same.
876         (floatsitf2, fix_trunctfsi2): SImode in GPR.
877         (ctrdi): Remove FPR alternative and splitter.
878
879 2002-07-03  Will Cohen  <wcohen@redhat.com>
880
881         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
882
883 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
884
885         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
886         than UNITS_PER_WORD, unless this is little endian and the first unit
887         in this word.  Let extract_bit_field decide how to load an element.
888         Force arguments to matching mode.
889         (expand_vector_unop): Likewise.
890
891         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
892         consist of word_mode elements.
893         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
894         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
895         (build_unary_op): Allow vector types for BIT_NOT_EPR.
896         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
897         CONST_VECTOR.
898         * optabs.c (expand_vector_binop): Try to perform operation in
899         smaller vector modes with same inner size.  Add handling of AND, IOR
900         and XOR.  Reject expansion to inner-mode sized scalars when using
901         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
902         (expand_vector_unop): Try to perform operation in smaller vector
903         modes with same inner size.  Add handling of one's complement.
904         When there is no vector negate operation, try a vector subtract
905         operation.  Use simplify_gen_subreg on constants.
906         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
907         constants into smaller vectors with same inner mode, and to
908         integer CONST_DOUBLEs.
909
910 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
911
912         * c-parse.in (parsing_iso_function_signature): New variable.
913         (extdef_1): New, copied from...
914         (extdef): ... here.  Reset parsing_iso_function_signature.
915         (old_style_parm_decls):  Reset parsing_iso_function_signature.
916         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
917         Warn about ISO C style function definitions.
918         (nested_function, notype_nested_function): Reset
919         parsing_iso_function_signature.
920         (parmlist_2): Set parsing_iso_function_signature.
921
922         * doc/invoke.texi (-Wtraditional): Document new behavior.
923
924 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
925
926         * config.gcc (mips*el-*-*): Use tm_defines to set
927         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
928         * config/mips/little.h: Remove.
929
930 2002-07-02 Devang Patel <dpatel@apple.com>
931
932         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
933         object as parameter. Prevent something like 'NSObject' to be
934         used as the type for a method argument.
935
936 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
937
938         * cpptrad.c: Update comment.
939
940 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
941
942         * doc/cpp.texi: Update for traditional preprocessing changes.
943         * goc/cppopts.texi: Similarly.
944
945 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
946
947         * c-parse.in (designator): Enable designated initializers if ObjC.
948         (objcmessageexpr): Remove references to objc_receiver_context.
949         * objc/objc-act.h (objc_receiver_context): Remove decl.
950         * objc/objc-act.c (objc_receiver_context): Remove.
951         (lookup_objc_ivar): Test objc_method_context instead of
952         objc_receiver_context.
953
954 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
955
956         * sh.c (print_operand, case 'N'): Allow zero vector.
957         (arith_reg_or_0_operand): Likewise.
958         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
959         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
960         IOR, XOR, PLUS and SET and take their respective constant
961         ranges into account.
962         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
963         * sh.md (subdi3, subdi3_media): Allow zero operand.
964         (movv8qi_i+3): Only vector that is not split is the zero vector.
965         Fix operand 3 to simplify_subreg.
966         (movv2si_i): Split alternative 1.
967         (mshfhi_l_di_rev+1): New splitter.
968
969 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
970
971         PR preprocessor/7029
972         * cppinit.c (cpp_handle_option):  Suppress warnings with an
973         implicit "-w" for "-M" and "-MM".
974         * doc/cppopts.texi: Update.
975
976 2002-07-01  Roger Sayle  <roger@eyesopen.com>
977
978         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
979         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
980         builtin_function.
981
982 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
983
984         * README.Portability: Fix typos.
985
986 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
987
988         PR target/7177
989         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
990         of indirections for register inside sign-extended mem part.
991
992 2002-07-01  Roger Sayle  <roger@eyesopen.com>
993
994         * tree.h:  Modify builtin_function interface to take an extra
995         argument ATTRS, which is a tree representing an attribute list.
996
997         * c-decl.c (builtin_function): Accept additional parameter.
998         * objc/objc-act.c (builtin_function): Likewise.
999         * f/com.c (builtin_function): Likewise.
1000         * java/decl.c (builtin_function): Likewise.
1001         * ada/utils.c (builtin_function): Likewise.
1002         * cp/decl.c (builtin_function): Likewise.
1003         (builtin_function_1): Likewise.
1004
1005         * c-common.c (c_common_nodes_and_builtins): Pass an additional
1006         NULL_TREE argument to builtin_function.  (builtin_function_2):
1007         Likewise.
1008         * cp/call.c (build_java_interface_fn_ref): Likewise.
1009         * objc/objc-act.c (synth_module_prologue): Likewise.
1010         * java/decl.c (java_init_decl_processing): Likewise.
1011         * f/com.c (ffe_com_init_0): Likewise.
1012
1013         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
1014         NULL_TREE argument to builtin_function.
1015         * config/arm/arm.c (def_builtin): Likewise.
1016         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
1017         * config/i386/i386.c (def_builtin): Likewise.
1018         * config/ia64/ia64.c (def_builtin): Likewise.
1019         * config/rs6000/rs6000.c (def_builtin): Likewise.
1020
1021 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
1022
1023         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
1024         * config/mips/t-isa3264: Likewise.
1025         * config/mmix/t-mmix: Likewise.
1026
1027 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1028
1029         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
1030
1031 2002-07-01  Roger Sayle  <roger@eyesopen.com>
1032
1033         PR opt/4046
1034         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
1035         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
1036         B are truth values.
1037
1038 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
1039
1040         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
1041
1042 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
1043
1044         * README.Portability (Function prototypes): Give an example of
1045         declaring and defining a function with no arguments.
1046
1047         * README.Portability (Function prototypes): Document new
1048         variable-argument function macros.
1049
1050 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
1051
1052         * sh.c (langhooks.h): Include.
1053         (sh_init_builtins, sh_media_init_builtins): New functions.
1054         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
1055         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
1056         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
1057         (builtin_description): New struct tag.
1058         (signature_args, bdesc): New arrays.
1059         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
1060         (print_operand): Add 'N' modifier.
1061         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
1062         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
1063         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
1064         (CONST_COSTS): Add special case for SHmedia AND.
1065         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
1066         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
1067         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
1068         target_operand can also be const or unspec.
1069         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
1070         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
1071         (attribute type): Add new types.
1072         (anddi3): Add splitter.
1073         (movdi_const_16bit+1): Add code to handle vector constants and
1074         bitmasks efficiently.
1075         (shori_media): Have generator function made.
1076         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
1077         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
1078         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
1079         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
1080         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
1081         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
1082         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
1083         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
1084         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
1085         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
1086         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
1087         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
1088         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
1089         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
1090         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
1091         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
1092         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
1093         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
1094         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
1095         (ftrv): Likewise.
1096
1097         (fpu_switch+1, fpu_switch+2): Remove constraint.
1098
1099 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
1100
1101         * tree.c (build_function_type_list): Update function comment.
1102         Rename first argument to return_type.
1103
1104 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1105
1106         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
1107         tradcif.y and related files.
1108
1109 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1110
1111         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
1112
1113 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1114
1115         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
1116
1117 2002-06-30  Devang Patel  <dpatel@apple.com>
1118
1119         * objc/objc-act.c (finish_file): Avoid finish_objc() if
1120         -fsyntax-only.
1121
1122 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
1123                           Frank Ch. Eigler  <fche@redhat.com>
1124                           Matthew Green  <mrg@redhat.com>
1125                           Richard Henderson <rtl@redhat.com>
1126                           Dave Hudson  <dave.hudson@ubicom.com>
1127                           Jeff Johnston  <jjohnstn@redhat.com>
1128                           Alan Lehotsky <apl@alum.mit.edu>
1129                           Bernd Schmidt  <bernds@redhat.com>
1130                           Graham Stott  <grahams@redhat.com>
1131
1132         * doc/extend.texi: Add ip2k port to description of attribute
1133         naked.
1134         * doc/install.texi (Specific): Add ip2k description.
1135         * doc/install-old.texi (Configurations): Add ip2k to possible
1136         cpu types.
1137         * doc/md.texi: Document ip2k constraints.
1138         * config/ip2k/crt0.S: New file.
1139         * config/ip2k/ip2k-protos.h: New file.
1140         * config/ip2k/ip2k.c: New file.
1141         * config/ip2k/ip2k.h: New file.
1142         * config/ip2k/ip2k.md: New file.
1143         * config/ip2k/libgcc.S: New file.
1144         * config/ip2k/t-ip2k: New file.
1145
1146 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
1147
1148         * config/mmix/mmix.md ("return"): New pattern.
1149         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
1150         (TARGET_USE_RETURN_INSN): New macros.
1151         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
1152         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
1153         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
1154         (MMIX_POP_ARGUMENT): New macro.
1155         (mmix_target_asm_function_prologue): When no epilogue is executed,
1156         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
1157         (mmix_print_operand) <case '.'>: New case.
1158         (mmix_print_operand_punct_valid_p): Match '.'.
1159         (mmix_use_simple_return): New function.
1160         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
1161         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
1162         -msingle-exit, -mno-single-exit.
1163         (MMIX Options): Ditto.
1164
1165 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
1166
1167         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
1168
1169 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1170
1171         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
1172
1173 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
1174
1175         * unroll.c (loop_iterations): Handle EQ loops.
1176
1177 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
1178
1179         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
1180         constraint in define_expand, not splitter.
1181         Formatting.
1182
1183 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
1184
1185         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
1186         build_function_type_list instead of build_function_type.
1187
1188         * config/ia64/ia64.c (ia64_init_builtins): Same.
1189
1190         * config/alpha/alpha.c (alpha_init_builtins): Same.
1191
1192         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
1193
1194         * config/arm/arm.c (arm_init_builtins): Same.
1195
1196         * tree.h: Add build_function_type_list prototype.
1197
1198         * tree.c (build_function_type_list): New.
1199
1200 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1201
1202         * collect2.c (scan_prog_file): Fix typo in message.
1203
1204 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
1205
1206         * fold-cont.c: Remove unused CHARMASK.
1207
1208 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
1209
1210         PR preprocessor/7150
1211         * cppmain.c (scan_translation_unit_trad): Simplify.
1212         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
1213
1214 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1215
1216         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
1217         Don't use CPP_PREDEFINES.
1218         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
1219         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
1220         * config/i386/djgpp.h, config/i386/i386-coff.h,
1221         config/i386/i386-interix.h, config/i386/i386-interix3.h,
1222         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
1223         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
1224         config/i386/uwin.h: Similarly.
1225
1226 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1227
1228         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
1229         flag_inline_trees to enable inlining.
1230
1231 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
1232
1233         * configure.in (gcc_gxx_include_dir):  Change to match versioned
1234         C++ headers if --enable-version-specific-runtime-libs is used.
1235         * configure:  Regenerate.
1236
1237 2002-06-28  Jan Hubicka  <jh@suse.cz>
1238
1239         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
1240
1241 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
1242
1243         * combine.c (combine_simplify_rtx): Pass the mode of the
1244         shift count, not the shift operation when trying to simplify
1245         a shift on a SHIFT_COUNT_TRUNCATED target.
1246
1247 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1248
1249         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
1250         avoid the auto increment addressing modes.
1251         ("*subsi3"): Likewise.
1252         (split for add/sub on address): For 68HC12 push the value on
1253         the stack and do the operation with a pop.
1254
1255 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
1256
1257         * cpplib.c (_cpp_handle_directive): Move #define-specific
1258         code to the #define handler...
1259         (do_define): ...here.
1260         (lex_macro_node): No longer a need to check for comments here.
1261
1262 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1263
1264         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
1265         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1266         Declare.
1267         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
1268         do not reorder basic blocks at the end when optimizing for size.
1269
1270 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
1271
1272         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
1273         (m68hc11_make_autoinc_notes): New function.
1274         (m68hc11_split_move): Be very cautious when spliting a move with
1275         auto increment/decrement modes because this may result in incompatible
1276         directions; add REG_INC notes to the resulting insn for CSE reg.
1277
1278 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
1279
1280         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
1281         can be a valid address.
1282
1283 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
1284
1285         * config/rs6000/rs6000.c: Remove unusued variables from last
1286         patch.
1287
1288 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1289
1290         Revert:
1291         * config/rs6000/rs6000.c (rs6000_override_options): Move
1292         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
1293
1294 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1295
1296         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
1297         lvx/stv/dst builtins...
1298         (altivec_expand_ld_builtin): ...to here.
1299         (altivec_expand_st_builtin): ...here.
1300         (altivec_expand_dst_builtin): ...and here (respectively).
1301
1302 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
1303
1304         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
1305
1306 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
1307
1308         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
1309         subregs.
1310         * recog.c (general_operand, register_operand): Disallow them.
1311
1312 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
1313
1314         PR preprocessor/7138
1315         * cpplib.c (_cpp_handle_directive): Do traditional
1316         preparation after setting state.angled_headers.
1317         * cpptrad.c (scan_out_logical_line): Fix potential
1318         quote bug.
1319
1320 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
1321
1322         * config/rs6000/rs6000.c (rs6000_override_options): Move
1323         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
1324
1325 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
1326
1327         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
1328         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
1329         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
1330
1331 2002-06-27  Roger Sayle  <roger@eyesopen.com>
1332
1333         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
1334         * config/stormy16/stormy16.h: Likewise.
1335
1336         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
1337         with #define.
1338
1339 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1340
1341         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
1342         Hitachi entry.  Make punctuation more consistent.
1343
1344 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
1345
1346         * doc/install.texi: Change ` bit' to `-bit'.
1347         * doc/md.texi: Change `-bits' to `-bit'.
1348         * doc/tm.texi: Change `-bits' to ` bits'.
1349
1350 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
1351
1352         * gcse.c (hoist_code): Rewrite to only get list of dominated
1353         blocks once per BB. Also fix reversed test (by removing need for
1354         the test at all).
1355
1356 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
1357
1358         * cpphash.h (_cpp_set_trad_context): Remove.
1359         * cpplib.c (prepare_directive_trad): Do nothing for #define.
1360         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
1361         * cpptrad.c: Update comments.
1362         (_cpp_read_logical_line_trad): Let scan_logical_line handle
1363         updating the current context.
1364         (scan_logical_line): Update the current context.
1365         (_cpp_create_trad_definition): Similarly.
1366         (_cpp_set_trad_context): Remove.
1367
1368 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
1369
1370         PR preprocessor/7070
1371         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
1372
1373 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
1374
1375         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
1376         config/xtensa/xtensa.c (xtensa_return_addr): New function.
1377         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
1378         config/xtensa/xtensa.md (fix_return_addr): New pattern.
1379
1380 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1381
1382         * mips.c (coprocessor_operand, coprocessor2_operand,
1383         symbolic_operand): Move prototypes from here...
1384         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
1385         symbolic_operand): ...to here.
1386
1387 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1388
1389         * config/sh/crt1.asm: remove _stack label definition
1390         and sentinel value.
1391
1392 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1393
1394         * varasm.c: Include real.h before output.h.
1395
1396 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
1397
1398         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
1399         check for TARGET_ALTIVEC.
1400
1401 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1402
1403         * config.gcc (vax-*-vms*): Make obselete.
1404
1405 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1406
1407         * gcc.c (warn_std): Delete.
1408
1409 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
1410
1411         * doc/extend.texi: Fix formatting of last checkin.
1412
1413 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1414
1415         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
1416         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
1417
1418 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
1419
1420         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1421         discrepancies from motorola's documentation.
1422
1423 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
1424
1425         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
1426         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
1427
1428         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
1429         produce a 32 bit result before normalization, then normalize with a
1430         left shift.  Compute approximative error of 2nd reciprocal
1431         approximation in 2's complement.  Fix mask generation from upper
1432         longword of second divide stage result.
1433         For large divisor, fix shift count used to truncate first stage
1434         divide result; make decision if to adjust upwards based on comparison
1435         of higher parts of normalized values.
1436         (udivdi): Likewise.  Undo normalization of result for large divisor
1437         case.
1438
1439 2002-06-25  David S. Miller  <davem@redhat.com>
1440
1441         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
1442
1443 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
1444
1445         * cpplib.c (do_include_common): Revert to correct line number
1446         if -traditional.
1447         * cpptrad.c (scan_out_logical_line): Treat null directive as
1448         white space.  Invlidate MI optimization for non-whitespace
1449         text outside a directive.
1450
1451 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1452
1453         * Makefile.in (SHELL): Set to @SHELL@.
1454         * fixinc/Makefile.in (SHELL): Likewise.
1455
1456         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
1457         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
1458         initialization.
1459
1460 2002-06-24  Jeff Law <law@redhat.com>
1461
1462         * flow.c (propagate_one_insn): When removing an insn
1463         with a REG_LIBCALL note but not the entire libcall sequence,
1464         delete the associated REG_RETVAL note.
1465
1466 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
1467
1468         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
1469         (udivsi3): Likewise.  Rewrite SH1 implementation.
1470         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
1471         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
1472         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
1473         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
1474         (_moddi3): Likewise.
1475
1476         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
1477
1478         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
1479         arguments into account for stack_regs.
1480
1481 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
1482
1483         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
1484         in examples.
1485
1486 2002-06-24  Art Haas  <ahaas@neosoft.com>
1487
1488         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
1489         * doc/tm.texi (Frame Layout): Likewise.
1490
1491 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
1492
1493         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
1494         Set float_format to i128.
1495
1496 2002-06-24  David S. Miller  <davem@redhat.com>
1497
1498         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
1499         32-bit ABI libfuncs to NULL.
1500
1501         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
1502         strings instead of quoted strings for code blocks.
1503
1504         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
1505         optabs if op1 is const0_rtx.
1506
1507         * Makefile.in (GTFILES): Add basic-block.h
1508         * basic-block.h (label_value_list, tail_recursion_label_list):
1509         Mark with GTY.
1510
1511 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
1512
1513         * cpptrad.c (scan_out_logical_line): Check recursing only when
1514         we know we have a macro invocation in the function-like case.
1515         Only call _cpp_handle_directive if we know we have a good
1516         directive, or we want to reject a bad directive.
1517
1518 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
1519
1520         * doloop.c (doloop_valid_p): Correct comment.
1521         (doloop_modify_runtime <abs_inc != 1>): Simplify.
1522         (doloop_modify_runtime <do-while>): Don't emit code when NE.
1523
1524 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
1525
1526         * config.gcc: Add support for ip2k.
1527
1528 2002-06-23  Jan Hubicka  <jh@suse.cz>
1529             Jeff Law <law@redhat.com>
1530
1531         * function.h (struct emit_status): Clarify potential contents
1532         of regno_reg_rtx array.
1533         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
1534         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
1535
1536         * reg-stack.c (convert_regs_exit): Push the registers to stack in
1537         proper order.
1538
1539 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
1540
1541         PR middle-end/6963
1542         * function.c (assign_stack_temp_for_type): Do not return
1543         the same MEM rtx for multiple uses of a stack slot.
1544
1545 2002-06-22  David S. Miller  <davem@redhat.com>
1546
1547         PR target/6841 target/6770 target/6719
1548         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
1549         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
1550         GENERAL_OR_EXTRA_FP_REGS.
1551
1552 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
1553
1554         * cpptrad.c (struct fun_macro): Add line number.
1555         (scan_out_logical_line): Set it, and use it to report unterminated
1556         macro invocations.
1557
1558 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1559
1560         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
1561         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
1562         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
1563         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
1564         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
1565         REGEXP_ONEOF, check_name): Const-ify.
1566
1567 2002-06-21  Matt Thomas  <matt@3am-software.com>
1568
1569         * config/vax/vax.c (vax_output_function_prologue): Use
1570         REGISTER_PREFIX.  Fix some indentation.
1571         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
1572         (VAX_ISTREAM_SYNC): Define.
1573         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
1574         i-stream sync to the end.
1575         (REGISTER_PREFIX): Define as "".
1576         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
1577
1578 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
1579
1580         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
1581         configurations.
1582
1583 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1584
1585         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
1586         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
1587
1588 2002-06-21  Matt Thomas  <matt@3am-software.com>
1589
1590         * config/vax/netbsd.h: Adjust a comment.
1591         (TARGET_DEFAULT): Redefine as 0.
1592
1593 2002-06-21  Richard Henderson  <rth@redhat.com>
1594
1595         * bb-reorder.c (make_reorder_chain_1): Search harder for the
1596         vax casesi fallthru edge.
1597         * cfglayout.c (cleanup_unconditional_jumps): Use
1598         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
1599         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
1600         block after ADDR_VEC.
1601
1602 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1603
1604         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
1605
1606 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
1607
1608         * cpperror.c (cpp_error): For traditional CPP, default to
1609         diagnostics on pfile->line.
1610         * cpplib.c (prepare_directive_trad): Set line number for
1611         diagnostics for #define too.
1612         * cpptrad.c (skip_whitespace): Skip comments properly.
1613         (_cpp_expansions_different_trad): Initialize quote2.
1614
1615 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
1616
1617         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
1618         * config/mmix/mmix.h: Ditto.
1619         * config/mmix/mmix-protos.h: Ditto.
1620         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
1621         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
1622         comment.  Comment extra CC modes.
1623
1624 2002-06-20 Jan Hubicka  <jh@suse.cz>
1625
1626         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
1627         (scope_to_insns_finalize): Do not call set_block_levels; handle
1628         sequences.
1629         (choose_inner_scope): New.
1630         * rtl.h (choose_inner_scope): Declare.
1631
1632 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1633
1634         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
1635         HOST_WIDE_INT.
1636         * pa.c (pa_asm_output_mi_thunk): Likewise.
1637         (n_deferred_plabels): Change type to size_t.
1638         (output_deferred_plabels, output_call): Use size_t instead of int.
1639
1640 2002-06-20  Richard Henderson  <rth@redhat.com>
1641
1642         PR target/4041
1643         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
1644         pattern and adjust constraints for coldfire.
1645
1646 2002-06-20  Richard Henderson  <rth@redhat.com>
1647
1648         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
1649
1650 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
1651
1652         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
1653
1654 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
1655
1656         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
1657
1658 2002-06-20  Stan Shebs  <shebs@apple.com>
1659
1660         * dominance.c: Include errors.h instead of error.h.
1661
1662 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
1663
1664         * cppexp.c (cpp_interpret_integer): Don't force traditional
1665         numbers to be unsigned.
1666         * cpplib.c (prepare_directive_trad): Set line number for
1667         diagnostics.
1668         * cpptrad.c (scan_out_logical_line): Continue scanning out
1669         at start of buffer.
1670         * gcc.c (trad_capable_cpp): Use cc1 always.
1671
1672 2002-06-20  Jeffrey Law  <law@redhat.com>
1673
1674         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
1675         elimination in leaf functions by default yet.
1676
1677 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
1678
1679         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
1680
1681 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1682
1683         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
1684         multilibs.
1685         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
1686         Fixes PR other/6836.
1687
1688 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
1689                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
1690
1691         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
1692
1693         * basic-block.h: Do not include et-forest.h
1694         (dominance_info): Declare as struct dominance-info.
1695         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
1696         deleting block.
1697         * dominance.c (struct dominance_info): Define.
1698         (BB_NODE, SET_BB_NODE): New macros.
1699         (bb_hash_func, bb_eq_func): Kill.
1700         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
1701         nearest_common_dominator, dominated_by_p, recount_dominator,
1702         add_to_dominance_info, delete_from_dominance_info): update for new
1703         representation.
1704         (get_dominated_by, redirect_immediate_dominators): Rewrite using
1705         enumerate_sons.
1706         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
1707         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
1708         structure.
1709
1710         * et-forest.h: Update copyright; revamp all function to operate on
1711         nodes
1712         (et_forest_value): Kill.
1713         (et_forest_enumerate_sons, et_forest_node_value): New.
1714         * et-forest.c: Update copyright.
1715         * et-forest.h: Update copyright; revamp all function to operate on
1716         nodes
1717         (et_forest_value): Kill.
1718         (et_forest_enumerate_sons, et_forest_node_value): New.
1719
1720         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
1721
1722         * basic-block.h: Inlude et-forest.h
1723         (basic_block_def): Kill dominator.
1724         (dominance_info): New type.
1725         (loops): Use dominace_info.
1726         (dominace handling functions): Take dominace_info as argument
1727         instead of bitmaps.
1728         (create_preheader): Likewise.
1729         * cfg.c (entry_exit_blocks): Kill dominator.
1730         (dump_flow_info): Do not dump dominators.
1731         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
1732         dominators.
1733         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
1734         (flow_loops_pre_header_scan, make_forwarder_block,
1735         canonicale_loop_headers, flow_loops_find): Likewise.
1736         * dominance.c: Include error.h
1737         (idoms_to_doms): Kill.
1738         (bb_hash_func, bb_eq_func): New static functions.
1739         (debug_dominace_info): New global function.
1740         (calculate_dominance_info): Use new et forest structure.
1741         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
1742         get_dominated_by, redirect_immediate_dominators,
1743         nearest_common_dominator, dominated_by_p, verify_dominators,
1744         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
1745         delete_from_dominance_info): New global functions.
1746         * gcse.c (domnators): CHange to dominance_info.
1747         (alloc_hoist_mem): Do not alloc dominators
1748         (free_code_hoist_mem): Use free_dominance_info.
1749         (compute_code_hoist_data): Use dominance_info.
1750         (hoist_code): Likewise.
1751         * ifcvt.c (post_dominators): Likewise.
1752         (find_if_case_2, if_convert): Likewise.
1753         * predict.c (process_note_predictions, process_note_prediction,
1754         estimate-probability): Likewise.
1755         * sched-rgn.c (find_rgns, init_regions): Likewise.
1756         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
1757         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
1758         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
1759         find_evaluations, convert_to_ssa): Likewise.
1760         * ssa.h (compute_dominance_frontiers): Likewise.
1761
1762         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
1763
1764         * Makefile.in (et-forest.c): Add.
1765         * et-forest.c: New file.
1766         * at-forest.h: New file.
1767
1768 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1769
1770         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
1771         array size calculation.
1772         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
1773         Likewise.
1774
1775         * diagnostic.c (diagnostic_kind_text): Const-ify.
1776         * gengtype.c (lang_names): Likewise.
1777
1778 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
1779
1780         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
1781
1782 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1783
1784         * config/sol2.h: New file.
1785         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
1786         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
1787         (sparc-*-chorusos*): Likewise.
1788         (sparc-*-elf*): Likewise.
1789         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
1790         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
1791         (sparc-hal-solaris2*): Likewise.
1792         (sparc-*-solaris2*): Likewise.
1793         (sparclite-*-elf*): Likewise.
1794         (sparc86x-*-elf*): Likewise.
1795         (sparc64-*-elf*): Likewise.
1796
1797         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
1798         config/sol2.h.
1799         (ASM_SPEC): Override config/sol2.h version for now.
1800         Removed obsolete GAS_REJECTS_MINUS_S variant.
1801         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
1802         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
1803         (TARGET_OS_CPP_BUILTINS): Likewise.
1804         Assert system=unix.
1805         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
1806         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
1807         config/sol2.h.
1808         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
1809         (ASM_CPU_SPEC): Define.
1810         (SUBTARGET_EXTRA_SPECS): Define.
1811
1812         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
1813         in config/sparc/sol2.h.
1814         (ASM_SPEC): Moved to config/sol2.h.
1815         (CPP_CPU_SPEC): Simplified.
1816         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
1817         consistency.
1818         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
1819         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
1820         STARTFILE_ARCH64_SPEC.
1821         (STARTFILE_SPEC): Moved to config/sol2.h
1822         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
1823         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
1824         (LINK_ARCH64_SPEC): Simplified.
1825         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
1826         (LINK_SPEC): Moved to config/sol2.h
1827
1828         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
1829         config/sol2.h.
1830         Use BITS_PER_WORD for size.
1831         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
1832         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
1833         (CPP_PREDEFINES): Removed OS-specific part handled by
1834         TARGET_OS_CPP_BUILTINS.
1835         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
1836         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
1837         (ASM_SPEC): Moved to config/sol2.h.
1838         (PREFERRED_DEBUGGING_TYPE): Likewise.
1839         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
1840         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
1841         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
1842         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
1843
1844         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
1845         * config/i386/sol2gas.h: Removed.
1846
1847 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1848
1849         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
1850
1851 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
1852
1853         * gcc.c-torture/execute/simd-1.c: New.
1854
1855         * gcc.dg/simd-1.c: New.
1856
1857         * doc/extend.texi (Vector Extensions): Document that we can
1858         specify simd types not specifically supported by the hardware.
1859         Document that simd types can be used as function arguments.
1860         Document that signness does make a difference in SIMD types.
1861         Misc cleanups and revisions to the vector extensions section.
1862
1863         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
1864         constants.
1865
1866         * expr.c (vector_mode_valid_p): New.
1867
1868         * expr.h: Add vector_mode_valid_p.
1869
1870         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
1871
1872         * c-common.c (type_for_mode): Always build vector nodes regardless
1873         of VECTOR_MODE_SUPPORTED_P.
1874         (handle_mode_attribute): Error if we can't emulate a nonexisting
1875         vector mode.
1876         (handle_vector_size_attribute): Same.
1877
1878         * optabs.c (expand_binop): Open-code vector operations.
1879         (expand_unop): Open-code vector unops.
1880         (expand_vector_binop): New.
1881         (expand_vector_unop): New.
1882
1883         * c-typeck.c (build_binary_op): Allow vectors in binops.
1884         Allow vectors in conditional operatiors.
1885         (build_unary_op): Allow vectors in unary minus.
1886
1887         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
1888         TARGET_ALTIVEC.
1889
1890 2002-05-20  Richard Henderson  <rth@redhat.com>
1891
1892         * c-common.c (c_common_get_alias_set): Correctly handle characters.
1893         Rearrange order of expressions; don't handle vectors here.
1894         * alias.c (get_alias_set): Let vectors match their components.
1895
1896 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
1897
1898         * config/mips/mips.c (mips_emit_prefetch): Use hints which
1899         match desired locality.
1900
1901 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
1902
1903         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
1904         (h8300_insert_attributes): New.
1905
1906 2002-06-19  Akim Demaille  <akim@epita.fr>
1907
1908         * c-parse.in (initelt: identifier ':' initval): Add an empty
1909         action to fix a type clash.
1910         (aliasdecl, classdef): Add the missing closing `;'.
1911         Whitespace changes.
1912         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
1913         $$ = $1 type clashes.
1914
1915 2002-06-19  Eric Christopher  <echristo@redhat.com>
1916
1917         * config/mips/mips.c (symbol_operand): New function.
1918         (mips_emit_prefetch): Ditto.
1919         * config/mips/mips-protos.h: Define.
1920         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
1921         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
1922         (LEGITIMIZE_ADDRESS): Ditto.
1923         * config/mips/mips.md (prefetch, prefetch_si_address,
1924         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
1925
1926 2002-06-19  Eric Christopher  <echristo@redhat.com>
1927
1928         * config/fp-bit.h: Add unordered defines for gofast.
1929
1930 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
1931
1932         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
1933         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
1934         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
1935         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
1936         checking and without it.
1937         (decl_name, decl_mode_check_failed, regexp_name,
1938         regexp_mode_check_failed): New functions.
1939         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1940         gen_presence_set, gen_absence_set, gen_automaton,
1941         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1942         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
1943         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
1944         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
1945         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
1946         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
1947         (decl_hash, decl_eq_p): Use the macros.
1948         (find_decl): Ditto.  Set up mode of work_decl.
1949         (process_excls, process_presence_absence, process_decls,
1950         check_automaton_usage, process_regexp, process_regexp_decls,
1951         check_usage, loop_in_regexp, check_loops_in_regexps,
1952         process_regexp_cycles, add_advance_cycle_insn_decl,
1953         initiate_states, initiate_excl_sets,
1954         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
1955         transform_2): Use the macros.
1956         (transform_3): Ditto.  Check mode before making transformations of
1957         ALLOF.
1958         (regexp_transform_func, transform_insn_regexps,
1959         process_unit_to_form_the_same_automaton_unit_lists,
1960         form_the_same_automaton_unit_lists_from_regexp,
1961         form_the_same_automaton_unit_lists,
1962         process_seq_for_forming_states, process_alts_for_forming_states,
1963         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
1964         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
1965         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
1966         units_to_automata_heuristic_distr, create_ainsns,
1967         units_to_automata_distr, create_automata): Use the macros.
1968         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
1969         (longest_path_length, min_issue_delay_pass_states,
1970         output_dead_lock_vect, output_tables, output_insn_code_cases,
1971         output_internal_insn_latency_func, output_print_reservation_func,
1972         output_description, output_automaton_units, generate): Use the
1973         macros.
1974         (make_insn_alts_attr): Ditto.  Check case when there are not
1975         alternatives in the reservation.
1976         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
1977         make_bypass_attr, form_important_insn_automata_lists,
1978         expand_automata): Use the macros.
1979
1980 2002-06-20  Tim Josling  <tej@melbpc.org.au>
1981
1982         * Makefile.in: Clean up code to check for misspecified languages
1983         in enable-languages.
1984
1985 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
1986
1987         * cpptrad.c (_cpp_replacement_text_len): initialize len.
1988
1989 2002-06-19  Jason Merrill  <jason@redhat.com>
1990
1991         * Makefile.in (unstrap, restrap): New targets.
1992         (bootstrap): Mention restrap.
1993
1994 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
1995
1996         * except.c (ehl_free): Remove.
1997
1998         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
1999         builtin_define and builtin_define_std.
2000
2001 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
2002
2003         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
2004         (sCOND): Restrict operand class so that gcc knows how to reload them.
2005         (bitfield_set): Merge two unnamed insn's using alternatives.
2006         (call_value): Remove constraint on unused uperand.
2007         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
2008         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
2009
2010         * longlong.h (count_trailing_zeros): Escape newline and beautify.
2011
2012 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
2013
2014         * Makefile.in (QMTEST_DIR): Simplify definition.
2015
2016 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
2017
2018         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
2019         #define.
2020
2021 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
2022
2023         * cpphash.h (struct cpp_reader): Make date and time strings.
2024         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
2025         _cpp_replacement_text_len): New.
2026         * cppinit.c (cpp_create_reader): Update.
2027         (init_builtins): Register appropriate builtins for -traditional-cpp.
2028         * cppmacro.c (new_number_token): Remove.
2029         (_cpp_builtin_macro_text): New.
2030         (builtin_macro): Use it.
2031         (cpp_macro_definition): Update to handle traditional macros.
2032         * cppmain.c (cb_line_change): Don't do column positioning for
2033         traditional output.
2034         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
2035         state ls_fun_close.
2036         (skip_whitespace): Fix.
2037         (maybe_start_funlike): Don't set state.parsing_args.
2038         (scan_out_logical_line): Remove duplicate error.  Use lex_state
2039         rather than state.parsing_args.
2040         (push_replacement_text): Handle builtins.
2041         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
2042
2043 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
2044             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2045
2046         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
2047         attribute __always_inline__.
2048
2049 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
2050
2051         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
2052         when generating the call to _mcount.
2053         (NO_PROFILE_COUNTERS): Define.
2054
2055 2002-06-18  Richard Henderson  <rth@redhat.com>
2056
2057         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
2058         2002-06-02 change.
2059
2060 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
2061
2062         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
2063         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
2064         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
2065         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
2066
2067         * sh-protos.h (sh_pr_interrupt): Declare.
2068         * sh.c (sh_pr_interrupt): New function.
2069         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
2070         (sh_hard_regno_rename_ok): Likewise.
2071         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
2072
2073 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
2074
2075         * rtl.def (DEFINE_AUTOMATON): Add description of new options
2076         `time' and `v'.  Fix incorrect description of option `w'.
2077
2078         * doc/md.texi: Ditto.
2079
2080         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
2081         (gen_automata_option): Process the new options.
2082         (transform_2, transform_3): Initialize some variables.
2083         (initiate_automaton_gen): Use the new macros.
2084
2085 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
2086
2087         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
2088         (mips_set_return_address, mips_restore_gp): Declare.
2089         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
2090         (current_frame_info): Remove.
2091         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
2092         * config/mips/mips.c: Remove uses of current_frame_info.
2093         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
2094         (struct machine_function): Add 'frame' and 'insns_len'.
2095         (current_frame_info, zero_frame_info): Remove.
2096         (mips_restore_gp, mips_set_return_address): New.
2097         (mips_initial_elimination_offset): New.
2098         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
2099         (eh_return define_split): Use mips_set_return_address.
2100
2101 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2102
2103         * cpplib.c (dtable): Update.
2104         (end_directive): Decrement expansion prevention count.
2105         Clear state.in_expression.
2106         (prepare_directive_trad): Set state.in_expression.
2107         Increment expansion prevention count.
2108         * cpptrad.c (enum ls): New.
2109         (_cpp_overlay_buffer): Set overlaid_buffer.
2110         (_cpp_remove_overlay): Use overlaid_buffer.
2111         (_cpp_read_logcial_line_trad): Update buffer when it might
2112         have changed.
2113         (scan_out_logical_line): Handle state transitions for assertions
2114         and defined() in #if, and for funlike invocations including the
2115         directive case.  Handle '<' and '>' as a quote mechanism in
2116         #include.  Warn about unterminated macro invocations.
2117         * cpphash.h (struct lexer_state): New member in_expression.
2118         (struct cpp_reader): New member overlaid buffer.
2119
2120 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
2121
2122         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
2123         __always_inline__.
2124
2125 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
2126
2127         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
2128
2129         * doloop.c (doloop_optimize): Extract pattern from insn.
2130
2131 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
2132
2133         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
2134
2135 2002-06-17  Jeff Law <law@redhat.com>
2136
2137         * libgcc2.c: Do not include symcat.h or machmode.h.
2138
2139 2002-06-17  Richard Henderson  <rth@redhat.com>
2140
2141         PR target/6922
2142         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
2143
2144 2002-06-17  Tom Tromey  <tromey@redhat.com>
2145
2146         * dwarfout.c: Include function.h.
2147
2148 2002-06-17  Andreas Schwab  <schwab@suse.de>
2149
2150         * print-rtl.c (print_rtx): Print space before vector, not after.
2151         (debug_rtx): Clear sawclose before printing.
2152         (debug_rtx_list): Print newline after each list element.
2153         (debug_rtx_range): Likewise.
2154
2155 2002-06-17  Richard Henderson  <rth@redhat.com>
2156
2157         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
2158         (current_function_funcdef_no): Similarly.
2159         * function.c (funcdef_no): Similarly.
2160         (prepare_function_start): Set current_function_funcdef_no.
2161         (expand_function_start): Don't set current_function_profile_label_no.
2162         * dwarf2out.h (current_funcdef_number): Remove.
2163         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
2164         current_function_funcdef_no throughout.
2165         * dwarfout.c, vmsdbgout.c: Similarly.
2166         * except.c (sjlj_funcdef_number): Remove.
2167         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
2168         (output_function_exception_table): Likewise.
2169         * final.c (profile_function): Use current_function_funcdef_no
2170         instead of current_function_profile_label_no.
2171
2172 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
2173
2174         * sched-ebb.c (init_ready_list): Check INSN_P first.
2175
2176 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
2177
2178         * sh.md (divsi3): Update way how to find insns in a sequence.
2179
2180         * reload1.c (merge_assigned_reloads): Don't change reloads
2181         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
2182         to RELOAD_OTHER when there are conflicting input reloads.
2183
2184 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
2185
2186         * function.c (epilogue_done): Correctly build a sequence of insns for
2187         a sibcall epilogue.
2188
2189 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
2190
2191         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
2192         #define.
2193
2194         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
2195
2196 2002-06-16  Richard Henderson  <rth@redhat.com>
2197
2198         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
2199         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
2200
2201 2002-06-16  Richard Henderson  <rth@redhat.com>
2202
2203         PR opt/6722
2204         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
2205
2206 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2207
2208         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
2209         * config/i386/i386-aout.h, config/i386/i386elf.h,
2210         config/i386/sysv4.h: Remove CPP_PREDEFINES.
2211         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
2212         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
2213         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
2214         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
2215         CPP_PREDEFINES and part of CPP_SPEC.
2216         * config/i386/sysv4-cpp.h: New.
2217
2218 2002-06-16  Richard Henderson  <rth@redhat.com>
2219
2220         PR c/7030
2221         * dwarf2out.c (modified_type_die): Don't assign the qualified die
2222         to the unqualified type.
2223
2224 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
2225
2226         * i386-protos.h (x86_field_alignment): Declare.
2227         * i386.c (x86_field_alignment): Define.
2228         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
2229         (BIGGEST_FIELD_ALIGNMENT): Kill.
2230
2231 2002-06-16  Richard Henderson  <rth@redhat.com>
2232
2233         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
2234
2235 2002-06-16  Richard Henderson  <rth@redhat.com>
2236
2237         * c-common.c (flag_ms_extensions): Move from c++ front end.
2238         * c-common.h (flag_ms_extensions): Declare.
2239         * c-decl.c (c_decode_option): Add -fms-extensions.
2240         (grokfield): Don't accept anonymous structures in ISO C mode;
2241         accept only unnamed anonymous structures in GNU C mode; accept
2242         Plan 9 extensions in MS mode.
2243         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
2244         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
2245         (extension): Clear flag_iso.
2246         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
2247
2248 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
2249
2250         PR target/7042
2251         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
2252         early if current_function_epilogue_delay_list is non-empty.
2253         * config/cris/cris.md ("return"): Add sanity check asserting that
2254         current_function_epilogue_delay_list is empty.
2255
2256 2002-06-16  Jeff Law <law@redhat.com>
2257
2258         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
2259         sharing of hard registers.
2260
2261         * toplev.c (rest_of_compilation): Remove redundant conditional.
2262
2263         * toplev.c (rest_of_compilation): Perform a simpler, less costly
2264         cleanup of the CFG when not optimizing.
2265
2266 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
2267
2268         * gcc.c (main): Correct startfile_prefix_spec check.
2269
2270 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
2271
2272         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
2273         include both darwin.o and rs6000-c.o.
2274
2275 2002-06-15  Roger Sayle  <roger@eyesopen.com>
2276
2277         * expr.c (compare_from_rtx): Call simplify_relational_operation
2278         on all comparisons, not just those between integer constants,
2279         with the correct (possibly unsigned) comparison code.
2280         (do_compare_rtx_and_jump): Likewise.
2281
2282 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2283
2284         * Makefile.in (tm_defines): New configuration variable.
2285         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
2286         Pass tm_defines in TM_DEFINES.
2287         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
2288         * config.gcc (tm_defines): New configuration variable.
2289         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
2290         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
2291         * configure.in: Substitute tm_defines.
2292         * configure: Rebuilt.
2293         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
2294         * doc/install.texi: Update.
2295         * pa/pa-700.h: Delete file.
2296         * pa/pa-7100.h: Delete file.
2297
2298 2002-06-15  Roger Sayle  <roger@eyesopen.com>
2299
2300         * fold-const.c (comparison_to_compcode): New function to convert
2301         an comparison TREE CODE into a bit-based representation.
2302         (compcode_to_comparison): New function to convert from this bit
2303         based representation back to a comparison TREE CODE.
2304         (fold_truthop): Simplify (x<y) && (x==y) and related composite
2305         comparisons.
2306
2307 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
2308
2309         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
2310
2311         * stor-layout.c (compute_record_mode): Remove check for
2312         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
2313         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
2314         MEMBER_TYPE_FORCES_BLK.
2315
2316         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
2317
2318         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
2319
2320 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
2321
2322         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
2323
2324 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
2325
2326         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
2327         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
2328         * configure, config.in: Regenerate.
2329
2330 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2331
2332         * loop.c (check_final_value): Use v->always_executed
2333         instead of v->always_computable.
2334         * unroll.c (final_giv_value): Don't calculate the final
2335         value as a function of the biv if the giv is not computed
2336         for every loop iteration.
2337
2338 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2339
2340         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
2341
2342 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
2343
2344         PR c/6677
2345         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
2346         the truncation down when the target type is signed.
2347         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
2348         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
2349         the conversion if the target type is a smaller type.
2350
2351 2002-06-14  Richard Henderson  <rth@redhat.com>
2352
2353         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
2354         earlier.  Re-factor comparisons vs extrema.
2355
2356 2002-06-14  Richard Henderson  <rth@redhat.com>
2357
2358         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
2359
2360 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2361
2362         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
2363         * sched-deps.c (add_dependence): Likewise.
2364         (group_leader): Likewise.
2365         * sched-rgn.c (init_ready_list): Likewise.
2366         * doc/rtl.texi: Adjust accordingly.
2367
2368 2002-06-13  Jeffrey Law  <law@redhat.com>
2369
2370         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
2371         null pointer checks were eliminated.  Update prototype.
2372         (delete_null_pointer_checks): Similarly.
2373         * rtl.h (delete_null_pointer_checks): Update prototype.
2374         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
2375         delete_null_pointer_checks deletes one or more null
2376         pointer checks.  Do not run cleanup_cfg before gcse, the
2377         CFG is accurate and optimized at that point..
2378
2379         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
2380         of hard registers.
2381
2382 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2383
2384         * Makefile.in (libgcc.mk): Depend on specs.
2385
2386 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
2387
2388         * sh.md (mulsi3): Update way how to find insns in a sequence.
2389
2390 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
2391
2392         * sh.h: Define HARD_REGNO_RENAME_OK
2393         * sh.c: sh_hard_regno_rename_ok: New. If current function has
2394         interrupt_handler attribute, only registers saved on stack are OK.
2395         * sh-protos.h: Declare sh_hard_regno_rename_ok.
2396
2397 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2398
2399         * config/sh/sh.md (jump): Emit jump insn.
2400         (call_pcrel): Get pattern of the result of gen_call_site.
2401         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
2402
2403 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2404
2405         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
2406         * cpptrad.c: Update comments.
2407         (skip_whitespace, copy_comment): Take a new parameter.
2408         (skip_escaped_newlines): Don't duplicate escaped newline test.
2409         (copy_comment): Different location for CUR, decide here how
2410         to copy / replace the comment.
2411         (skip_whitespace): Copy whitespace.
2412         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
2413         (scan_out_logical_line): Let copy comment handle keeping or
2414         replacing comments.
2415         (scan_parameters, _cpp_create_trad_definition): Update.
2416
2417 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
2418
2419         * reload.c (get_secondary_mem,find_reloads_address,
2420         find_reloads_address_1): Pass reference to MEM to find_reloads_address
2421         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
2422
2423 2002-06-13  Jessica Han  <jessica@cup.hp.com>
2424
2425         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
2426         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
2427         * doc/tm.texi: Document them.
2428         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
2429         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
2430         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
2431         (ASM_OUTPUT_FDESC): Likewise.
2432
2433 2002-06-13  Eric Christopher  <echristo@redhat.com>
2434
2435         * diagnostic.c (output_format): Fix thinko.
2436
2437 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
2438
2439         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
2440         (DWARF2_UNWIND_INFO): Define to 0.
2441
2442         * config/sh/sh.c (calc_live_regs): Don't use initial_value
2443         optimization for PR_MEDIA_REG.
2444
2445 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2446
2447         * cpphash.h (_cpp_lex_identifier_trad): Remove.
2448         * cpplib.c (end_directive): Don't skip, always remove overlay
2449         apart from #define.
2450         (prepare_directive_trad): Handle NULL pfile->directive.
2451         (_cpp_handle_directive): Always call prepare_directive_trad
2452         if traditional.
2453         * cppmain.c (check_multiline_token): Rename account_for_newlines,
2454         generalize inputs.
2455         (scan_translation_unit_trad): Use it.
2456         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
2457         output, get escaped newline in comment close correct.
2458         (check_output_buffer, skip_whitespace): Update.
2459         (_cpp_lex_identifier_trad): Remove.
2460         (scan_out_logical_line): Handle -C and comments in directives
2461         properly.
2462
2463 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2464
2465         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
2466         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
2467         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
2468         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
2469         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
2470         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
2471         (SELECT_SH5_COMPACT_NOFPU): Likewise.
2472         (TARGET_SWITCHES): Use them.
2473         (TARGET_CPU_DEFAULT): Define if not already defined.
2474         (TARGET_DEFAULT): Use it.
2475         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
2476         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
2477         * config/sh/t-monolib: New file.
2478
2479 2002-06-13  Roger Sayle  <roger@eyesopen.com>
2480
2481         * toplev.c (rest_of_compilation): Simplify (and correct) the
2482         logic of the first delete-null-pointer-checks pass.
2483
2484 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
2485
2486         * i386.c (ix86_expand_movstr):  Fix pasto.
2487
2488 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
2489
2490         * reload.c (find_valid_class):  Fix thinko in my previous patch.
2491
2492 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
2493
2494         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
2495         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
2496         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
2497         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
2498
2499 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
2500
2501         * tree-inline.c (expand_call_inline): Don' mess with _DECL
2502         fields.
2503
2504 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
2505
2506         * diagnostic.c (output_format): Recognize "%H" as a format
2507         specifier for a location_t.
2508         (text_specifies_location): New function.
2509         (diagnostic_set_info): Use it.
2510
2511 2002-06-13  Jeffrey Law  <law@redhat.com>
2512
2513         * emit-rtl.c (static_regno_reg_rtx): Define.
2514         (init_emit_once): Initialize static_regno_reg_rtx.
2515         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
2516         of building new hard reg objects once per function.
2517         (gen_rtx_REG): Try to share hard regs.
2518         * regclass.c (init_fake_stack_mems): New function broken out from
2519         init_regs.
2520         * rtl.h (init_fake_stack_mems): Declare.
2521         * toplev.c (lang_independent_init): Call init_regs before
2522         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
2523
2524         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
2525
2526         * alias.c (argument_registers): Remove.
2527         (init_alias_once): Initialize static_reg_base_value here.  Remove
2528         initialization of argument_registers.
2529         (init_alias_once_per_function): Remove.
2530         (init_alias_analysis): Copy all the entries from static_reg_base_value
2531         into new_reg_base_value all at once.
2532         * rtl.h (init_alias_once_per_function): Remove declaration.
2533         * function.c (prepare_function_start): Do not call
2534         init_alias_once_per_function.
2535
2536         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
2537         starting a sequence and emitting an INSN.
2538
2539 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
2540
2541         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
2542
2543 2002-06-13  David S. Miller  <davem@redhat.com>
2544
2545         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
2546
2547 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2548
2549         * cpplib.c (end_directive): Handle line skipping.  Only remove
2550         the rest of the line if the directive was valid.
2551         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
2552         expanding a traditional macro.
2553         * cpptrad.c (recursive_macro): New.
2554         (read_logical_line_trad): Handle skipping.
2555         (scan_out_logical_line): Continue after a successful directive.
2556         Don't expand macros whilst skipping, or if recursing.
2557         (_cpp_create_trad_definition): scan_out_logical_line now sets
2558         the output current position.
2559
2560 2002-06-12  Eric Christopher  <echristo@redhat.com>
2561
2562         From Chris Demetriou  <cgd@broadcom.com>
2563         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
2564         comment.
2565         (ISA_HAS_MADD_MSUB): Ditto.
2566         (ISA_HAS_NMADD_NMSUB): Ditto.
2567
2568 2002-06-12  Eric Christopher  <echristo@redhat.com>
2569
2570         * config.gcc: Consolidate little endian handling and
2571         little/big endian targets.
2572         * config/mips/elfl.h: Remove file.
2573         * config/mips/elfl64.h: Ditto.
2574         * config/mips/ecoffl.h: Ditto.
2575         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
2576
2577 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
2578
2579         * gengtype.h (xvasprintf): New prototype.
2580         (xasprintf): New prototype.
2581         (struct outf): New.
2582         (get_output_file): Return an outf_p.
2583         (header_file): Is now an outf_p.
2584         (base_files): Now are outf_p.
2585         (oprintf): New.
2586         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
2587         rather than stdio operations.  Use xasprintf in a few places,
2588         when appropriate.
2589         (xvasprintf): New.
2590         (xasprintf): New.
2591         (struct filemap): Delete.
2592         (files): Delete.
2593         (output_files): New.
2594         (oprintf): New.
2595         (create_file): Create an outf_p.  Add parameter to indicate output
2596         file name, change all callers.
2597         (open_base_files): Create gtype-desc.c here.
2598         (get_output_file_with_visibility): Rewrite.
2599         (get_output_file_name): Just look at 'name' field in struct outf.
2600         (close_output_files): Rewrite.
2601
2602 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
2603
2604         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
2605         (MASK_G_FLOAT): Define.
2606         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
2607         (TARGET_SWITCHES): Likewise.
2608         (TARGET_DEFAULT): Likewise.
2609
2610 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
2611
2612         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
2613         * config/mips/mips.c (mips_output_filename): Don't print a
2614         ".file" directive if we are using DWARF-2.
2615         (mips_output_function_prologue): Do not emit source file
2616         name for TARGET_GAS.
2617
2618 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
2619
2620         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
2621         decide whether emit the short opcode.
2622         * i386.h (x86_shift1): Declare.
2623         (TARGET_SHIFT1): New macro.
2624         * i386.c (x86_shift1): New global variable.
2625
2626         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
2627         unconditionally; make loop to rebuild CFG; kill unnecesary
2628         find_basic_block calls; kill compute_bb_for_insn call.
2629         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
2630         * haifa-sched.c (sched_init): Likewise.
2631         * ssa-ccp.c (ssa_const_prop): Likewise.
2632         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2633
2634 2002-06-11  David S. Miller  <davem@redhat.com>
2635
2636         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
2637         active_insn_p.
2638
2639 2002-06-11  Richard Henderson  <rth@redhat.com>
2640
2641         * c-common.c (builtin_define_type_max): New.
2642         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
2643         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
2644
2645         From Joseph S. Myers:
2646         * glimits.h: Rewrite to expect the double underscore definitions
2647         from the compiler.
2648
2649         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
2650         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
2651         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
2652         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
2653         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
2654         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
2655         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
2656         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
2657
2658 2002-06-11  Richard Henderson  <rth@redhat.com>
2659
2660         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
2661         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
2662         (code_for_builtns): Update.
2663         (alpha_init_builtins): Add __builtin_thread_pointer and
2664         __builtin_set_thread_pointer.
2665         (alpha_expand_builtin): Handle void builtins.
2666         * doc/extend.texi (Alpha Built-in Functions): Update.
2667
2668 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
2669
2670         PR target/6997
2671         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
2672
2673 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
2674
2675         * config.gcc: Make the name of the extra-modes file adjustable
2676         by target stanzas.
2677         (s390x, strongarm, xscale stanzas): Use this facility.
2678         * configure.in: Update to match.
2679         * configure: Regenerate.
2680
2681 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
2682
2683         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
2684         max/mins as unsigned GE compares.
2685
2686 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
2687
2688         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
2689         * config/vax/bsd.h: New file.
2690         * config/vax/netbsd.h: Add missing notice.
2691         (CPP_PREDEFINES): Remove.
2692         (TARGET_OS_CPP_BUILTINS): Define.
2693         (CPP_SPEC): Use NETBSD_CPP_SPEC.
2694         * config/vax/openbsd.h: Update copyright years.
2695         (CPP_PREDEFINES): Remove.
2696         (TARGET_OS_CPP_BUILTINS): Define.
2697         * config/vax/ultrix.h: Likewise.
2698         * config/vax/vaxv.h: Likewise.
2699         * config/vax/vms.h: Likewise.
2700         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
2701         (CPP_PREDEFINES, CPP_SPEC): Remove.
2702
2703 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
2704
2705         * i386.md (addqi_1_slp, subqi_1_slp
2706         (andqi_ext0, testqi_ext0): Remove unnecesary check.
2707         (addhi*, addqi*): Simplify "dec" condition.
2708         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
2709         (and, or, xor to QImode splitters): New.
2710         (iorqi_ext*): New.
2711         (xorqi_ext_0): New.
2712         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
2713         (andqi_ext_1_rex64): New.
2714         (ashrqi*_slp): New.
2715         (ashlqi*_slp): New.
2716         (lshlqi*_slp): New.
2717         (rotrqi3*_slp): New.
2718         (rotlqi3*_slp): New.
2719
2720 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
2721
2722         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
2723         softfloat.h.
2724         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
2725         (CPP_ENDIAN_LITTLE_SPEC): Delete.
2726         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
2727         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
2728         __LONG_DOUBLE_128__ setting, _CALL_* setting.
2729         (CPP_DEFAULT_SPEC): Delete.
2730         (CPP_FLOAT_DEFAULT_SPEC): Delete.
2731         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
2732         (CPP_SYSV_DEFAULT_SPEC): Delete.
2733         (CPP_ENDIAN_BIG_SPEC): Delete.
2734         (CPP_ENDIAN_LITTLE_SPEC): Delete.
2735         (CPP_ENDIAN_SPEC): Delete.
2736         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
2737         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
2738         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
2739         cpp_longdouble_default.
2740         * config/rs6000/softfloat.h: Delete.
2741         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
2742         (EXTRA_SPECS): Delete cpp_cpu.
2743         (TARGET_CPU_CPP_BUILTINS): New.
2744         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
2745         prototype.
2746         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
2747         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
2748         (CPP_DEFAULT_SPEC): Delete.
2749         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
2750         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
2751         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
2752         (CPP_DEFAULT_SPEC): Delete.
2753         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
2754         (CPLUSPLUS_CPP_SPEC): Likewise.
2755         (CPP_CPU_SPEC): Delete.
2756         (CPP_DEFAULT_SPEC): Delete.
2757         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
2758         (CPLUSPLUS_CPP_SPEC): Likewise.
2759         (CPP_CPU_SPEC): Delete.
2760         (CPP_DEFAULT_SPEC): Delete.
2761         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
2762         (CPP_DEFAULT_SPEC): Delete.
2763         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
2764         (CPP_DEFAULT_SPEC): Delete.
2765
2766         * doc/gty.texi: Small updates.
2767
2768 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2769
2770         * objc/objc-act.c (warn_with_ivar): Adjust calls to
2771         diagnostic_count_error.
2772         (warn_with_method): Likewise.
2773
2774         * diagnostic.h (warnings_are_errors_message): New field of
2775         diagnostic_context.
2776         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
2777         match semantics.
2778         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
2779         (diagnostic_count_diagnostic): Make aware of other kinds of
2780         diagnostics.
2781         (diagnostic_initialize): Initialize warnings_are_errors_message field.
2782
2783 2002-06-11  Tom Tromey  <tromey@redhat.com>
2784
2785         For PR java/6520:
2786         * fold-const.c (fold_convert): Don't modify existing tree's type.
2787
2788 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
2789
2790         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
2791
2792 2002-06-11  Richard Henderson  <rth@redhat.com>
2793
2794         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
2795
2796 2002-06-11  Richard Henderson  <rth@redhat.com>
2797
2798         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
2799         DWARF2_UNWIND_INFO is false.
2800
2801 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
2802
2803         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
2804
2805         * config/s390/s390.c (emit_prologue): gen_store_multiple
2806         returns an insn now, not a pattern.
2807
2808 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2809
2810         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
2811         $(TEXI2DVI) -o.
2812
2813 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
2814
2815         * i386.c (x86_promote_QImode): Set for Athlon
2816         (x86_fast_prefix): New global variable.
2817         (x86_arch_always_fancy_math_387): Fix formating.
2818         * i386.h (x86_fast_prefix): Declare
2819         (TARGET_FAST_PREFIX): define.
2820         * i386.md (and to strict_low_part, HI to SI
2821         promoting splitter): Use new macro.
2822
2823         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
2824
2825 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
2826
2827         * Makefile.in (distclean): Delete junk left in testsuite
2828         directory, too.
2829
2830 2002-06-11  Jeffrey Law <law@redhat.com>
2831
2832         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
2833         last insn created by the splitter.
2834
2835         * caller-save.c (init_caller_save): Move creation of SAVEINSN
2836         and RESTINSN into into the scope of the sequence.
2837
2838         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
2839         RETURN insns.
2840
2841         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
2842
2843         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
2844         not the pattern.  So extract the pattern from the insn.
2845
2846         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
2847
2848 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
2849
2850         * config/s390/s390.md (movsi): Only use floating point
2851         register alternatives when operands are already fprs.
2852         (movdi_31, movdi_64): Likewise.
2853
2854 2002-06-11  David S. Miller  <davem@redhat.com>
2855
2856         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
2857         Only run RTX equality checks on INSN_P rtl.
2858
2859 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
2860
2861         * config/s390/s390.md (reload_base, ltorg): Remove.
2862         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
2863         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
2864         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
2865         s390_asm_output_pool_prologue): Likewise.
2866         * s390.h (s390_pool_start_insn): Likewise.
2867
2868         * s390.c (s390_output_symbolic_const): Remove support for
2869         old-style pool chunks.
2870         (s390_function_epilogue): Likewise.
2871         (s390_output_constant_pool): Likewise.  Also, fix incorrect
2872         alignment for 64-bit literal pools.
2873         (print_operand_address): Remove 'y' and 'Y' format flags.
2874         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
2875         old-style pool chunks.
2876         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
2877         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
2878         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
2879
2880         * s390.c (consttable_operand): New function.
2881         * s390-protos.h (consttable_operand): Declare it.
2882         * s390.h (PREDICATE_CODES): Add consttable_operand.
2883         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
2884         consttable_sf, consttable_df, pool_start_31, pool_end_31,
2885         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
2886         * s390.c (struct constant, struct constant_pool): New data types.
2887         (constant_modes, gen_consttable): New variables.
2888         (s390_start_pool, s390_end_pool, s390_add_pool,
2889         s390_dump_pool, s390_free_pool): New functions.
2890         (s390_chunkify_pool): Completely reimplement literal pool
2891         overflow handling.
2892
2893         * s390.c (s390_pool_overflow): New variable.
2894         * s390.h (s390_pool_overflow): Declare it.
2895         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
2896         jumps in literal pool overflow situations.
2897
2898         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
2899         (s390_frame_info): Account for possible use of RETURN_REGNUM
2900         by new literal pool overflow code.
2901         (s390_emit_prologue): Likewise.
2902
2903 2002-06-05  David S. Miller  <davem@redhat.com>
2904
2905         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
2906         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
2907         emit_insns_before_scope, emit_insns_after,
2908         emit_insns_after_scope): Delete declaration.
2909         * ada/misc.c (insert_code_for): Use emit_insn* instead of
2910         emit_insns_foo.
2911         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
2912         (alpha_set_memflags): Fix comment.
2913         (set_frame_related_p): Use get_insns instead of gen_sequence.
2914         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
2915         emitting no insns.
2916         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
2917         gen_sequence.
2918         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
2919         * config/fr30/fr30.c (fr30_move_double): Likewise.
2920         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
2921         Likewise.
2922         * config/ia64/ia64.c (spill_restore_mem): Likewise.
2923         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
2924         no insns.
2925         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
2926         instead of gen_sequence.
2927         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
2928         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
2929         * config/sh/sh.c (sh_need_epilogue): Likewise.
2930         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
2931         attributes.
2932         (setjmp pattern and split): Use them to avoid splitter which emits
2933         no RTL.
2934         * genattrtab.c (main): Emit include of function.h
2935         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
2936         get_insns instead of gen_sequence.
2937         * config/cris/cris.c (cris_split_movdx): Likewise.
2938         * emit-rtl.c (emit_insns*): Kill.
2939         (try_split): Expect insn list instead of SEQUENCE.
2940         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
2941         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
2942         Make them abort if a SEQUENCE is given and RTL checking is
2943         enabled.
2944         (emit_*_scope): Don't forget to set scope on final insn.
2945         (gen_sequence): Move from here...
2946         * ssa.c (gen_sequence): To here as private function.
2947         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
2948         comments.
2949         (expand_builtin_return, expand_builtin_mathfn): Likewise.
2950         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
2951         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
2952         (expand_builtin_expect_jump): Use get_insns and fix comments.
2953         * calls.c (try_to_integrate): Use emit_insn_foo.
2954         (expand_call, emit_library_call_value_1): Likewise.
2955         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
2956         (emit_move_insn_1): Use get_insns instead of gen_sequence.
2957         (expand_expr): Use emit_insn_foo.
2958         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
2959         * except.c (build_post_landing_pads): Likewise.
2960         * flow.c (attempt_auto_inc): Likewise.
2961         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
2962         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
2963         * function.c (fixup_var_refs_insn): Use get_insns instead of
2964         gen_sequence.
2965         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
2966         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
2967         (fixup_stack_1, purge_addressof_1, expand_main_function,
2968         get_arg_pointer_save_area): Likewise.
2969         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
2970         expand_function_end): Use emit_insn_foo.
2971         (record_insns, keep_stack_depressed): Work with insn list instead
2972         of SEQUENCE, fix comments.
2973         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
2974         noce_try_store_flag_constants, noce_try_store_flag_inc,
2975         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
2976         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
2977         (noce_process_if_block): Use get_insns instead of gen_sequence.
2978         * optabs.c (add_equal_note): Work with insn list, fix comments.
2979         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
2980         (expand_unop, expand_complex_abs, expand_unop_insn,
2981         expand_no_conflict_block): Likewise.
2982         (gen_move_insn): Use get_insns instead of gen_sequence.
2983         (gen_cond_trap): Likewise.
2984         * integrate.c (copy_rtx_and_substitute): Likewise.
2985         (emit_initial_value_sets): Use emit_insn_foo.
2986         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
2987         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
2988         now that RTL generators give insn lists.
2989         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
2990         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
2991         instead of gen_sequence.
2992         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
2993         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
2994         instead of gen_sequence.
2995         * loop.c (move_movables, emit_prefetch_instructions,
2996         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
2997         Likewise.
2998         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
2999         (product_cheap_p): Likewise, and add commentary about RTL wastage
3000         here.
3001         * lcm.c (optimize_mode_switching): Use get_insns instead of
3002         gen_sequence.
3003         * profile.c (gen_edge_profiler): Likewise.
3004         * regmove.c (copy_src_to_dest): Likewise.
3005         * reg-stack.c (compensate_edge): Likewise and fix comment.
3006         * gcse.c (process_insert_insn): Likewise.
3007         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
3008         * jump.c (delete_prior_computation): Update comment.
3009         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
3010         of gen_sequence, update comments to match.
3011         * recog.c (peephole2_optimize): Work with insn lists instead of
3012         SEQUENCE rtl.
3013         * sched-vis.c (print_pattern): Abort on SEQUENCE.
3014         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
3015         Use get_insns instead of gen_sequence.
3016         (copy_loop_body): Likewise and don't emit dummy NOTE.
3017         * genrecog.c: Don't mention SEQUENCE rtl in comments.
3018         * combine.c (try_combine): Expect insn lists from split generator.
3019         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
3020         hand.
3021
3022 2002-06-11  Roger Sayle  <roger@eyesopen.com>
3023             Andreas Jaeger <aj@suse.de>
3024
3025         * cfgbuild.c: Update copyright years.
3026
3027 2002-06-11  Andreas Schwab  <schwab@suse.de>
3028
3029         * config/m68k/m68k.h (PREDICATE_CODES): Define.
3030
3031 2002-06-11  Eric Christopher  <echristo@redhat.com>
3032
3033         * doc/tm.texi (Run-time Target): Add comment about flag_iso
3034         and strict ANSI.
3035         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
3036         * config/mips/ecoffl.h: Ditto.
3037         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
3038         (CPP_PREDEFINES): Ditto.
3039         * config/mips/elfl64.h: Ditto.
3040         * config/mips/elfl.h: Ditto.
3041         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
3042         out until irix header consolidation.
3043         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
3044         with SUBTARGET_OS_CPP_BUILTINS.
3045         * config/mips/iris6.h: Ditto.
3046         (CPLUSPLUS_CPP_SPEC): Remove.
3047         * config/mips/linux.h: Ditto.
3048         * config/mips/netbsd.h: Ditto.
3049         * config/mips/openbsd.h: Ditto.
3050         * config/mips/rtems.h: Ditto.
3051         * config/mips/rtems64.h: Ditto.
3052         * config/mips/sni-svr4.h: Ditto.
3053         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
3054         ISA_MIPS32, ISA_MIPS64): New defines.
3055         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
3056         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
3057         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
3058         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
3059         (TARGET_CPU_CPP_BUILTINS): Define.
3060         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
3061         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
3062         (movdicc): Remove check for ISA_MIPS32.
3063          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
3064         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
3065         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
3066         sunge_sf, sunle_df, sunle_sf): New patterns.
3067
3068 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3069
3070         * Makefile.in: Update cppmain.o.
3071         * cpphash.h (struct cpp_reader): Move some members to a
3072         nested structure.
3073         (trad_line): Rename saved_line.
3074         (_cpp_read_logical_line_trad): Update.
3075         (_cpp_remove_overlay): New.
3076         * cppinit.c (cpp_create_reader): No need to set saved_line.
3077         (cpp_destroy): Update.
3078         (cpp_read_main_file): Only overlay if compiling.
3079         * cpplex.c (continue_after_nul): Return false if in directive.
3080         * cpplib.c (EXPAND): New.
3081         (directive_table, SEEN_EOL): Update.
3082         (end_directive): Remove overlay if traditional; don't skip
3083         line in traditional #define.
3084         (prepare_directive_trad): New.
3085         (_cpp_handle_directive, run_directive): Update for traditional
3086         directives.
3087         (lex_macro_node): Simplify, don't use lex_identifier_trad.
3088         * cpplib.h (struct options): Add preprocess_only.
3089         * cppmain.c: Don't include intl.h.
3090         (cpp_preprocess_file): Set options->preprocess_only.
3091         (scan_translation_unit_trad): Fix, and print line numbers.
3092         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
3093         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
3094         save_replacement_text, _cpp_create_trad_definition): Update for
3095         variable renaming.
3096         (_cpp_overlay_buffer): Save line number.
3097         (_cpp_remove_overlay): Rename from restore_buff, restore line.
3098         (_cpp_read_logical_line_trad): Don't handle overlays here.
3099         (scan_out_logical_line): Process directives.
3100
3101 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
3102
3103         * gthr-win32.h: Wrap functions in extern "C".
3104         (__gthread_key_t): Typedef as unsigned long,
3105         not win32 DWORD.
3106         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
3107         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
3108         (__gthr_win32_once, __gthr_win32_key_create,
3109         __gthr_win32_key_delete, __gthr_win32_getspecific,
3110         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3111         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3112         __gthr_win32_mutex_unlock): Declare.
3113         (__gthread_once,__gthread_key_create,
3114         __gthread_key_delete, __gthread_getspecific,
3115         __gthread_setspecific, __gthread_mutex_init_function,
3116         __gthread_mutex_lock,__gthread_mutex_trylock,
3117         __gthread_mutex_unlock): Call corresponding
3118         __gthr_win32_* extern implementations if #defined
3119         __GTHREAD_HIDE_WIN32API.
3120         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
3121         $(srcdir)/config/i386/gthr-win32.c
3122         * config/i386/gthr-win32.c: New implementation file.
3123         (__gthr_win32_once, __gthr_win32_key_create,
3124         __gthr_win32_key_delete, __gthr_win32_getspecific,
3125         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3126         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3127         __gthr_win32_mutex_unlock): New functions, based on
3128         static inlines in gthr-win32.h.
3129
3130 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
3131
3132         * config/xtensa/xtensa.c (override_options): Don't warn about
3133         using -fpic or -fPIC when PIC is enabled by default.
3134
3135 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3136
3137         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
3138
3139 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3140
3141         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
3142         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
3143         exists, substitute its pathname as @extra_modes_file@, define
3144         EXTRA_MODES_FILE to be an appropriate string to #include it
3145         with, and define EXTRA_CC_MODES to 1.
3146
3147         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
3148         it's defined.  Get rid of redundancy in calling sequence for
3149         CC; don't use it to define CCmode, to avoid a warning.
3150         * libgcc2.c: Include symcat.h for the sake of machmode.def.
3151
3152         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
3153         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
3154         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
3155         New files.
3156         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
3157         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
3158
3159         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
3160         defining extra CC modes.
3161
3162 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3163             Andreas Jaeger <aj@suse.de>
3164
3165         * cfgrtl.c (create_basic_block_structure):  Remove index argument
3166         and use last_basic_block++ instead.  (create_basic_block): Update.
3167         * cfgbuild.c (find_basic_blocks_1): Likewise.
3168
3169         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
3170         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
3171         * sched-ebb.c (schedule_ebbs): Likewise.
3172         * sched-rgn.c (schedule_insns): Likewise.
3173         * ssa-ccp.c (ssa_const_prop): Likewise.
3174         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
3175         * toplev.c (rest_of_compilation): Likewise.
3176         * config/ia64/ia64.c (ia64_reorg): Likewise.
3177
3178 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3179
3180         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
3181         of matching registers.
3182
3183 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3184
3185         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
3186         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
3187
3188 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
3189
3190         * config/mmix/mmix.h: Improve comments.
3191         (CPP_SPEC, CPP_PREDEFINES): Don't define.
3192         (TARGET_CPU_CPP_BUILTINS): Define.
3193         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
3194         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
3195         unused predicate.
3196         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
3197         compiler warning.
3198         (mmix_constant_address_p): Remove another
3199         redundant test before case.
3200         (mmix_canonicalize_comparison): Remove unused function.
3201         (mmix_print_operand_address): Don't test and adjust for operand in
3202         non-canonical format.
3203         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
3204         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
3205
3206 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3207
3208         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
3209         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
3210         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
3211         (gen_compare): Use CCmode unconditionally.
3212
3213 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3214
3215         PR optimization/6759
3216         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
3217         the REQ_EQUAL note.
3218
3219 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3220
3221         PR c/6660
3222         * c-decl.c (grokfield): Allow user defined types if they declare
3223         structs or unions for unnamed fields.
3224
3225 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3226
3227         PR c/6809
3228         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
3229
3230 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3231
3232         PR optimization/6842
3233         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
3234         operand subreg cannot be simplified.
3235
3236 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3237
3238         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
3239         (compare_constant): Likewise.
3240         (output_addressed_constants): Likewise.
3241
3242 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
3243
3244         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
3245         merge bb with itself.
3246
3247 2002-06-10  Richard Henderson  <rth@redhat.com>
3248
3249         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
3250         (builtin_zapnot): Likewise.
3251
3252         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
3253         reservation.
3254
3255 2002-06-10  Eric Christopher  <echristo@redhat.com>
3256
3257         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
3258         prototype and function.
3259         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
3260         (call_insn_operand): Remove half pic references.
3261         (legitimate_address_p): Ditto.
3262         * config/i386/i386.h: Remove half pic defines.
3263
3264 2002-06-10  Eric Christopher  <echristo@redhat.com>
3265
3266         * doc/extend.texi (Return Address): Add note explaining the side-
3267         effects of inlining on __builtin_return_address.
3268
3269 2002-06-10  Tom Tromey  <tromey@redhat.com>
3270
3271         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
3272         (c-common.o): Depend on langhooks.h.
3273
3274 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3275
3276         * cpphash.h (_cpp_read_logical_line_trad,
3277         _cpp_expansions_different_trad): Update prototypes.
3278         * cpplex.c (continue_after_nul): New.
3279         * cppmain.c: Include cpphash.h.
3280         (scan_translation_unit_trad): New.
3281         (cpp_preprocess_file): Call it.
3282         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
3283         overlay.
3284         (_cpp_expansions_different_trad): Update prototype.
3285
3286 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3287
3288         Fix cfi generation for SH[1-4]:
3289
3290         * sh.c (frame_insn): New function.
3291         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
3292         (push): Now returns rtx.  Use frame_insn.
3293         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
3294         of a DF register.
3295         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
3296
3297 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3298
3299         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
3300         and gtype-desc.c.
3301         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
3302         (distclean): ... not here.  But do delete all testsuite/*.log,
3303         testsuite/*.sum files here.  Delete mkheaders.  Delete
3304         po/*.gmo and the testsuite directory in a split tree build.
3305
3306 2002-06-10  Jeffrey Law  <law@redhat.com>
3307
3308         * alias.c (static_reg_base_value): New to hold RTL for
3309         items allocated once per function for the aliasing code.
3310         (init_alias_once_per_function): Initialize static_reg_base_value.
3311         (init_alias_analysis): Avoid throw-away allocations of RTL by
3312         using pre-computed values in static_reg_base_value.
3313         * function.c (prepare_function_start): Call
3314         init_alias_once_per_function appropriately.
3315         * rtl.h (init_alias_once_per_function): Declare.
3316         * caller-save (init_caller_save): Restructure slightly to
3317         avoid lots of silly RTL generation.
3318         * expr.c (init_expr_once): Likewise.
3319         * reload1.c (reload_cse_regs_1): Allocate throw-away register
3320         RTL object here.  Pass it into children.
3321         (reload_cse_simplify_operands): Use passed-in register RTL
3322         object.
3323         (reload_cse_simplify): Pass through throw-away register
3324         RTL object.
3325
3326 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
3327
3328         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
3329
3330 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
3331
3332         * gcc.c (process_command): Avoid assignment to read-only location.
3333         Fix sizeof calculation.
3334
3335 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3336
3337         * cpphash.h (struct cpp_macro): Put comments on their own lines.
3338         (_cpp_expansions_different_trad): New.
3339         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
3340         * cpptrad.c (canonicalize_text): New.
3341         (scan_out_logical_line): Handle no arguments correctly.
3342         (save_replacement_text): Commit memory when finished.
3343         (_cpp_expansions_different_trad): New.
3344
3345 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3346
3347         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
3348         TREELANG and COBOL.
3349         (lang_names): Add treelang and cobol.
3350         (get_file_basename): Add code to support treelang and cobol as
3351         4th and 5th users of c-common.c.
3352
3353 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
3354
3355         * Makefile.in (install-driver): Install driver as
3356         $(target_alias)-gcc-$(version).
3357         * gcc.c (spec_version): Make const.
3358         (process_command): Handle -V and -b by using exec.
3359         * doc/invoke.texi (Target Options): Restore -V option,
3360         update docs for -b option.
3361
3362 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3363
3364         * configure.in (remaining_languages_check):
3365         Added check that all languages specified were found.
3366         Exit if not found. Previous behaviour was silent failure.
3367         * configure: Regenerated.
3368
3369 2002-06-10  Tim Josling  <tej@melbpc.org.au>
3370
3371          First steps to making treelang documentation compliant, based on
3372          instructions in sourcebuild.texi. Also add to gcc.c list of
3373          default languages.
3374
3375         * doc/contrib.texi: Add self as contributor of treelang.
3376
3377         * doc/frontends.texi: Add mention of treelang.
3378
3379         * doc/invoke.texi (Overall Options): Add mention of treelang.
3380
3381         * doc/standards.texi:  Add mention of treelang.
3382
3383 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
3384
3385         * config/cris/cris.c: Include ggc.h
3386
3387 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3388
3389         * cpphash.h (_cpp_push_text_context): Update.
3390         (_cpp_arguments_ok): New.
3391         * cppmacro.c (_cpp_arguments_ok): New, split out from...
3392         (collect_args): ...here.
3393         (_cpp_push_text_context): Change inputs.
3394         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
3395         replace_args_and_push): New.
3396         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
3397         Don't use IS macros directly.
3398         (scan_out_logical_line): Handle function-like macro argument
3399         collection.
3400         (push_replacement_text): Update.
3401         (replacement_length): Remove.
3402         (_cpp_create_trad_definition): Don't skip whitespace before
3403         checking for '('.
3404
3405 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3406
3407         * config/avr/avr.c (avr_mcu_types): Update for new devices.
3408         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
3409         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
3410         * config/avr/avr.md ("type" and "length" attributes): New type
3411         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
3412         output a single "call" or "rcall" insn depending on device size.
3413         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
3414
3415 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
3416
3417         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
3418         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
3419         assembler option.
3420         (CPP_CPU_SPEC): Add power3 and power4.
3421         (PROCESSOR_DEFAULT): Change to 604e.
3422         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
3423         (CPP_CPU_SPEC): Similar additions.
3424         (enum process_type): Add POWER4.
3425         (RTX_COSTS): Add POWER4.
3426         (CPP_CPU_SPEC): Similar additions.
3427         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3428         (PROCESSOR_DEFAULT64): Define.
3429         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
3430         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
3431         branch adjustment.
3432         (rs6000_issue_rate): Add Power4.
3433         * config/rs6000/rs6000.md (cpu attr): Add power4.
3434         (iu compare): Remove 604, 604e, 620, 630.
3435         Add basic Power4 scheduling information.
3436         (mfcr/mtcrf): Change type attribute to cr_logical.
3437
3438 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3439
3440         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
3441         ATTRIBUTE_PRINTF_2.
3442         * gengtype-lex.l: Fix format specifier warning.
3443
3444         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
3445         not isspace.
3446         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
3447         lieu of isspace/IDchar.
3448         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
3449         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
3450         ISSPACE.
3451
3452 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
3453
3454         * Makefile.in (LIBCPP_OBJS): Take out version.o.
3455         * cpphash.h (cpp_reader): Take out print_version member.
3456         * cppinit.c: (cpp_handle_option): Don't do anything with
3457         -version.  Just set help_only for --version, --target-help.
3458         Just set verbose option for -v.
3459         (cpp_post_options): Don't print a version string.
3460
3461 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3462
3463         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
3464         (avr_section_type_flags): New, handle .noinit* sections.
3465
3466 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3467
3468         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
3469         and include netbsd_entry_point.
3470         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
3471         (NETBSD_ENTRY_POINT): Define.
3472
3473 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3474
3475         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
3476         if not already defined.
3477         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
3478
3479 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3480
3481         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
3482         in a noreturn function.
3483         (avr_output_function_prologue, avr_output_function_epilogue):
3484         Correct function size calculation.  Do not crash on empty function.
3485         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
3486
3487 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3488
3489         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
3490         netbsd_link_spec and netbsd_entry_point.
3491         (LINK_SPEC): Use %(netbsd_link_spec).
3492         (NETBSD_ENTRY_POINT): Define.
3493
3494 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3495
3496         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
3497         linker emulation.
3498         (LINK_ARCH64_SPEC): Likewise.
3499         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
3500         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
3501
3502 2002-06-08  Marc Espie  <espie@openbsd.org>
3503
3504         * lists.c (free_list):  Fix typo in comment.
3505
3506 2002-06-08  Andreas Jaeger  <aj@suse.de>
3507
3508         * lcm.c (optimize_mode_switching): Add unused attribute for
3509         variable.
3510
3511         * sched-deps.c (sched_analyze): Remove unused variable.
3512
3513 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
3514
3515         * diagnostic.def: Don't capitalize diagnostict descriptors.
3516
3517 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3518
3519         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
3520         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
3521         (NETBSD_ENTRY_POINT): Define.
3522
3523 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3524
3525         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
3526         NETBSD_LINK_SPEC_ELF.
3527         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
3528         (NETBSD_ENTRY_POINT): Define.
3529         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
3530         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
3531         netbsd_entry_point.
3532         (NETBSD_ENTRY_POINT): Define.
3533
3534 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3535
3536         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
3537         netbsd_link_spec and netbsd_entry_point.
3538         (LINK_SPEC): Use %(netbsd_link_spec).
3539         (NETBSD_ENTRY_POINT): Define.
3540
3541 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
3542
3543         * config/netbsd-elf.h (LINK_SPEC): Rename to...
3544         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
3545         to specify program entry point.
3546
3547 2002-06-07  Jeff Law <law@redhat.com
3548
3549         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
3550         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
3551         than creating a new register.
3552         (distribute_notes): Likewise.
3553         * df.c (df_reg_use_gen): Likewise.
3554         (df_reg_clobber_gen): Likewise.
3555         (df_ref_record): Likewise.
3556         * expr.c (use_regs): Likewise.
3557         * flow.c (propagate_one_insn): Likewise.
3558         (mark_set_1): Likewise.
3559         (mark_used_reg): Likewise.
3560         * reload.c (emit_reload_insns): Likewise.
3561
3562 2002-06-07  Roger Sayle  <roger@eyesopen.com>
3563
3564         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
3565         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
3566         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
3567         comparison code comp can be reversed.
3568
3569 2002-06-07  Roger Sayle  <roger@eyesopen.com>
3570
3571         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
3572         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
3573         equivalent x > -1.0 when -ffast-math.
3574
3575 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3576
3577         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
3578         * config/mips/t-netbsd: New file.
3579
3580 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
3581
3582         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
3583         options their own entries.
3584         (parse_option): Clarify comment.
3585         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
3586         special case.  Replace if/strcmp chain for -W options with
3587         use of new OPT_* entries for them.
3588         (cpp_handle_options): Update to match.
3589         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
3590         * c-decl.c: Update call to cpp_handle_option.
3591
3592 2002-06-07  Akim Demaille  <akim@epita.fr>
3593
3594         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
3595         Whitespace changes.
3596
3597 2002-06-07  Jeffrey Law  <law@redhat.com>
3598
3599         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
3600         on empty lists.
3601
3602 2002-06-07  H.J. Lu  (hjl@gnu.org)
3603
3604         * configure.in: Add --enable-__cxa_atexit.
3605         * configure: Regenerated.
3606         * config.in: Likewise.
3607
3608         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
3609         not defined.
3610
3611 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
3612
3613         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
3614
3615 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3616
3617         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
3618
3619 2002-06-07  Jason Merrill  <jason@redhat.com>
3620
3621         * cppexp.c (num_equality_op): Use a temporary variable to work
3622         around gcc 3.0.4 bug.
3623
3624 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
3625
3626         * diagnostic.c (diagnostic_build_prefix): Tidy.
3627
3628 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3629
3630         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
3631         scan_parameters, save_replacement_text, replacement_length): New.
3632         (scan_out_logical_line): Take a macro and save parameters if
3633         non-NULL.
3634         (_cpp_logical_line_trad): Update.
3635         (_cpp_create_trad_definition): Update to handle function-like
3636         macros.
3637         * cpplex.c (new_buff): Update.
3638         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
3639         * cpphash.h: ...here.
3640         (CPP_ALIGN2, _cpp_save_parameter): New.
3641         * cppmacro.c (save_parameter): Rename, export.
3642         (parse_params): Update.
3643
3644 2002-06-07  Andreas Jaeger  <aj@suse.de>
3645
3646         * config/mmix/mmix.c: Remove extra broken prototype for
3647         mmix_init_machine_status.
3648
3649 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
3650
3651         * gengtype.c: Add comments before all the routines.
3652
3653 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
3654
3655         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
3656         from and add t-sh64 to ${tmake_file}.
3657         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
3658         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
3659         * config/sh/t-netbsd-sh5-32: Remove.
3660         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
3661         MULTILIB_ENDIAN.
3662         (MULTILIB_DIRNAMES): Define.
3663
3664 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
3665
3666         * i386.md (and promoting splitters): Disable QI to SImode promoting
3667         when doing so changes immediate to be 32bit.
3668
3669         * rtl.h (emit_*_scope): Declare.
3670         * emit-rtl.c (emit_*_scope): New global functions.
3671         (try_split): Copy scope.
3672         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3673         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3674         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
3675         noce_process_if_block, find_cond_trap): Copy scopes.
3676         * recog.c (peephole2_optimize): likewise.
3677
3678 2002-06-06  Jeffrey Law  <law@redhat.com>
3679
3680         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
3681
3682 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
3683
3684         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
3685
3686 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3687
3688         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
3689         ($(docdir)/gccinstall.info): New target.
3690         (info): Depend on it.
3691         (gccinstall.dvi): New target.
3692         (dvi): Depend on it.
3693         * doc/.cvsignore: Ignore new info files.
3694         * doc/install.texi (@setfilename): Reflect new info filename.
3695
3696 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
3697
3698         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
3699         on an UNSPEC.
3700
3701 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
3702
3703         PR objc/6834
3704         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
3705         c_common_get_alias_set.
3706         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
3707
3708 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3709
3710         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
3711         functions.
3712         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
3713         * avr/avr.c (avr_output_function_epilogue): Use above to determine
3714         function size.
3715         * pa/pa.c (pa_output_function_prologue): Likewise.
3716
3717 2002-06-05  David S. Miller  <davem@redhat.com>
3718
3719         * integrate.c (subst_constants): Handle 'B' RTL format.
3720
3721 2002-06-05  Eric Christopher  <echristo@redhat.com>
3722
3723         * varasm.c (make_decl_rtl): Fix comment for removed
3724         halfpic.c.
3725
3726 2002-06-05  Eric Christopher  <echristo@redhat.com>
3727
3728         * Makefile.in: Remove missed halfpic bits.
3729
3730 2002-06-05  Eric Christopher  <echristo@redhat.com>
3731
3732         * toplev.c: Remove half-pic.
3733         * config/mips/mips.c: Ditto.
3734         * config/mips/mips.h: Ditto. Remove unused defines.
3735         * config/mips/openbsd.h: Update comment to reflect above.
3736         * config/mips/mips.md: Remove half-pic constraints.
3737         * halfpic.h: Delete.
3738         * halfpic.c: Ditto.
3739
3740 2002-06-05  Jeffrey Law  <law@redhat.com>
3741
3742         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
3743         rejects (mem (lo_sum (reg) (unspec))), but will allow
3744         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
3745
3746 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3747
3748         * cpphash.h (_cpp_create_definition): Update prototype.
3749         (_cpp_push_text_context, _cpp_create_trad_definition): New.
3750         ( cpp_lex_identifier_trad): New.
3751         (_cpp_set_trad_context): New.
3752         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
3753         * cpplib.c (SEEN_EOL): Update.
3754         (lex_macro_node): Update for -traditional.
3755         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
3756         * cppmacro.c (_cpp_create_definition): Split into
3757         create_iso_definition() and _cpp_create_trad_definition().
3758         (warn_of_redefinition): Update prototype; handle traditional
3759         macros.
3760         (_cpp_push_text_context): New.
3761         * cpptrad.c (skip_whitespace, push_replacement_text): New.
3762         (lex_identifier): Call ht_lookup with correct start.
3763         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
3764         _cpp_set_trad_context): New.
3765         (scan_out_logical_line): Update to handle changing contexts.
3766
3767 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
3768
3769         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
3770         (shl*-*-elf*): Add.
3771         * config/sh/t-be (MULTILIB_ENDIAN): Set.
3772         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
3773         * t-sh (MULTILIB_ENDIAN): Set.
3774         (MULTILIB_OPTIONS): Use it.
3775         * t-sh64 (MULTILIB_OPTIONS): Likewise.
3776         (MULTILIB_DIRNAMES): Likewise.
3777
3778 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
3779
3780         * toplev.h (report_error_function): Remove.
3781
3782         * diagnostic.h (location_t): New datatype.
3783         (text_info): Likewise.
3784         (diagnostic_info): Likewise.
3785         (output_prefix): New macro.
3786         (diagnostic_last_function_changed): Likewise.
3787         (diagnostic_set_last_function): Likewise.
3788         (diagnostic_last_module_changed): Likewise.
3789         (diagnostic_set_last_module): Likewise.
3790         (report_diagnostic): Now macro.
3791         (diagnostic_set_info): Declare.
3792
3793         * diagnostic.c (report_problematic_module): Rename to
3794         diagnostic_repor_current_module.
3795         (set_diagnostic_context): Remove.
3796         (count_error): Rename to diagnostic_error_count.
3797         (error_function_changed): Remove.
3798         (record_last_error_function): Likewise.
3799         (error_module_changed): Likewise.
3800         (record_last_error_module): Likewise.
3801         (context_as_prefix): Rename to diagnostic_build_prefix.
3802         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
3803         (diagnostic_set_info): New function.
3804
3805         * objc/objc-act.c: #include diagnostic.h
3806         (error_with_ivar): Adjust call to count_error.
3807         (warn_with_method): Likewise.
3808         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
3809
3810 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
3811
3812         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
3813         lang_hooks.types.make_type instead of make_node; set up
3814         __va_list_tag type decl.
3815         (xtensa_builtin_saveregs): Remove broken use of
3816         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
3817         for saved registers; add varargs alias set.
3818
3819 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3820
3821 config:
3822         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
3823         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
3824         CPP_PREDEFINES and part of CPP_SPEC.
3825         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
3826         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
3827
3828 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
3829
3830         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
3831
3832 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
3833
3834         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
3835
3836 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
3837
3838         * gengtype-yacc.y: Make sure all rules end with a semicolon.
3839
3840 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
3841
3842         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
3843         typo in function prototype and include "ggc.h" header.
3844
3845 2002-06-04  Richard Henderson  <rth@redhat.com>
3846
3847         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
3848         (print_operand) ['U']: Likewise.
3849         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
3850         (alpha_expand_unaligned_store_words): Likewise.
3851         (alpha_expand_builtin_vector_binop): Fix typo.
3852         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
3853         umulh, and cix insns.
3854         (one_arg_builtins): Add cix builtins.
3855         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
3856         (alpha_expand_builtin): Fix typo in arity.
3857         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
3858         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
3859         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
3860         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
3861         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
3862         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
3863         builtin_ctlz, builtin_ctpop): New.
3864         * doc/extend.texi (Alpha Built-in Functions): Update.
3865
3866 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
3867
3868         * gengtype.c (write_gc_root): Don't unnecessarily prevent
3869         global variable-length arrays being roots.
3870
3871         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
3872         * configure.in (config_gtfiles): New variable.
3873         (all_gtfiles): Initialise from config_gtfiles.
3874         * configure: Regenerate.
3875
3876 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3877
3878 config/i386:
3879         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
3880         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
3881         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
3882         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
3883         win32.h (CPP_SPEC): Remove cpp_cpu.
3884         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
3885         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
3886
3887 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
3888
3889         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
3890
3891 2002-06-04  Jeff Law <law@redhat.com.
3892             David Edelsohn <edelsohn@gnu.org>
3893             Michael Matz <matz@kde.org>
3894
3895         * sched-int.h (struct deps): New field libcall_block_tail_insn.
3896         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
3897         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
3898         is set, then mark the current insn as being part of a libcall
3899         scheduling group.
3900         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
3901
3902         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
3903         insns against the issue rate.
3904
3905 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
3906
3907         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
3908         * final.c (final_scan_insn): Likewise.
3909         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
3910         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
3911         * haifa-sched.c (unlink_other_notes): Likeewise.
3912         (reemit_notes): Likewise.
3913         * print-rtl.c (print_rtx): Likewise.
3914         * sched-deps (sched-analyze): Likewise.
3915         * rtl.c (note_insn_name): Likewise.
3916         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
3917         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
3918         (RANGE_*): Kill.
3919
3920 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
3921
3922         * varasm.c (mark_constants): Handle RTX format 'B'.
3923
3924 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3925
3926         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
3927         (struct cpp_context): Add traditional fields.
3928         * cppmacro.c (paste_all_tokens, push_ptoken_context,
3929         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
3930         * cpptrad.c (skip_comment, lex_identifier,
3931         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
3932
3933 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
3934
3935         * gbl-ctors.h: Fix formatting.
3936         * gcc.c: Likewise.
3937         * gccspec.c: Likewise.
3938         * gcov.c: Likewise.
3939         * gcov-io.h: Likewise.
3940         * gcse.c: Likewise.
3941         * ggc-common.c: Likewise.
3942         * ggc.h: Likewise.
3943         * ggc-page.c: Likewise.
3944         * ggc-simple.c: Likewise.
3945         * global.c: Likewise.
3946         * graph.h: Likewise.
3947         * gthr-dce.h: Likewise.
3948         * gthr.h: Likewise.
3949         * gthr-posix.h: Likewise.
3950         * gthr-rtems.h: Likewise.
3951         * gthr-solaris.h: Likewise.
3952         * gthr-win32.h: Likewise.
3953
3954 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
3955
3956         Merge from pch-branch:
3957
3958         * gengtype.h (UNION_OR_STRUCT_P): New macro.
3959         * gengtype.c (write_gc_structure_fields): Use it.
3960         (write_gc_root): Use it here too.
3961
3962         * gengtype.c (write_gc_structure_fields): Assume that lengths
3963         of typenames fit into an 'int'; don't pass a size_t to "%d" in
3964         printf.
3965         (write_gc_marker_routine_for_structure): Likewise.
3966         (write_gc_types): Likewise.
3967         (write_gc_root): Likewise.
3968
3969         * varray.h (VARRAY_CLEAR): New.
3970         (varray_clear): Prototype.
3971         * varray.c (varray_clear): New.
3972         * cselib.c (reg_values_old): New.
3973         (used_regs_old): New.
3974         (cselib_init): Use cached varrays if available to avoid
3975         generating large amounts of garbage.
3976         (cselib_finish): Don't throw away old varrays.
3977
3978         * final.c (insn_addresses_): Move out of ifdef.
3979
3980         * varray.c (uses_ggc): Make more varray kinds GCable.
3981         * varray.h (union varray_data_tag): Let gengtype see
3982         fields 'generic' and 'te'.
3983         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
3984         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
3985         (reg_to_stack): Don't call VARRAY_FREE.
3986         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
3987         (insn_addresses_): Use gengtype to mark.
3988         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
3989         pointers; handle generic pointers in unused union fields.
3990         (get_output_file_with_visibility): Include cselib.h,
3991         insn-addr.h in gtype-desc.c.
3992         * function.c (prologue): Use gengtype to mark.
3993         (epilogue): Likewise.
3994         (sibcall_epilogue): Likewise.
3995         * dependence.c: Include gt-dependence.h, ggc.h.
3996         (struct def_use): Use gengtype to mark.
3997         (struct loop): Likewise.
3998         (struct induction): Likewise.
3999         (struct dependence): Likewise.
4000         (def_use_chain): Likewise.
4001         (dep_chain): Likewise.
4002         (loop_chain): Likewise.
4003         (induction_chain): Likewise.
4004         (init_dependence_analysis): Don't free anything, just clear pointers.
4005         (build_def_use): Use GGC to allocate def_use.
4006         (add_loop): Use GGC to allocate loop.
4007         (find_induction_variable): Use GGC to allocate induction.
4008         (check_node_dependence): Use GGC to allocate induction, dependence.
4009         (dump_node_dependence): Don't free varrays.
4010         (end_dependence_analysis): Likewise.
4011         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
4012         (struct elt_loc_list): Likewise.
4013         (struct elt_list): Likewise.
4014         * cselib.c: Don't include obstack.h.
4015         (hash_table): Use gengtype to mark.
4016         (reg_values): Use gengtype to mark.
4017         (used_regs): Use gengtype to mark.
4018         (cselib_obstack): Delete.
4019         (cselib_startobj): Delete.
4020         (empty_vals): Mark as deletable.
4021         (empty_elt_lists): Mark as deletable.
4022         (empty_elt_loc_lists): Mark as deletable.
4023         (new_elt_list): Use GGC to allocate struct elt_list.
4024         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
4025         (clear_table): Don't delete obstack; don't unnecessarily clear
4026         deletable variables.
4027         (new_cselib_val): Use GGC to allocate struct cselib_val.
4028         (cselib_init): Don't set up obstacks.  Use GGC to allocate
4029         hash table.
4030         (cselib_finish): Just clear variables, don't free anything.
4031         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
4032         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
4033         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
4034         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
4035         (gt-reg-stack.h): New rule.
4036         (gt-dependence.h): New rule.
4037         (gtype-desc.o): Add cselib.h, insn-addr.h.
4038
4039         * varray.c: Use only necessary headers.
4040         (element_size): New.
4041         (uses_ggc): New.
4042         (varray_init): Take type, not size.  Use GGC if appropriate.
4043         (varray_grow): Update for change to struct varray_head_tag.
4044         Use GGC if appropriate.
4045         * varray.h (struct const_equiv_data): Use gengtype.
4046         (enum varray_data_enum): New.
4047         (union varray_data_tag): Use gengtype.
4048         (struct varray_head_tag): Use gengtype.  Replace size field with
4049         enum varray_data_enum.
4050         (varray_init): Update prototype.
4051         (VARRAY_SCHED_INIT): Delete.
4052         (VARRAY_*_INIT): Update for change to varray_init.
4053         (VARRAY_SCHED): Delete.
4054         (VARRAY_PUSH_SCHED): Delete.
4055         (VARRAY_TOP_SCHED): Delete.
4056         * tree.h: Update for change to length specifier.
4057         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
4058         (clone_body): Likewise.
4059         * ssa.h (ssa_definition): Use gengtype to mark.
4060         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
4061         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
4062         * rtl.h (struct rtvec_def): Update for change to length specifier.
4063         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
4064         (struct initial_value_struct): Update for change to length specifier.
4065         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
4066         (ggc_add_tree_varray_root): Delete prototype.
4067         (ggc_mark_rtx_varray): Delete prototype.
4068         (ggc_mark_tree_varray): Delete prototype.
4069         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
4070         (ggc_add_tree_varray_root): Delete.
4071         (ggc_mark_rtx_varray): Delete.
4072         (ggc_mark_tree_varray): Delete.
4073         (ggc_mark_rtx_varray_ptr): Delete.
4074         (ggc_mark_tree_varray_ptr): Delete.
4075         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
4076         (create_varray): Delete prototype.
4077         * gengtype.c (varrays): Delete.
4078         (create_varray): Delete.
4079         (adjust_field_type): Detect array of string pointers.
4080         (process_gc_options): Remove code to handle varray_type option.
4081         (set_gc_used_type): Remove TYPE_VARRAY case.
4082         (output_escaped_param): New.
4083         (write_gc_structure_fields): Use output_escaped_param on all
4084         parameters.  Handle 'skip' with 'use_param' option.  Handle
4085         arrays of strings.  Remove TYPE_VARRAY handling.
4086         (write_gc_roots): Use boolean to detect 'length' option.
4087         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
4088         (struct_fields): Call adjust_field_type on array fields.
4089         (type): Remove VARRAY_TYPE case.
4090         (type_option): Likewise.
4091         * gengtype-lex.l: Don't consider varray_type a keyword.
4092         * function.h: Update for change to length specifier.
4093         (free_eh_status): Delete prototype.
4094         * function.c (free_after_compilation): Don't call free_eh_status.
4095         (reorder_blocks): Don't use VARRAY_FREE.
4096         * except.c (struct eh_status): Update for change to length specifier.
4097         remove varray_type specifier.
4098         (free_eh_status): Delete.
4099         * dwarf2out.c: Include gt-dwarf2out.h.
4100         (used_rtx_varray): Use gengtype to mark, move
4101         outside ifdefs.
4102         (incomplete_types): Likewise.
4103         (decl_scope_table): Likewise.
4104         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
4105         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
4106         * c-tree.h (struct lang_type): Update for change to length specifier.
4107         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
4108         * c-objc-common.c: Include gt-c-objc-common.h.
4109         (deferred_fns): Mark for gengtype.
4110         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
4111         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
4112         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
4113         (gtype-desc.o): Update dependencies.
4114         (dwarf2out.o): Add gt-dwarf2out.h.
4115         (varray.o): Update dependencies.
4116         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
4117         (gt-c-objc-common.h): New rule.
4118         (gt-dwarf2out.h): New rule.
4119         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
4120
4121         * doc/gty.texi (GTY Options): Correct spelling.
4122         (GGC Roots): Likewise.
4123         * Makefile.in (TEXI_CPP_FILES): New.
4124         (TEXI_GCC_FILES): New.
4125         (TEXI_GCCINT_FILES): New.
4126         (TEXI_CPPINT_FILES): New.
4127         ($(docdir)/cpp.info): Use new macros.
4128         ($(docdir)/gcc.info): Likewise.
4129         ($(docdir)/gccint.info): Likewise.
4130         ($(docdir)/cppinternals.info): Likewise.
4131         (cpp.dvi): Likewise.
4132         (gcc.dvi): Likewise.
4133         (gccint.dvi): Likewise.
4134         (cppinternals.dvi): Likewise.
4135
4136         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
4137         * doc/gccint.texi (Top): Include gty.texi.
4138         * doc/gty.texi: New file.
4139
4140         * bitmap.c: Include ggc.h, gt-bitmap.h.
4141         (bitmap_ggc_free): New.
4142         (bitmap_elem_to_freelist): New.
4143         (bitmap_element_free): Use bitmap_elem_to_freelist.
4144         (bitmap_element_allocate): Allow use of GGC.
4145         (bitmap_clear): Use bitmap_elem_to_freelist.
4146         (bitmap_copy): Update for change to bitmap_element_allocate.
4147         (bitmap_set_bit): Likewise.
4148         (bitmap_operation): Update for changes elsewhere.
4149         (bitmap_initialize): Allow to create bitmaps that will use GGC.
4150         * bitmap.h (struct bitmap_element_def): Use gengtype.
4151         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
4152         (bitmap_initialize): Add extra parameter.
4153         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
4154         (BITMAP_ALLOCA): Delete.
4155         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
4156         (BITMAP_GGC_ALLOC): New.
4157         * Makefile.in (gtype-desc.o): Add bitmap.h.
4158         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
4159         (GTFILES): Add bitmap.c.
4160         (gt-bitmap.h): New rule.
4161         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
4162         * basic-block.h: Update for changes to bitmap_initialize.
4163         * except.c (exception_handler_label_map): Move into...
4164         (struct eh_status): Here.
4165         (struct eh_region): Make 'aka' GCable.
4166         (free_eh_status): Don't need to specially handle
4167         exception_handler_label_map.
4168         (add_ehl_entry): Update for changes to exception_handler_label_map.
4169         (find_exception_handler_labels): Likewise.
4170         (remove_exception_handler_label): Likewise.
4171         (maybe_remove_eh_handler): Likewise.
4172         (for_each_eh_label): Likewise.
4173         (remove_eh_handler): Allocate 'aka' using GGC.
4174         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
4175         to list of includes.
4176
4177         * gengtype.c (write_gc_marker_routine_for_structure): Name
4178         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
4179         (write_gc_types): Arrange for the tests with NULL to be inlined.
4180         (write_gc_roots): Update uses of procedure pointers.
4181         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
4182
4183         * Makefile.in (explow.o): Add dependency on gt-explow.h.
4184         (sdbout.o): Add dependency on gt-sdbout.h.
4185
4186         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
4187         (mem_attrs_htab): Likewise.
4188         (init_emit_once): Don't call ggc_add_deletable_htab.
4189         * fold-const.c (size_htab): Use gengtype to clear unused entries.
4190         (size_int_type_wide): Don't call ggc_add_deletable_htab.
4191         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
4192         parameters, use them, change callers.
4193         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
4194         (write_gc_roots): Handle 'if_marked' option.
4195         (main): Don't need to call set_gc_used_type any more.
4196         * ggc.h (ggc_htab_marked_p): Delete.
4197         (ggc_htab_mark): Delete.
4198         (struct ggc_cache_tab): New.
4199         (gt_ggc_cache_rtab): New declaration.
4200         * ggc-common.c (struct d_htab_root): Delete.
4201         (d_htab_roots): Delete.
4202         (ggc_add_deletable_htab): Delete.
4203         (ggc_htab_delete): Handle new htab-deleting mechanism.
4204         (ggc_mark_roots): Use new htab-deleting mechanism.
4205         * tree.c (type_hash_table): Use gengtype to clear unused entries.
4206         Make static.
4207         (init_obstacks): Don't call ggc_add_deletable_htab.
4208
4209         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
4210         (struct hashed_entry): Likewise.
4211         (nst_method_hash_list): Likewise.
4212         (cls_method_hash_list): Likewise.
4213         (HASH_ALLOC_LIST_SIZE): Delete.
4214         (ATTR_ALLOC_LIST_SIZE): Delete.
4215         * objc/objc-act.c (hash_init): Use ggc to allocate
4216         nst_method_hash_list, cls_method_hash_list.
4217         (hash_enter): Use ggc to allocate; allocate one entry at a time.
4218         (hash_add_attr): Likewise.
4219         (ggc_mark_hash_table): Delete.
4220         (objc_act_parse_init): Delete.
4221         (objc_init): Delete reference to objc_act_parse_init.
4222         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
4223         obstack.h.  Replace references to 'struct hash_table' with htab_t.
4224         (struct symbol_hash_entry): Replace hash header with key field.
4225         (struct file_hash_entry): Replace hash header with key field.
4226         (struct demangled_hash_entry): Replace hash header with key field.
4227         (hash_string_eq): New.
4228         (hash_string_hash): New.
4229         (symbol_hash_newfunc): Delete.
4230         (symbol_hash_lookup): Modify to use htab_t.
4231         (file_hash_newfunc): Delete.
4232         (file_hash_lookup): Modify to use htab_t.
4233         (demangled_hash_newfunc): Delete.
4234         (demangled_hash_lookup): Modify to use htab_t.
4235         (tlink_init): Modify to use htab_t.
4236         * hash.h: Delete.
4237         * hash.c: Delete.
4238         * ggc.h: Delete forward structure declarations.
4239         Delete prototypes for deleted functions.
4240         * ggc-common.c: Don't include hash.h.
4241         (ggc_add_tree_hash_table_root): Delete.
4242         (ggc_mark_tree_hash_table_entry): Delete.
4243         (ggc_mark_tree_hash_table): Delete.
4244         (ggc_mark_tree_hash_table_ptr): Delete.
4245         * gengtype.c (write_gc_structure_fields): Allow param_is option.
4246         (write_gc_marker_routine_for_structure): Use visibility of
4247         the parameter if there is one.
4248         * function.c: Replace hash.h with hashtab.h.  Replace references
4249         to 'struct hash_table *' with htab_t.
4250         (struct insns_for_mem_entry): Include a plain key.
4251         (fixup_var_refs_insns_with_hash): Update to use htab_t.
4252         (insns_for_mem_newfunc): Delete.
4253         (insns_for_mem_hash): Update to use htab_t.
4254         (insns_for_mem_comp): Likewise.
4255         (insns_for_mem_walk): Likewise.
4256         * c-lang.c: Include ggc.h.
4257         * Makefile.in (OBJS): Remove hash.o.
4258         (c-lang.o): Add GGC_H.
4259         (COLLECT2_OBJS): Remove hash.o.
4260         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
4261         (ggc-common.o): Remove hash.h.
4262         (function.o): Remove hash.h, add HASHTAB_H.
4263         (genautomata.o): Remove hash.h, add HASHTAB_H.
4264
4265         * varasm.c (mark_const_str_htab_1): Delete.
4266         (mark_const_str_htab): Delete.
4267         (const_str_htab_del): Delete.
4268         (const_str_htab): Use gengtype to mark.
4269         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
4270         allocate them.
4271         * tree.c (mark_tree_hashtable_entry): Delete.
4272         (mark_tree_hashtable): Delete.
4273         * tree.h (mark_tree_hashtable): Delete prototype.
4274         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
4275         (ggc_mark): Likewise.
4276         (ggc_calloc): New.
4277         (htab_create_ggc): New.
4278         * ggc-common.c (ggc_calloc): New.
4279         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
4280         (struct type): Add param_struct structure.
4281         * gengtype.c (param_structs): New.
4282         (adjust_field_type): Handle param_is option.
4283         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
4284         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
4285         (write_gc_structure_fields): Add new PARAM parameter.  Update
4286         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
4287         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
4288         Use it to generate function name.  Update callers.
4289         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
4290         Process them.
4291         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
4292         option.
4293         (main): Define PTR as pointer-to-scalar.  Don't specially
4294         mark deferred_string or ehl_map_entry.
4295         * gengtype-yacc.y (PARAM_IS): Add new token.
4296         (externstatic): Use adjust_field_type.
4297         (type_option): Add PARAM_IS.
4298         * gengtype-lex.l: Add rule for typedef of function pointers.
4299         Add rule for PARAM_IS.
4300         (IWORD): Add size_t.
4301         * except.c (exception_handler_label_map): Use gengtype to mark.
4302         (type_to_runtime_map): Likewise.
4303         (mark_ehl_map_entry): Delete.
4304         (mark_ehl_map): Delete.
4305         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
4306         (t2r_mark_1): Delete.
4307         (t2r_mark): Delete.
4308         * Makefile.in (gtype-desc.o): Correct dependencies.
4309         (GTFILES): Add hashtab.h.
4310         (genautomata.o): Actually uses hashtab.h.
4311
4312         * Makefile.in (stringpool.o): Add $(GGC_H).
4313         (dwarf2asm.o): Likewise.
4314         (GTFILES): Add hashtable.h.
4315         * c-common.h (struct c_common_identifier): Use gengtype.
4316         * c-decl.h (c_mark_tree): Delete.
4317         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4318         * c-tree.h (struct lang_identifier): Use gengtype.
4319         (union lang_tree_node): New.
4320         (c_mark_tree): Delete prototype.
4321         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
4322         dwarf2_debug_hooks.
4323         * gengtype-lex.l (IWORD): Allow 'bool'.
4324         (ptr_alias): Match.
4325         * gengtype-yacc.y (ALIAS): New token.
4326         (type_option): New rule.
4327         (option): Use type_option.
4328         * gengtype.c (process_gc_options): New.
4329         (set_gc_used_type): Use it.
4330         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
4331         Add new variable 't' to hold the type of the field being processed.
4332         Add more error checking.  Use UNION_P when looking at 'desc' option.
4333         Handle language-specific structures containing other
4334         language-specific structures.
4335         (write_gc_types): Handle 'ptr_alias' option.
4336         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
4337         * ggc-common.c (ggc_pending_trees): Delete.
4338         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
4339         (ggc_mark_trees): Delete.
4340         (gt_ggc_m_tree_node): Delete.
4341         * ggc.h (ggc_pending_trees): Delete.
4342         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
4343         * hashtable.h (ht_identifier): Use gengtype.
4344         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
4345         * langhooks.h (struct lang_hooks): Delete mark_tree.
4346         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
4347         anyway.
4348         * system.h: Poison LANG_HOOKS_MARK_TREE.
4349         * tree.c (tree_node_structure): New.
4350         * tree.h (struct tree_common): Use gengtype.
4351         (struct tree_int_cst): Likewise.
4352         (struct tree_real_cst): Likewise.
4353         (struct tree_string): Likewise.
4354         (struct tree_complex): Likewise.
4355         (struct tree_vector): Likewise.
4356         (struct tree_identifier): Likewise.
4357         (struct tree_list): Likewise.
4358         (struct tree_vec): Likewise.
4359         (struct tree_exp): Likewise.
4360         (struct tree_block): Likewise.
4361         (struct tree_type): Likewise.
4362         (struct tree_decl): Likewise.
4363         (enum tree_structure_enum): New.
4364         (union tree_node): Use gengtype, with an alias.
4365         (tree_node_structure): Prototype.
4366         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4367
4368         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
4369         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
4370         to LANG_HOOKS_FUNCTION_FINAL.
4371         * Makefile.in (GTFILES): Add bitmap.h.
4372         * except.c (struct eh_region): Mark field 'aka' to be skipped.
4373
4374         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
4375         (alpha_init_machine_status): Give proper type.
4376         * Makefile.in (c-lang.o): Depend on gtype-c.h.
4377         (optabs.o): Depend on gt-optabs.h.
4378         (GTFILES): Add optabs.o.
4379         (gt-optabs.h): Add rule.
4380         * optabs.c: Include gt-optabs.h.
4381
4382         * gengtype.c (set_gc_used_type): Correct some errors in last change.
4383         (write_gc_structure_fields): If a field which should be NULL is
4384         not, abort.
4385         * c-pragma.c: Move struct align_stack and variable alignment_stack
4386         out from the ifdef.
4387
4388         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
4389         * config/xtensa/xtensa.c: Include gt-cris.h.
4390         (struct machine_function): Use gengtype to mark.
4391         * config/mmix/mmix.h (struct machine_function): Use gengtype
4392         to mark.
4393         * config/cris/t-cris: Add dependencies for gt-cris.h.
4394         * config/cris/cris.c: Include gt-cris.h.
4395         (struct machine_function): Use gengtype to mark.
4396         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
4397         to mark.
4398         * doc/tm.texi (Per-Function Data): Delete references to
4399         mark_machine_status.
4400         * config/ia64/ia64.c (ia64_override_options): Don't set
4401         mark_machine_status.
4402         * config/i386/i386.c (override_options): Likewise.
4403         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
4404         * config/arm/arm.c (arm_init_expanders): Likewise.
4405         * config/alpha/alpha.c (override_options): Likewise.
4406         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
4407         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
4408         (write_gc_structure_fields): Don't handle 'really' option.
4409         Handle 'maybe_null' option.
4410         (write_gc_types): Handle 'maybe_null' option.
4411         * function.h (struct function): Don't use "really".
4412         (mark_machine_status): Delete declaration.
4413         (mark_lang_status): Delete declaration.
4414         (gt_ggc_mr_machine_function): Delete prototype.
4415         (gt_ggc_mr_language_function): Delete prototype.
4416         * function.c (mark_machine_status): Delete.
4417         (mark_lang_status): Delete.
4418         (gt_ggc_mr_machine_function): Delete.
4419         (gt_ggc_mr_language_function): Delete.
4420         * c-tree.h (mark_c_function_context): Delete prototype.
4421         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
4422         * c-decl.c (struct language_function): Rename from struct
4423         c_language_function.  Update uses.  Use gengtype to mark.
4424         (mark_c_function_context): Delete.
4425         * c-common.h (struct c_language_function): Rename from struct
4426         language_function.
4427         (mark_stmt_tree): Delete prototype.
4428         (c_mark_lang_decl): Delete prototype.
4429         (mark_c_language_function): Delete prototype.
4430         * c-common.c (mark_stmt_tree): Delete.
4431         (c_mark_lang_decl): Delete.
4432         (mark_c_language_function): Delete.
4433
4434         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
4435         (lang_bitmap): New typedef.  Use where appropriate.
4436         (struct type): Add gc_used field, lang_struct field.
4437         (UNION_P): New macro.
4438         (new_structure): New prototype.
4439         (find_structure): Remove 'pos' parameter.  Change all callers.
4440         * gengtype-lex.l: Update for changes to find_structure.
4441         * gengtype-yacc.y (typedef_struct): Use new_structure.
4442         (yacc_ids): Suppress warning.
4443         (type): Use new_structure.
4444         * gengtype.c (string_type): Update for changes to struct type.
4445         (find_structure): Just find a structure, don't worry about
4446         creating one.
4447         (new_structure): New.
4448         (note_yacc_type): Use new_structure.
4449         (set_gc_used_type): New.
4450         (set_gc_used): New.
4451         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
4452         (write_gc_types): Handle TYPE_LANG_STRUCT.
4453         (write_gc_marker_routine_for_structure): New.
4454         (main): Call set_gc_used.  Add some calls to set_gc_used_type
4455         for places where GCC doesn't use gengtype properly yet.
4456         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
4457         (gt_ggc_m_tree_node): Likewise.
4458
4459         * varasm.c (copy_constant): Call expand_constant if we hit
4460         something we can't recognise.
4461
4462         * ggc-common.c (ggc_mark_rtvec_children): Delete.
4463         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
4464         (lang_mark_false_label_stack): Delete.
4465         * rtl.h (struct rtvec_def): Use gengtype to mark.
4466         * ggc.h (ggc_mark_rtvec): Delete.
4467         (gt_ggc_m_rtvec_def): Delete.
4468         (ggc_mark_nonnull_tree): Delete.
4469         (ggc_mark_rtvec_children): Delete prototype.
4470         (lang_mark_false_label_stack): Delete declaration.
4471
4472         * gengtype.h (note_yacc_type): Add prototype.
4473         * gengtype.c (note_yacc_type): New function.
4474         * gengtype-lex.l: Add lexer support for yacc files.
4475         * gengtype-yacc.y (start): Extract union from yacc files.
4476         (yacc_union): New rule.
4477         (yacc_typematch): New rule.
4478         (yacc_ids): New rule.
4479         (enum_items): Tweak for efficiency.
4480         (optionseq): Likewise.
4481
4482         * c-common.h (struct language_function): Use gengtype.
4483         (struct c_lang_decl): Likewise.
4484         * c-tree.h (struct lang_decl): Likewise.
4485         (struct lang_type): Likewise.
4486         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
4487         tree language substructures.
4488
4489         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
4490         ggc_mark_tree.
4491         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
4492
4493         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
4494
4495         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
4496         mark. Remove 'data.block.cleanup_ptr' field.
4497         (struct stmt_status): Use usual technique to mark struct nesting.
4498         (gt_ggc_mr_nesting_cond): Delete.
4499         (gt_ggc_mr_nesting_loop): Delete.
4500         (gt_ggc_mr_nesting_block): Delete.
4501         (gt_ggc_mr_nesting_case_stmt): Delete.
4502         (expand_start_cond): Set discriminator.
4503         (expand_start_loop): Likewise.
4504         (expand_start_null_loop): Likewise.
4505         (expand_start_bindings_and_block): Set discriminator.  Don't set
4506         deleted fields.
4507         (expand_decl_cleanup): Replace 'cleanup_ptr' with
4508         &thisblock->data.block.cleanups.
4509         (expand_start_case): Set discriminator.
4510         (expand_start_case_dummy): Set discriminator.
4511
4512         * ggc-callbacks.c: Remove.
4513
4514         * gengtype.h (struct type): Add 'u.s.bitmap' field.
4515         (find_structure): Add 'pos' parameter.
4516         * gengtype-lex.l: Update callers to find_structure.
4517         * gengtype-yacc.y: Likewise.
4518         * gengtype.c (find_structure): Allow for structures to be defined
4519         in multiple language backends.
4520         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
4521         (counter): Rename to gc_counter.
4522         (write_gc_structure_fields): Fail when writing out fields for
4523         an incomplete structure.  Ignore arrays of scalars.  Handle
4524         'tree_vec' special.
4525         (write_gc_types): Reset counter for each procedure written.
4526
4527         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
4528         (free_case_nodes): Delete.
4529         (expand_end_case_type): Delete call to free_case_nodes.
4530
4531         * Makefile.in (cselib.o): Include gt-<filename>.h.
4532         (gcse.o): Likewise.
4533         (profile.o): Likewise.
4534         (alias.o): Likewise.
4535         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
4536         alphabetize backend files.
4537         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
4538         * alias.c: Use gengtype for roots.
4539         * c-common.h (struct stmt_tree_s): Use gengtype.
4540         * c-decl.c: Use gengtype for roots.
4541         * cselib.c: Use gengtype for roots.
4542         * expr.c: Use gengtype for roots.
4543         * fold-const.c: Use gengtype for roots.
4544         * gcse.c: Use gengtype for roots.
4545         * gengtype-lex.l: Handle typedefs of function types.
4546         Allow for empty array bounds.
4547         Allow processing to stop on initialisers.
4548         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
4549         (semiequal): New rule.
4550         * gengtype.c (create_file): Tidy output files.
4551         (get_output_file_with_visibility): Fix paren warning.  Fix bug
4552         involving multiple input files mapping to one output file.
4553         (write_gc_structure_fields): Skip arrays of scalars.
4554         (write_gc_types): Tidy output files.
4555         (write_gc_root): New function.
4556         (write_gc_roots): Fix bugs, add support for roots that are
4557         structures.
4558         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
4559         (ggc_mark_tree_ptr): Delete.
4560         (ggc_add_rtx_root): Delete.
4561         (ggc_add_tree_root): Delete.
4562         (ggc_del_root): Delete.
4563         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
4564         allocate struct initial_value_struct.
4565         * profile.c: Use gengtype for roots.
4566         * sdbout.c: Use gengtype for roots.
4567         * varasm.c (mark_weak_decls): Delete unused prototype.
4568         (mark_const_hash_entry): Delete unused function.
4569         * config/darwin-protos.h: Use gengtype for roots.
4570         (machopic_add_gc_roots): Delete.
4571         * config/arm/arm.c: Use gengtype for roots.
4572         * config/arm/arm.h: Use gengtype for roots.
4573         * config/c4x/c4x-protos.h: Use gengtype for roots.
4574         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
4575         * config/d30v/d30v-protos.h: Use gengtype for roots.
4576         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
4577         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
4578         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
4579         * config/ia64/ia64-protos.h: Use gengtype for roots.
4580         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
4581         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
4582         * config/m68hc11/m68hc11.c (z_reg): Make global.
4583         (z_reg_qi): Make global.
4584         (m68hc11_add_gc_roots): Delete.
4585         * config/mcore/mcore-protos.h: Use gengtype for roots.
4586         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
4587         * config/mips/mips.c (mips_add_gc_roots): Delete.
4588         * config/mips/mips.h: Use gengtype for roots.
4589         * config/mmix/mmix.c (override_options): Use gengtype for roots.
4590         * config/mmix/mmix.h: Use gengtype for roots.
4591         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
4592         * config/mn10200/mn10200.h: Use gengtype for roots.
4593         * config/pa/pa.c: Use gengtype for roots, marking.
4594         (struct deferred_plabel): Use GGC, gengtype.
4595         (pa_add_gc_roots): Delete.
4596         (mark_deferred_plabels): Delete.
4597         * config/pj/pj-protos.h: Use gengtype for roots.
4598         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
4599         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
4600         machopic_add_gc_roots.
4601         * config/rs6000/rs6000.h: Use gengtype for roots.
4602         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
4603         (gt-darwin.h): Add rule.
4604         * config/sh/sh.c: Use gengtype for roots.
4605         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
4606         (gt-sh.h): Add rule.
4607         * config/sparc/sparc.c: Use gengtype for roots.
4608         (sparc_add_gc_roots): Delete.
4609         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
4610         (mark_ultrasparc_pipeline_state): Delete.
4611         * config/sparc/sparc.h: Use gengtype for roots.
4612
4613         * Makefile.in (c-parse.o): Update dependencies.
4614         (c-common.o): Likewise.
4615         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
4616         Add dependencies for the files they generate.
4617         * c-common.c: Replace ggc_add_* uses with GTY annotations.
4618         * c-common.h: Likewise.
4619         * c-decl.c: Likewise.
4620         (gt_ggc_mp_binding_level): Delete.
4621         * c-lang.c: Include gtype-c.h.
4622         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
4623         gt-c-parse.h.
4624         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
4625         (gt_ggc_mp_align_stack): Delete.
4626         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
4627         * function.c: Replace ggc_add_* uses with GTY annotations.
4628         (gt_ggc_mp_function): Delete.
4629         * function.h: Replace ggc_add_* uses with GTY annotations.
4630         * gengtype.c (lang_names): New.
4631         (NUM_BASE_FILES): New.
4632         (open_base_files): Create language base files.
4633         (startswith): New.
4634         (get_file_basename): New.
4635         (get_base_file_bitmap): New.
4636         (get_output_file_with_visibility): Rename from get_output_file.
4637         Add more mappings for various C/Objc filenames.
4638         (finish_root_table): New.
4639         (write_gc_roots): Handle dependencies and scoping properly.
4640         * gengtype.h: Add prototypes for new functions.
4641         * ggc-common.c (struct deletable_root): Delete.
4642         (deletables): Delete.
4643         (ggc_add_deletable_root): Delete.
4644         (ggc_mark_roots): No need to deal with deleted functionality.
4645         * ggc.h (ggc_add_deletable_root): Delete prototype.
4646         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
4647         (gtype-objc.h): Add rule to create.
4648         * objc/config-lang.in (gtfiles): New.
4649         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
4650         ggc_add_* with GTY markers.  Include gtype-objc.h.
4651         (ggc_mark_imp_list): Delete.
4652         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
4653         * objc/objc-lang.c: Random Whitespace Change.
4654
4655         * except.h (exception_handler_labels): Delete.
4656         (get_exception_handler_labels): New.
4657         * except.c (exception_handler_labels): Delete.
4658         (struct eh_status): Add exception_handler_labels field.
4659         (doing_eh): Don't add exception_handler_labels as root.
4660         (free_eh_status): Don't need to free exception_handler_labels.
4661         (get_exception_handler_labels): New.
4662         (find_exception_handler_labels): Update for move of
4663         exception_handler_labels.
4664         (remove_exception_handler_label): Likewise.
4665         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
4666         * jump.c (rebuild_jump_labels): Likewise.
4667         * loop.c (find_and_verify_loops): Likewise.
4668         * sched-rgn.c (is_cfg_nonregular): Likewise.
4669
4670         * gengtype.c (write_gc_structure_fields): Handle variable-length
4671         TYPE_ARRAYs.
4672
4673         * varasm.c (struct weak_syms): Use GGC, gengtype.
4674         (mark_weak_decls): Delete.
4675         (weak_decls): Likewise.
4676         (add_weak): Likewise.
4677         (remove_from_pending_weak_list): Likewise.
4678         (init_varasm_once): Likewise.
4679
4680         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
4681         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
4682         stor-layout.c, regclass.c, and lists.c.
4683         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
4684         gt-regclass.h and gt-lists.h on s-gtype.
4685         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
4686         * except.c: Use gengtype for roots.
4687         * explow.c: Use gengtype for roots.  Include gt-explow.h.
4688         * expr.h (init_stor_layout_once): Delete prototype.
4689         * function.c: Use gengtype for roots.
4690         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
4691         * gengtype-yacc.y (start): Can also be an externstatic.
4692         (externstatic): New production.
4693         (struct_fields): Correct array bounds inversion for 2-d arrays.
4694         * gengtype.c (variables): New variable.
4695         (note_variable): New function.
4696         (get_output_file): Include libfuncs.h into gtype-desc.c.
4697         (get_output_file_name): New function.
4698         (write_gc_structure_fields): Suppress warnings.
4699         (write_gc_types): Make static.
4700         (put_mangled_filename): New function.
4701         (write_gc_roots): New function.
4702         (main): Call write_gc_roots.
4703         * gengtype.h (note_variable): Prototype.
4704         (get_output_file_name): Prototype.
4705         (write_gc_types): Delete prototype.
4706         * ggc.h: Clean up unnecessary structure predefinitions.
4707         (struct ggc_root_tab): Define.
4708         (gt_ggc_m_rtx_def): Make function, not macro.
4709         (gt_ggc_m_tree_node): Likewise.
4710         * libfuncs.h: Use gengtype for roots.
4711         * lists.c: Use gengtype for roots.  Include gt-lists.h.
4712         (init_EXPR_INSN_LIST_cache): Delete.
4713         * optabs.c: Use gengtype for roots.
4714         (gt_ggc_mp_optab): Delete.
4715         * optabs.h: Use gengtype for roots.
4716         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
4717         * rtl.h: Use gengtype for roots.
4718         (init_EXPR_INSN_LIST_cache): Delete prototype.
4719         * stor-layout.c: Use gengtype for roots.
4720         Include gt-stor-layout.h.
4721         (init_stor_layout_once): Delete.
4722         * toplev.c: Use gengtype for roots.  Delete calls to deleted
4723         routines.
4724         * tree.c: Use gengtype for roots.
4725         * tree.h: Use gengtype for roots.
4726         * varasm.c: Use gengtype for roots.
4727
4728         * Makefile.in (GTFILES): Add @all_gtfiles@.
4729         * configure: Regenerate.
4730         * configure.in: Construct all_gtfiles from the gtfiles definitions
4731         in config-lang.in.
4732         * gengtype-yacc.y (type): Warn about duplicate structure names.
4733         * gengtype.c (get_output_file): Handle .c files in language
4734         subdirectories.
4735
4736         * Makefile.in (GTFILES): Run gengtype on all the config files
4737         and on the target .c file.
4738         * except.c (mark_eh_region): Delete.
4739         (init_eh_for_function): Use GGC on struct eh_status.
4740         (mark_eh_status): Delete.
4741         (free_eh_status): Use GGC.
4742         (expand_eh_region_start): Use GGC to
4743         (collect_eh_region_array): Allocate last_region_number using GGC.
4744         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
4745         (remove_eh_handler): Let GGC free struct eh_region.
4746         (add_call_site): Use GGC to reallocate call_site_record array.
4747         * function.c (init_machine_status): Update calling sequence.
4748         (mark_machine_status): Likewise.
4749         (mark_lang_status): Likewise.
4750         (prepare_function_start): Update init_machine_status call.
4751         (mark_function_status): Delete.
4752         (maybe_mark_struct_function): Delete.
4753         (ggc_mark_struct_function): Delete.
4754         (gt_ggc_mp_function): New.
4755         (gt_ggc_mr_machine_function): New.
4756         (gt_ggc_mr_language_function): New.
4757         (init_function_once): Use canonical names.
4758         * function.h (struct function): Use gengtype.
4759         (init_machine_status): Return the structure.
4760         (mark_machine_status): Take a 'void *'.
4761         (mark_lang_status): Likewise.
4762         * ggc-common.c (ggc_mark_trees): Use canonical name for
4763         ggc_mark_struct_function.
4764         * tree.h (ggc_mark_struct_function): Delete prototype.
4765         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
4766         (alpha_init_machine_status): Likewise.
4767         (override_options): Use canonical name for alpha_mark_machine_status.
4768         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
4769         * config/arm/arm.h (struct machine_function): Use gengtype.
4770         * config/arm/arm.c (arm_mark_machine_status): Delete.
4771         (arm_init_machine_status): Update calling sequence.
4772         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
4773         * config/cris/cris.c (cris_init_machine_status): Update
4774         calling sequence.
4775         * config/d30v/d30v.h (struct machine_function): Use gengtype.
4776         * config/d30v/d30v.c (d30v_init_machine_status): Update
4777         calling sequence.
4778         (d30v_mark_machine_status): Delete.
4779         * config/i386/i386.c: Include gt-i386.h.
4780         (struct machine_function): Use gengtype.
4781         (ix86_init_machine_status): Update calling sequence.
4782         (ix86_mark_machine_status): Delete.
4783         (override_options): Use canonical namke for ix86_mark_machine_status.
4784         * config/ia64/ia64.h (struct machine_function): Use gengtype.
4785         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
4786         sequence.
4787         (ia64_mark_machine_status): Delete.
4788         (ia64_override_options): Use canonical name for
4789         ia64_mark_machine_status.
4790         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
4791         sequence.
4792         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
4793         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
4794         * gengtype.c (get_output_file): Fix warning.
4795         (main): Add prototype to suppress warning.
4796         * tree.c: Remove tree_hash_mark prototype.
4797
4798         * tree.h (init_stmt): Delete prototype.
4799         * toplev.c (lang_independent_init): Don't call init_stmt.
4800         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
4801         (stmt_obstack): Delete.
4802         (POPSTACK): No need to free 'struct nesting'.
4803         (gt_ggc_mr_nesting_cond): Use canonical names.
4804         (gt_ggc_mr_nesting_loop): Use canonical names.
4805         (gt_ggc_mr_nesting_block): Use canonical names.
4806         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
4807         (mark_stmt_status): Delete.
4808         (init_stmt): Delete.
4809         (clear_last_expr): Clear both last_expr_type and last_expr_value.
4810         Use it everywhere that last_expr_type was cleared.
4811         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
4812         (zap_lists): Delete.
4813         * ggc.h (ggc_add_deletable_root): Prototype.
4814         (mark_stmt_status): Remove prototype.
4815         * ggc-common.c (ggc_add_deletable_root): New.
4816         (ggc_mark_roots): Handle deletable roots.
4817         * function.c (ggc_mark_struct_function): Use canonical name
4818         for mark_stmt_status.
4819         * emit-rtl.c (free_sequence_stack): New.
4820         (start_sequence): Use a freelist for sequences.
4821         (end_sequence): Likewise.
4822         (init_emit_once): Add free_sequence_stack as a deleteable root.
4823         * c-pragma.c Include gt-c-pragma.h.
4824         (struct align_stack): Use gengtype.
4825         (push_alignment): Use GGC for struct align_stack.
4826         (mark_align_stack): Delete.
4827         (gt_ggc_mp_align_stack): New.
4828         (init_pragma): Use canonical name for mark_align_stack.
4829         * c-decl.c: Include gt-c-decl.h.
4830         (struct binding_level): Use gengtype.
4831         (make_binding_level): Use GGC; handle the freelist here.
4832         (pop_binding_level): New.
4833         (pushlevel): Move code into make_binding_level.
4834         (push_label_level): Likewise.
4835         (poplevel): Move code into pop_binding_level.
4836         (pop_label_level): Likewise.
4837         (mark_binding_level): Delete.
4838         (gt_ggc_mp_binding_level): New.
4839         (c_init_decl_processing): Use canonical name for mark_binding_level.
4840         Add free_binding_level as deletable root.
4841         (mark_c_function_context): Use canonical name for mark_binding_level.
4842         * Makefile.in (c-decl.o): Add gt-c-decl.h.
4843         (c-pragma.o): Add gt-c-pragma.h.
4844         (GTFILES): Add c-decl.c and c-pragma.c.
4845         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
4846
4847         * tree.c (struct type_hash): Use gengtype.
4848         (init_obstacks): Use canonical name for type_hash_mark.
4849         (type_hash_mark): Delete.
4850         Include gt-tree.h.
4851         * rtl.h (struct mem_attrs): Use gengtype.
4852         * optabs.h (struct optab): Use gengtype.
4853         * optabs.c (expand_binop): Squish signed/unsigned warning.
4854         (mark_optab): Make local, use canonical name, use autogenerated
4855         marker procedure.
4856         (init_optabs): Use canonical name for mark_optab.
4857         (new_optab): Use GGC to allocate optabs.
4858         * ggc.h: Delete mark_optab prototype.
4859         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
4860         mem_attrs marker procedure.
4861         * gengtype.c (get_output_file): Include headers in gtype-desc.c
4862         explicitly rather than deducing them from file names.
4863         (write_gc_structure_fields): Handle arrays of structures.
4864         (main): Return non-zero exit code if errors occur during output.
4865         * emit-rtl.c (mem_attrs_mark): Delete.
4866         (init_emit_once): Use canonical name for mem_attrs marker procedure.
4867         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
4868         (tree.o): Depend on gt-tree.h.
4869         (GTFILES): Add rtl.h, optabs.h, tree.c.
4870         (gt-tree.h): Add it to s-gtype rule.
4871
4872         * .cvsignore: Ignore gengtype flex/bison generated files.
4873         * Makefile.in (GGC_H): Add gtype-desc.h.
4874         (OBJS): Add gtype-desc.o.
4875         (GEN): Add gengtype.
4876         (STAGESTUFF): Add gengtype.
4877         (varasm.o): Add gt-varasm.h.
4878         (stmt.o): Add gt-stmt.h.
4879         (except.o): Add gt-except.h.
4880         (integrate.o): Add gt-integrate.h.
4881         (GTFILES): New.
4882         Add new rules for new files.
4883         * configure: Regenerate.
4884         * configure.in: Correct defaults.h paths.
4885         * emit-rtl.c (mark_sequence_stack): Delete.
4886         (mark_emit_status): Delete.
4887         (start_sequence): Allocate sequence structures using GGC.
4888         (end_sequence): Allocate sequence structures using GGC.
4889         * except.c: Use gengtype for various structures.  Include
4890         gt-except.h.
4891         * expr.c (mark_expr_status): Delete.
4892         * function.c: Use gengtype for various structures.  Include
4893         gt-function.h.
4894         (mark_function_status): Use standard gt_ggc names for marker functions.
4895         (ggc_mark_struct_function): Likewise.
4896         * function.h: Use gengtype for various structures.
4897         * gengtype-lex.l: New file.
4898         * gengtype-yacc.y: New file.
4899         * gengtype.c: New file.
4900         * gengtype.h: New file.
4901         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
4902         the standard names.  Remove some now-unnecessary prototypes.
4903         * integrate.c: Use gengtype for various structures.  Include
4904         gt-integrate.h.
4905         (mark_hard_reg_initial_vals): Delete.
4906         * integrate.h (mark_hard_reg_initial_vals): Delete.
4907         * stmt.c: Use gengtype for various structures.  Include
4908         gt-stmt.h.
4909         (mark_case_node): Delete.
4910         (mark_goto_fixup): Delete.
4911         (mark_stmt_status): Use standard gt_ggc names for marker functions.
4912         * system.h: Define GTY to empty.   In flex/bison files,
4913         don't poison malloc or realloc, instead just define them to
4914         xmalloc and xrealloc.
4915         * varasm.c: Use gengtype for various structures.  Include
4916         gt-varasm.h.  Use standard gt_ggc names for marker functions.
4917         (mark_pool_constant): Delete.
4918         (mark_varasm_status): Delete.
4919         (decode_rtx_const): #if 0 out non-typesafe hack.
4920
4921         * function.h (free_lang_status): Mark as obsolete.
4922         * function.c (free_lang_status): Mark as obsolete.
4923         * c-decl.c (push_c_function_context): Use GC to allocate and free
4924         struct language_function.
4925         (pop_c_function_context): Likewise.
4926         * c-common.c (mark_c_language_function): Mark struct
4927         language_function.
4928
4929         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
4930         Document that the machine_function structures must be allocated
4931         using GC.  Update mark_machine_status documentation.
4932         * function.h: Don't declare free_machine_status.
4933         * function.c (free_machine_status): Don't define.
4934         (free_after_compilation): Don't call free_machine_status.
4935         (ggc_mark_struct_function): Mark f->machine.  Call
4936         mark_machine_status only on non-NULL pointers.
4937         * system.h: Poison free_machine_status.
4938         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
4939         struct machine_function.
4940         (xtensa_free_machine_status): Delete.
4941         (override_options): Don't set free_machine_status.
4942         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
4943         free_machine_status.
4944         (rs6000_init_machine_status): Use GC on struct machine_function.
4945         (rs6000_free_machine_status): Delete.
4946         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
4947         machine_function.
4948         (ia64_mark_machine_status): Likewise.
4949         (ia64_free_machine_status): Delete.
4950         (ia64_override_options): Don't set free_machine_status.
4951         * config/i386/i386.c (override_options): Don't set
4952         free_machine_status.
4953         (ix86_init_machine_status): Use GC on struct machine_function.
4954         (ix86_mark_machine_status): Likewise.
4955         (ix86_free_machine_status): Delete.
4956         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
4957         machine_function.
4958         (d30v_mark_machine_status): Likewise.
4959         (d30v_free_machine_status): Delete.
4960         (d30v_init_expanders): Don't set free_machine_status.
4961         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
4962         machine_function.
4963         (arm_init_machine_status): Likewise.
4964         (arm_free_machine_status): Delete.
4965         (arm_init_expanders): Don't set free_machine_status.
4966         * config/alpha/alpha.c (override_options): Don't set
4967         free_machine_status.
4968         (alpha_init_machine_status): Use GC on struct machine_function.
4969         (alpha_mark_machine_status): Likewise.
4970         (alpha_free_machine_status): Delete.
4971
4972         * varasm.c (compare_constant): Fix typo.
4973
4974         * varasm.c: Don't include obstack.h.
4975         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
4976         (struct rtx_const): Give substructures names, improve formatting.
4977         (struct constant_descriptor): Delete.
4978         (struct constant_descriptor_tree): New, based on constant_descriptor.
4979         (const_hash_table): Is a hash table of trees.
4980         (mark_const_hash_entry): Is used for hashes of trees.  Mark
4981         constant_descriptor_tree structure.
4982         (mark_const_str_htab_1): Mark deferred_string structure.
4983         (compare_constant): Rewrite to compare trees.
4984         (compare_constant_1): Delete.
4985         (record_constant): Delete.
4986         (record_constant_1): Delete.
4987         (output_constant_def): Use struct constant_descriptor_tree.
4988         Don't duplicate trees twice.
4989         (struct constant_descriptor_rtx): New.
4990         (struct pool_constant): Used for rtx constants.
4991         (init_varasm_status): Update for change to struct varasm_status.
4992         (mark_varasm_status): Likewise.
4993         (free_varasm_status): Delete.
4994         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
4995         (record_constant_rtx): Likewise.
4996         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
4997         (force_const_mem): Likewise.
4998         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
4999         * function.c (free_after_compilation): Don't use free_varasm_status.
5000         * function.h: Don't prototype free_varasm_status.
5001
5002         * ggc-common.c (ggc_realloc): Handle X being NULL.
5003
5004         * ggc-common.c (ggc_realloc): New function.
5005         * ggc.h: Prototype it.
5006         * emit-rtl.c (free_emit_status): Delete.
5007         (init_emit): Allocate emit subarrays using GC.
5008         (gen_reg_rtx): Reallocate subarrays using GC.
5009         (init_emit): Use GC to allocate 'struct emit_status' and its
5010         subarrays.
5011         (mark_emit_status): Mark structure and its subarrays.
5012         * stmt.c (free_stmt_status): Delete.
5013         * expr.c (free_expr_status): Delete.
5014         * function.h: Remove prototypes for deleted functions.
5015         * function.c (free_after_compilation): Don't use deleted functions.
5016         Don't call free() on x_parm_reg_stack_loc.
5017         (free_after_parsing): Don't use free_stmt_status.
5018         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
5019         (mark_function_status): Mark x_parm_reg_stack_loc.
5020
5021         * varasm.c (init_varasm_status): Use GC to allocate
5022         'struct varasm_status' and its fields x_const_rtx_hash_table
5023         and x_const_rtx_sym_hash_table.
5024         (mark_varasm_status): Mark them.
5025         (free_varasm_status): Use GC to free them.
5026         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
5027         (mark_expr_status): Mark the structure itself.
5028         (free_expr_status): Use GC to free the structure.
5029         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
5030         (mark_stmt_status): Mark the 'struct stmt_status' itself.
5031         (init_stmt_for_function): Allocate the structure for GC.
5032
5033         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
5034         (equate_type_number_to_die): Likewise.
5035         * tree.h (TYPE_SYMTAB_DIE): New macro.
5036         (struct die_struct): Predeclare.
5037         (struct tree_type): Add field symtab.die.   Add a tag
5038         to the union type of field symtab.
5039
5040         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
5041         'struct rtvec_def *', not 'struct rtvec_def'.
5042
5043         * function.h (original_arg_vector): Make a real rtvec.
5044         * function.c (ggc_mark_struct_function): Adjust.
5045         * integrate.c (expand_inline_function): Adjust.
5046
5047 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
5048
5049         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
5050         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
5051         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
5052         (TARGET_VERSION_CPU): Define according to the
5053         default target.
5054         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
5055         TARGET_VERSION_CPU.
5056         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
5057         if TARGET_SHMEDIA64.
5058         (LINK_DEFAULT_CPU_EMUL): Define according to the
5059         default target.
5060         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
5061         (SUBTARGET_LINK_SPEC): Define.
5062         (LINK_SPEC): Use SH_LINK_SPEC.
5063         (ASM_SPEC): Remove.
5064         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
5065         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
5066         and TARGET_SHMEDIA64 which abort, for now.
5067         * config/sh/t-netbsd-sh5: New file.
5068         * config/sh/t-netbsd-sh5-32: New file.
5069         * config/sh/t-netbsd-sh5-64: New file.
5070
5071 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5072             Richard Henderson  <rth@redhat.com>
5073
5074         * config/alpha/alpha.c (reg_or_const_int_operand): New.
5075         (some_operand, input_operand): Accept CONST_VECTOR.
5076         (alpha_extra_constraint): Add 'W'.
5077         (alpha_expand_zap_mask): New.
5078         (alpha_expand_builtin_vector_binop): New.
5079         (enum alpha_builtin): New.
5080         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
5081         (alpha_init_builtins, alpha_expand_builtin): New.
5082         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
5083         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
5084         (PREDICATE_CODES): Update.
5085         * config/alpha/alpha-protos.h: Update.
5086         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
5087         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
5088         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
5089         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
5090         (movv2si, movv2si_fix, movv2si_nofix): New.
5091         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
5092         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
5093         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
5094         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
5095         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
5096         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
5097         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
5098         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
5099         builtin_unpkbw, unpkbw): New.
5100         * doc/extend.texi (Alpha Built-in Functions): New.
5101
5102 2002-06-03  Richard Henderson  <rth@redhat.com>
5103
5104         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
5105         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
5106
5107 2002-06-03  Richard Henderson  <rth@redhat.com>
5108
5109         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
5110
5111         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
5112         (const0_operand): New.
5113         (reg_or_fp0_operand, fp0_operand): Remove.
5114         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5115         * config/alpha/alpha-protos.h: Update.
5116         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
5117         and fp0_operand with reg_or_0_operand and const0_operand.
5118
5119 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
5120
5121         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
5122
5123 2002-06-03  Roger Sayle  <roger@eyesopen.com>
5124
5125         * gcse.c (cprop_jump): Use single_set to get the pattern
5126         from the setcc argument.
5127
5128 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
5129
5130         * diagnostic.h (diagnostic_count): Move from output_buffer to
5131         diagnostic_context.
5132         (diagnostic_kind_count): Adjust definition.
5133
5134 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
5135
5136         * except.c (except.c): Do not rebuild CFG.
5137         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
5138         optimization.
5139
5140 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
5141
5142         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
5143         * toplev.c: Include cfglahout.h
5144         * Makefile.in (toplev.c): Add dependnecy.
5145
5146 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5147
5148         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
5149         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
5150         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
5151
5152 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5153
5154         * config/ns32k/netbsd.h: Update copyright years.
5155         (TARGET_OS_CPP_BUILTINS): Define.
5156         (CPP_PREDEFINES): Remove.
5157         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
5158         (TARGET_CPU_CPP_BUILTINS): Define.
5159
5160 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5161
5162         * emit-rtl.c: Fix formatting.
5163         * errors.h: Likewise.
5164         * except.c: Likewise.
5165         * explow.c: Likewise.
5166         * expmed.c: Likewise.
5167         * expr.c: Likewise.
5168         * expr.h: Likewise.
5169
5170 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5171
5172         * config/h8300/elf.h: Fix formatting.
5173         * config/h8300/rtems.h: Likewise.
5174
5175 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5176
5177         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
5178
5179 2002-06-02  Tom Tromey  <tromey@redhat.com>
5180
5181         * fixinc/fixincl.x: Rebuilt.
5182         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
5183
5184 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5185
5186 config/i370:
5187         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
5188         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
5189         * mvs.h: Similarly.
5190         * oe.h: Similarly.
5191
5192 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
5193
5194         * final.c (final):  Allow notes to not have computed addresses;
5195         kill no longer needed STACK_REGS ifdef.
5196
5197 2002-06-02  Richard Henderson  <rth@redhat.com>
5198
5199         * gcse.c (bypass_conditional_jumps): Fix typo last change.
5200
5201 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5202
5203         * loop.c (emit_prefetch_instructions): Properly place the address
5204         computation.
5205
5206 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
5207
5208         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
5209         (set_block_for_insn): Turn into macro.
5210         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
5211         * cfglayout.c (insn_scopes): Kill.
5212         (scope_to_insns_initialize): Do not use insn_scopes.
5213         (scope_to_insns_finalize): Likewise.
5214         (duplicate_insn_chain): Likewise.
5215         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
5216         * cfgrtl.c (basic_block_for_insn): Kill.
5217         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
5218         (create_basic_block_structure): Use reorder_insns.
5219         (compute_bb_for_insn): Do not use basic_block_for_insn.
5220         (merge_blocks_nomove): Likewise.
5221         (update_bb_for_insn): Likewise.
5222         (verify_flow_info): Likewise.
5223         (set_block_for_insn): Kill.
5224         * combine.c (try_combine): Update gen_rtx_INSN call.
5225         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
5226         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
5227         scopes and BBs.
5228         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
5229         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
5230         Clear BB.
5231         (emit_insns_after): Simplify.
5232         (emit_copy_of_insn_after): Copy scope.
5233         * final.c (final_start_function): Lower scopes.
5234         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
5235         * integrate.c (copy_insn_list): Cope scopes.
5236         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
5237         * loop.c (loop_optimize): Do not care block notes.
5238         * print-rtl.c (print_rtx): Print BB.
5239         * recog.c (apply_change_group): Simplify.
5240         * rtl.c (copy_rtx): Handle 'B'.
5241         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
5242         * rtl.h (Field accessors): Update indexes.
5243         * sched-ebb.c (schedule_ebbs): Do not lower notes.
5244         * sched-rgn.c (schedule_insns): Likewise.
5245         * toplev.c (rest_of_compilation): Lower notes.
5246         * unroll.c (unroll_loop): Do not care scoping notes.
5247         (copy_loop_body): Copy scopes.
5248
5249 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5250
5251 config/h8300:
5252         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
5253         SUBTARGET_SPEC.
5254         * rtems.h: Similarly.
5255         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
5256         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
5257         (TARGET_CPU_CPP_BUILTINS): Use.
5258
5259 2002-06-02  Richard Henderson  <rth@redhat.com>
5260
5261         * alias.c: Include target.h.
5262         (mark_constant_function): Use targetm.binds_local_p instead
5263         of checking TREE_PUBLIC ourselves.
5264         * Makefile.in (alias.o): Add TARGET_H.
5265
5266 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5267
5268         * c-lex.c: Update copyright and file description.
5269
5270 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5271
5272         * config/fr30/fr30.h: Update to new CPP macros.
5273
5274 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5275
5276         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
5277
5278 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5279             Zack Weinberg <zack@codesourcery.com>
5280
5281         * c-common.c (c_common_init): Override cpplib's default
5282         warn_long_long setting.
5283         * c-lex.c (lex_number): Replace with interpret_integer,
5284         interpret_float, narrowest_unsigned_type and
5285         narrowest_signed_type, taking advantage of the new
5286         cpplib functionality.
5287         * cpperror.c (_cpp_begin_message): If a warning is turned
5288         into an error, avoid printing "warning:".
5289         * cppexp.c (cpp_num_sign_extend): New.
5290         * cppinit.c: Update comment.
5291         * cpplib.h (cpp_num_sign_extend): New.
5292         * tree.h: Update comment.
5293
5294 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
5295
5296         * diagnostic.h (struct diagnostic_context):  Add new member
5297         internal_error.
5298         (internal_error_function): Remove declaration.
5299         * diagnostic.c (internal_error_function): Remove definition..
5300         (internal_error): Adjust use.
5301
5302 2002-06-02  Richard Henderson  <rth@redhat.com>
5303
5304         * rtl.h (CC0_P): New.
5305         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
5306         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
5307         (bypass_block): Save old dest block for dump text.
5308         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
5309         Allow only true SET insns, not single_set.
5310
5311 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
5312
5313         * diagnostic.c (diagnostic_finish): Rename to output_flush.
5314         (clear_disgnostic_info): Rename to output_clear_data.  Use false
5315         instead of 0 for boolean value.
5316         Adjust function call throughout.
5317
5318 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
5319
5320         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
5321         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
5322
5323 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5324
5325         * d30v.h (CPP_PREDEFINES): Replace with
5326         (TARGET_CPU_CPP_BUILTINS): New.
5327
5328 2002-06-02  Roger Sayle  <roger@eyesopen.com>
5329
5330         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
5331
5332 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
5333
5334         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
5335
5336 2002-06-02  Richard Henderson  <rth@redhat.com>
5337
5338         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
5339
5340 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5341
5342         Support for C++ constructors/destructors.
5343         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
5344         instead of looping if main() returns.
5345         (asm_file_start): Output global symbols that cause .data and .bss
5346         initialization code to be linked in, unconditionally for now.
5347         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
5348         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
5349         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5350         (LIBSTDCXX): New.
5351         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
5352         (__tablejump__): New.
5353         (__do_copy_data, __do_clear_bss): New.
5354         (__do_global_ctors, __do_global_dtors): New.
5355         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
5356         _ctors, _dtors.
5357
5358 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5359
5360         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
5361         (CPP_SPEC, CPP_PREDEFINES): Kill.
5362         * c4x/rtems.h (CPP_PREDEFINES): Kill.
5363         (TARGET_OS_CPP_BUILTINS): New.
5364
5365 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
5366
5367         * Makefile.in (tracer.o): New.
5368         * params.def (TRACER_*): New options.
5369         * rtl.h (tracer): Declare.
5370         * timevar.def (TV_TRACER): New.
5371         * toplev.c (dump_file_index): Add DFI_tracer.
5372         (dump_file_info): Add tracer.
5373         (flag_tracer): New.
5374         (lang_indepdenent_options): Add tracer.
5375         (rest_of_compilation): Call tracer.
5376         * tracer.c: New file.
5377         * invoke.texi (-ftracer): Document.
5378         (--param tracer-*): Document.
5379
5380 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
5381
5382         * tree-inline.c (expand_call_inline): Make the statement
5383         expression we generate have a COMPOUND_STMT.
5384
5385 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5386
5387         * gcse.c (cprop_cc0_jump): Function deleted.
5388         (cprop_jump): Take an additional argument which is the possibly
5389         NULL cc setting insn immediately before the conditional jump.
5390         When a MODE_CC set is present, substitute it into the JUMP_INSN
5391         before attempting the constant propagation.
5392         (cprop_insn):  Recognize cc setters followed by conditional jumps
5393         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
5394         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
5395         (find_bypass_set): New function based upon find_avail_set used by
5396         cprop, but finds constant expressions available at the end of
5397         basic blocks.
5398         (bypass_block): New function.  Given a basic block that begins
5399         with a conditional jump and multiple incoming edges, perform
5400         the jump bypass optimization.
5401         (bypass_conditional_jumps): New function.  Call bypass_block with
5402         each suitable basic block in the CFG using a simple single pass.
5403
5404 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5405
5406         * tree.c (real_minus_onep): New function to test for -1.0.
5407         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
5408
5409 2002-06-01  Roger Sayle  <roger@eyesopen.com>
5410
5411         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
5412         and "!p && !q" into "(p|q) == 0" under suitable conditions.
5413
5414 2002-06-01  Andreas Jaeger  <aj@suse.de>
5415
5416         * cppexp.c (cpp_classify_number): Cast precission to int for
5417         correct printf format.
5418
5419 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5420
5421         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
5422         expected, but don't really exist: atmega83, atmega85, attiny10.
5423         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
5424         emulations for all devices.
5425         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
5426         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
5427
5428 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
5429
5430         * config/h8300/h8300-protos.h: Add a prototype for
5431         h8300_shift_needs_scratch_p.
5432         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
5433         * config/h8300/h8300.h (OK_FOR_R): New.
5434         (OK_FOR_S): Likewise.
5435         (OK_FOR_T): Likewise.
5436         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
5437         * config/h8300/h8300.md (anonymous shift patterns): Use
5438         constraints R, S, and T.
5439
5440 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5441
5442         * basic-block.h (struct basic_block_def): New field loop_father.
5443         (BB_VISITED): New flag.
5444         (struct loop): New field pred, removed field shared.
5445         (struct loops): New field parray.
5446         (LOOP_EXITS_DOMS): Removed.
5447         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
5448         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
5449         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
5450         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
5451         verify_loop_structure): Declare.
5452         * cfg.c (entry_exit_blocks): Initialize loop_father field.
5453         * cfganal.c (dfs_enumerate_from): New function.
5454         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
5455         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5456         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
5457         flow_loop_dump, flow_loops_dump, flow_loops_free,
5458         flow_loop_tree_node_add, flow_loop_level_compute,
5459         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
5460         flow_loop_outside_edge_p): Modified for new infrastructure.
5461         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
5462         redirect_edge_with_latch_update, flow_loop_free): New static functions.
5463         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
5464         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
5465         find_common_loop, verify_loop_structure, loop_latch_edge,
5466         loop_preheader_edge): New functions.
5467         (flow_loops_cfg_dump): Do not show dominators, as this information
5468         does not remain up to date long.
5469         (flow_loops_find): Store results in new format.
5470         * predict.c (propagate_freq, estimate_probability,
5471         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
5472         infrastructure.
5473
5474 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
5475
5476         * except.c (nothrow_function_p): Walk epilogue delay list
5477         checking the insn, not the chain for potential throws.
5478
5479 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
5480
5481         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
5482         (install): Refer to install-cpp directly.
5483         (uninstall-cpp): Folded into uninstall rule.
5484         * configure.in: Delete all code relating to --disable-cpp.
5485         * configure: Regenerate.
5486         * config/t-install-cpp: Delete.
5487
5488 2002-05-31  Richard Henderson  <rth@redhat.com>
5489
5490         * configure.in (HAVE_AS_TLS): Add alpha tests.
5491         * configure: Rebuild.
5492         * config/alpha/alpha.c (TARGET_AS_TLS): New.
5493         (alpha_tls_size, alpha_tls_size_string): New.
5494         (overide_options): Set it.  Always install machine_status hooks.
5495         (input_operand): Accept got tls predicates.
5496         (local_symbol_p): Merge into ...
5497         (local_symbolic_operand): ... here.  Reject tls symbols.
5498         (global_symbolic_operand): Likewise.
5499         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
5500         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
5501         (tp16_symbolic_operand, tp32_symbolic_operand): New.
5502         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
5503         (alpha_encode_section_info): Handle TLS symbols.
5504         (alpha_strip_name_encoding): Likewise.
5505         (alpha_legitimate_address_p): Likewise.
5506         (alpha_legitimize_address): Likewise.
5507         (alpha_expand_mov): Early exit to avoid nop moves.
5508         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
5509         (alpha_init_machine_status, alpha_mark_machine_status,
5510         alpha_free_machine_status): Always define.
5511         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
5512         (print_operand, print_operand_address): Add TLS relocs.
5513         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
5514         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
5515         (TARGET_SWITCHES): Add -mtls-kernel.
5516         (alpha_tls_size, alpha_tls_size_string): New.
5517         (TARGET_OPTIONS): Add -mtls-size=.
5518         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
5519         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
5520         (ASM_OUTPUT_LABELREF): Skip %.
5521         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
5522         (PREDICATE_CODES): Update.
5523         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
5524         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
5525         UNSPEC_TP, UNSPECV_SET_TP): New.
5526         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
5527         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
5528         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
5529         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
5530         (call_value_osf_2_er): Accept anything as op4.
5531         * config/alpha/alpha-protos.h: Update.
5532         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
5533
5534 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
5535
5536         * cppinit.c (append_include_chain): Always pay attention to
5537         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
5538         marker on argument.
5539
5540 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
5541
5542         * target.h: Fix formatting.
5543         * timevar.h: Likewise.
5544         * tlink.c: Likewise.
5545         * toplev.c: Likewise.
5546         * toplev.h: Likewise.
5547         * tree.c: Likewise.
5548         * tree-dump.h: Likewise.
5549         * tree.h: Likewise.
5550         * tree-inline.h: Likewise.
5551         * unroll.c: Likewise.
5552         * unwind-dw2.c: Likewise.
5553         * unwind-dw2-fde.c: Likewise.
5554         * unwind-dw2-fde-glibc.c: Likewise.
5555         * unwind-dw2-fde.h: Likewise.
5556         * unwind.h: Likewise.
5557         * unwind-sjlj.c: Likewise.
5558         * varasm.c: Likewise.
5559         * varray.h: Likewise.
5560         * vmsdbg.h: Likewise.
5561         * vmsdbgout.c: Likewise.
5562         * xcoffout.h: Likewise.
5563
5564 2002-05-31  Igor Shevlyakov <igor@microunity.com>
5565
5566         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
5567         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
5568
5569 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
5570
5571         * gcc.c (cpp_unique_options): Remove "-d" options.
5572         (cpp_debug_options): New spec string.
5573         (default_compilers): Use it.
5574         * objc/lang-specs.h: Likewise.
5575
5576 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
5577
5578         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
5579         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
5580         * gcc/mklibgcc.in: Likewise.
5581         * gcc/config/arc/t-arc: Likewise.
5582         * gcc/configure.in: Likewise.
5583         * gcc/configure: Regenerate.
5584
5585 2002-05-31  Stan Shebs  <shebs@apple.com>
5586             Turly O'Connor  <turly@apple.com>
5587
5588         * c-decl.c (struct binding_level): Change int field n_incomplete
5589         to tree list incomplete_list.
5590         (clear_binding_level): Init field with NULL.
5591         (pushdecl): Add incomplete type to list.
5592         (mark_binding_level): Mark the incomplete list.
5593         (finish_struct): Scan the incomplete list for types instead
5594         of all decls in the current binding level.
5595
5596 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5597
5598         * pa.c (output_millicode_call): Add missing '%' characters.
5599         (output_call): Likewise.
5600
5601 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
5602
5603         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
5604         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
5605
5606 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
5607
5608         * varasm.c (mark_constant_pool): Walk epilogue delay list
5609         checking the insn, not the chain for potential constants.
5610
5611 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
5612
5613         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
5614
5615 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
5616
5617         * i386.c (classify_argument): Properly handle base types.
5618
5619         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
5620         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
5621         registers.
5622
5623 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
5624
5625         * gcse.c (gcse_emit_move_after): New.
5626         (pre_delete, hoist_store): Use it.
5627
5628         * reload1.c (emit_input_reload_insns): Use constrain_operands
5629         instead of constraint_accepts_reg_p to verify optimization.
5630         (constraint_accepts_reg_p): Kill
5631
5632         * reload1.c (reload_cse_delete_noop_set): Kill.
5633         (reload_cse_simplify): use delte_insn_and_edges.
5634
5635 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5636
5637         * cfgloop.c (flow_loops_find): Initialize first and last fields
5638         correctly.
5639
5640 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5641
5642         * c-common.c (builtin_define_std): Correct logic.
5643
5644 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5645
5646         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
5647         (output_call): Likewise.
5648
5649 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5650
5651         * pa.c: Move output.h include after tree.h include.
5652         (pa_asm_output_mi_thunk): Constify identifier lab.
5653
5654 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5655
5656         * config/ns32k/ns32k.h: Define named constants for the
5657         bits in target_flags and use them.
5658         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
5659
5660 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5661
5662         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
5663         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
5664         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
5665         default scheduling model.
5666         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
5667         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
5668         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
5669         * doc/install.texi (hppa*-*-*): Document default scheduling.
5670
5671 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5672
5673         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
5674
5675 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5676
5677         * config.gcc (ns32k-*-netbsd*): Set tm_file to
5678         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
5679         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
5680         netbsd.h, or netbsd-aout.h.
5681
5682 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
5683
5684         * longlong.h (count_trailing_zeros): Add missing \, and clean up
5685         whitespace in __ns32000__ case.
5686
5687 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
5688
5689         * expr.c (expand_expr): Output partially zeroed out vectors with
5690         output_constant_def.
5691
5692 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
5693
5694         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
5695         (sh-*-netbsdelf*)
5696         (shl*-*-netbsdelf*): New targets.
5697         * config/sh/netbsd-elf.h: New file.
5698         * config/sh/t-netbsd: New file.
5699
5700 2002-05-30  Richard Henderson  <rth@redhat.com>
5701             Eric Botcazou  <ebotcazou@multimania.com>
5702
5703         PR optimization/6822
5704         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
5705         to unsigned int for op1 comparisons.  Use gen_int_mode.
5706
5707 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
5708
5709         * expmed.c (const_mult_add_overflow_p): New.
5710         * expr.h: Declare it.
5711         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
5712         Don't eliminate the biv if the giv has a constant multiplier and
5713         the rhs argument of the comparison does satisfy the predicate.
5714         Use expand_mult_add to compute the replacement constant.
5715
5716 2002-05-30  Osku Salerma  <osku@iki.fi>
5717
5718         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
5719         (c_common_get_alias_set): Handle it.
5720         * doc/extend.texi: Document it.
5721
5722 2002-05-30  Richard Henderson  <rth@redhat.com>
5723
5724         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
5725         * toplev.c (process_options): Don't check it.
5726         * doc/tm.texi: Don't document it.
5727         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
5728         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
5729         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
5730         frame pointer optimization if current_function_profile.
5731
5732 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
5733
5734         * langhooks.c: Fix formatting.
5735         * langhooks.h: Likewise.
5736         * lcm.c: Likewise.
5737         * libgcc2.c: Likewise.
5738         * lists.c: Likewise.
5739         * local-alloc.c: Likewise.
5740         * loop.c: Likewise.
5741         * loop.h: Likewise.
5742
5743 2002-05-30  Marc Espie <espie@openbsd.org>
5744
5745         * config.gcc (sparc64-*-openbsd*): New.
5746         * config/sparc/openbsd1-64.h: New.
5747         * config/sparc/openbsd64.h: New.
5748
5749 2002-05-30  Jeff Law <law@redhat.com>
5750
5751         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
5752         a dead insn with a REG_RETVAL note when the entire libcall is not
5753         dead and remove the associated REG_LIBCALL note at the same time.
5754
5755 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
5756
5757         * lcm.c (output.h): #include.
5758         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
5759         as an ordinary block.
5760         (optimize_mode_switching): Don't pretend that the exit block is
5761         an ordinary block, or handle sucessors of entry block specially.
5762         Instead, split edges from entry block and to exit block, and
5763         put a computing definition on the thus gained post-entry-block,
5764         and a need on the pre-exit-block.
5765
5766 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
5767
5768         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
5769         * rtl.texi: Document 'B'
5770
5771 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
5772
5773         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
5774         at run-time.
5775         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
5776
5777 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
5778
5779         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
5780         const0_rtx instead of NULL_RTX when in error.
5781         (altivec_expand_abs_builtin): Same.
5782         (rs6000_expand_binop_builtin): Same.
5783         (altivec_expand_predicate_builtin): Same.
5784         (altivec_expand_stv_builtin): Same.
5785         (rs6000_expand_ternop_builtin): Same.
5786         (altivec_expand_builtin): Same.
5787
5788 2002-05-29  David S. Miller  <davem@redhat.com>
5789
5790         * rtl.h (clear_emit_caches): Delete.
5791         * integrate.c (output_inline_function): Don't call it.
5792         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
5793         (clear_emit_caches): Delete definition.
5794         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
5795
5796 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
5797
5798         * config/mmix/mmix.c: Include real.h.
5799         (mmix_constant_address_p): Remove redundant test before switch.
5800
5801 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5802
5803         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
5804         only if not already defined.
5805
5806 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5807
5808         * config/h8300/h8300-protos.h: Remove prototypes for
5809         ok_for_bclr and small_power_of_two.
5810         * config/h8300/h8300.c (small_power_of_two): Remove.
5811         (ok_for_blcr): Likewise.
5812         (fix_bit_operand): Make WHAT deal with an integer instead of a
5813         constraint character.
5814         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
5815         (CONST_OK_FOR_P): Likewise.
5816         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
5817         CONST_OK_FOR_P any more.
5818         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
5819         of fix_bit_operand.
5820         (iorqi3): Likewise.
5821         (xorqi3): Likewise.
5822
5823 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5824
5825         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5826         (CPP_PREDEFINES): Make sure this is undefined.
5827         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
5828         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
5829         or -U__MIPSEB__ before defining one or the other.  Instead,
5830         use %(subtarget_endian_default) if neither -EB nor -EL are
5831         specified.
5832         (SUBTARGET_EXTRA_SPECS): Define.
5833         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
5834         %(netbsd_cpp_spec).
5835
5836 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
5837
5838         * doc/md.texi (Patterns): Note pattern condition pitfall
5839         for unnamed insn.
5840
5841 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
5842
5843         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
5844         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
5845         ternary operations from here...
5846         (rs6000_expand_builtin): ...to here.
5847         New argument expandedp.
5848         Change all instances of altivec_expand_binop_builtin to
5849         rs6000_expand_binop_builtin.
5850         (altivec_expand_unop_builtin): Rename to
5851         rs6000_expand_unop_builtin.
5852         (altivec_expand_binop_builtin): Rename to
5853         rs6000_expand_binop_builtin.
5854         (altivec_expand_ternop_builtin): Rename to
5855         rs6000_expand_ternop_builtin.
5856
5857 2002-05-29  Richard Henderson  <rth@redhat.com>
5858
5859         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
5860         (TARGET_BI_ARCH): Likewise.
5861         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
5862         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
5863         (TARGET_64BIT_DEFAULT): Default to 0.
5864         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
5865
5866 2002-05-29  Richard Henderson  <rth@redhat.com>
5867
5868         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
5869         (get_pc_thunk_name): New.
5870         (output_set_got): Use it.
5871         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
5872         into linkonce sections.
5873
5874 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5875
5876         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5877         (CPP_PREDEFINES): Make sure this is undefined.
5878         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
5879         (CPP_SUBTARGET_SPEC): Don't provide different versions for
5880         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
5881         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
5882         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
5883         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5884         (CPP_PREDEFINES): Make sure this is undefined.
5885         (SUBTARGET_EXTRA_SPECS): Define.
5886         (CPP_SPEC): Use %(netbsd_cpp_spec).
5887
5888 2002-05-29  Jeff Law <law@redhat.com>
5889
5890         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
5891
5892         * flow.c (propagate_one_insn): Do not remove a dead insn if it
5893         contains a REG_RETVAL note.
5894
5895         * haifa-sched (sched_analyze): Remove another useless clearing
5896         of SCHED_GROUP_P I missed yesterday.
5897
5898         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
5899         * pa.c (pa_asm_output_mi_thunk): New function.
5900         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
5901
5902 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5903             Marek Michalkiewicz  <marekm@amelek.gda.pl>
5904
5905         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
5906         (avr_asm_only_p): Make non-static.
5907         (enum avr_arch): Remove.
5908         (avr_arch_types): New.
5909         (avr_mcu_types): Update.
5910         (avr_override_options): Use avr_arch_types table instead of switch.
5911         * avr.h (CPP_PREDEFINES): Die.
5912         (avr_base_arch_macro, avr_extra_arch_macro): New.
5913         (TARGET_CPU_CPP_BUILTINS): New.
5914         (CPP_SPEC, EXTRA_SPECS): Simplify.
5915         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
5916         CPP_AVR5_SPEC): Die.
5917
5918 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5919
5920         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
5921         NETBSD_OS_CPP_BUILTINS_AOUT.
5922         (SUBTARGET_EXTRA_SPECS): Define.
5923         (CPP_SPEC): Use %(netbsd_cpp_spec).
5924
5925 2002-05-29  Richard Henderson  <rth@redhat.com>
5926
5927         * config/i386/i386.c (ix86_output_function_epilogue): New.
5928         (TARGET_ASM_FUNCTION_EPILOGUE): New.
5929         (pic_label_name): Remove.
5930         (pic_labels_used): New.
5931         (ix86_asm_file_end): Emit one pc load stub for each register used.
5932         (output_set_got): Generate deep pc load to any register.
5933         (ix86_select_alt_pic_regnum): New.
5934         (ix86_save_reg): Don't save pic register if we can find a valid
5935         call-clobbered replacement.
5936         (ix86_expand_prologue): If we found a valid replacement, renumber
5937         pic_offset_table_rtx.
5938         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
5939         pic_offset_table_rtx after reload.
5940         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
5941         * config/i386/i386.md (set_got): Make insn, not expander.
5942         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
5943
5944 2002-05-29  Richard Henderson  <rth@redhat.com>
5945
5946         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
5947         alignment for alloca.
5948
5949 2002-05-29  Richard Henderson  <rth@redhat.com>
5950
5951         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
5952         (print_operand_address): Only add rip for symbolic addresses
5953         for which we do not have another relocation type.
5954
5955 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5956
5957         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5958         (EXTRA_SPECS): Add netbsd_cpp_spec.
5959         (CPP_SPEC): Use %(netbsd_cpp_spec).
5960         (CPP_PREDEFINES): Remove.
5961         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5962         (EXTRA_SPECS): Define.
5963         (CPP_SPEC): Use %(netbsd_cpp_spec).
5964         (CPP_PREDEFINES): Remove.
5965
5966 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5967
5968         PR preprocessor/6844
5969         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
5970         NUL.
5971
5972 2002-05-29  Eric Christopher  <echristo@redhat.com>
5973
5974         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
5975         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
5976
5977 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
5978
5979         * config/fr30/fr30.md: Remove previous restriction on splits.
5980         Enforce conformance through gen_lowpart and cont_int_operand.
5981         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
5982         as the assembler does not support ".bss".
5983
5984 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
5985
5986         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
5987         (CPP_PREDEFINES): Remove.
5988         (SUBTARGET_EXTRA_SPECS): Define.
5989         (CPP_SPEC): Use %(netbsd_cpp_spec).
5990         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
5991         (CPP_PREDEFINES): Remove.
5992         (SUBTARGET_EXTRA_SPECS): Define.
5993         (CPP_SPEC): Use %(netbsd_cpp_spec).
5994         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
5995         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
5996         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
5997         Add netbsd_cpp_spec.
5998         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
5999
6000 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6001             Zack Weinberg <zack@codesourcery.com>
6002
6003         * cppexp.c (cpp_num): Move to cpplib.h.
6004         (CPP_ERROR): Remove.
6005         (interpret_float_suffix, interpret_int_suffix): New.
6006         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
6007         (cpp_classify_number, cpp_interpret_integer): New.
6008         (interpret_number): Remove.
6009         (eval_token): Update to use new routines.
6010         * cpphash.h (cpp_num_part): Move to cpplib.h.
6011         * cppinit.c (cpp_post_options): Set warn_long_long.
6012         * cpplib.h (struct cpp_options): Add warn_long_long.
6013         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
6014         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
6015         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
6016         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
6017         cpp_interpret_integer): New.
6018
6019 2002-05-29  Joel Sherrill <joel@OARcorp.com>
6020
6021         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
6022
6023 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6024
6025         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
6026         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
6027         (CPP_SUBTARGET_SPEC): Define.
6028         (SUBTARGET_EXTRA_SPECS): Define.
6029         (CPP_SPEC): Remove.
6030
6031 2002-05-29  Chris Lattner  <sabre@nondot.org>
6032
6033         * ssa.c (rename_insn_1): Rename uses of undefined registers to
6034         prevent confusion if/when the register is defined.
6035
6036 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
6037
6038         PR target/6838
6039         * config/cris/cris.md: Fix typos and thinkos in comments.
6040         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
6041         second alternative.
6042         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
6043         ("*mov_sideqi_mem"): Similar, but for operand 3.
6044         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
6045         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
6046         Remove spurious mode specifier on operand 2.
6047
6048 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
6049
6050         * config/h8300/h8300-protos.h: Remove the prototype for
6051         o_operand.
6052         Add prototypes for single_one_operand and single_zero_operand.
6053         * config/h8300/h8300.c (o_operand): Remove.
6054         (single_one_operand): New.
6055         (single_zero_operand): Likewise.
6056         (print_operand): For 'V' operand, and the operand with 0xff.
6057         For 'V' and 'W' operands, do not and the bit position with 7.
6058         * config/h8300/h8300.md (various anonymous patterns): Replace
6059         use of exact_log2 with single_one_operand/single_zero_operand.
6060
6061 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6062
6063         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
6064
6065 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6066
6067         * config/s390/s390.c (legitimate_pic_operand_p): Do not
6068         accept symbolic LARL operands.
6069         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
6070         epilogue insns.
6071
6072 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
6073
6074         * config/s390/s390.md (cmpstr_64/31): Mark whole
6075         input registers as used.
6076
6077 2002-05-28  Richard Henderson  <rth@redhat.com>
6078
6079         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
6080         not current_function_uses_pic_offset_table and
6081         current_function_uses_const_pool; examine current_function_profile.
6082         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
6083         input to blockage if needed.
6084         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
6085         (legitimize_pic_address): Likewise.  Set regs_ever_live for
6086         pic_offset_table_rtx when invoked during reload.
6087         * config/i386/i386.h (FINALIZE_PIC): Remove.
6088         * config/i386/i386.md (tablejump): Reformat.  Do not set
6089         current_function_uses_pic_offset_table.
6090         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
6091         (blockage): Accept anything as operand 0.
6092
6093 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
6094
6095         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
6096         common CPP built-ins for all NetBSD a.out targets.
6097         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
6098         common CPP built-ins for all NetBSD ELF targets.
6099         * config/netbsd.h: Add missing notice.
6100         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
6101         for all NetBSD targets.
6102         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
6103         for all NetBSD targets using an LP64 code model.
6104         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
6105         NetBSD targets.
6106
6107 2002-05-28  Richard Henderson  <rth@redhat.com>
6108
6109         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
6110         update if UPDATE_LIFE_LOCAL.
6111
6112 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6113
6114         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
6115
6116 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6117                           Jason R. Thorpe <thorpej@wasabisystems.com>
6118
6119         config/sh reorganization to factor out endianness and coff:
6120
6121         * config/sh/little.h: New file.
6122         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
6123         defined, define to 0 to select big-endian.
6124         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
6125         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6126         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6127         * config/sh/t-be: New file.
6128         * config/sh/t-le: New file.
6129
6130         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
6131         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
6132         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
6133         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
6134         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
6135         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
6136         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
6137         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
6138         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
6139         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
6140         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
6141         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
6142         (LINK_SPEC): Define to SH_LINK_SPEC.
6143         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
6144         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
6145         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6146         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
6147         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
6148         * config/sh/coff.h: New file.
6149         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
6150         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6151         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
6152         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
6153         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
6154         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
6155         (PTRDIFF_TYPE): Likewise.
6156         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
6157         (CPP_PREDEFINES): Don't define.
6158         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6159         (LINK_SPEC): Define to SH_LINK_SPEC.
6160         (LINK_EMUL_PREFIX): Redefine.
6161         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
6162         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
6163         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
6164         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
6165         (TARGET_OS_CPP_BUILTINS): Define.
6166         (TARGET_DEFAULT): Redefine.
6167         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6168         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
6169         (LINK_SPEC): Don't redefine.
6170         (LINK_DEFAULT_CPU_EMUL): Redefine.
6171         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6172         * sh.c (sh_asm_named_section): Don't declare / define.
6173         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
6174         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
6175         (sh64-*-elf* tm_file): Likewise.
6176         (sh-*-rtemself* tm_file): Likewise.
6177         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
6178         (sh-*-linux* tmake_file): Add sh/t-le.
6179         (sh-*-rtems* tm_file): Add sh/coff.h
6180         (sh-*-* tm_file): Likewise.
6181
6182 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6183
6184         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
6185         CONSTANT_POOL_ADDRESS_P.
6186
6187         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
6188
6189 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
6190             Jeff Law <law@redhat.com>
6191
6192         * optabs.c (expand_binop): Fix nwords sign warnings.
6193         generate pseudo for add_optab.
6194
6195         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
6196         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
6197
6198 2002-05-28      Marc Espie <espie@openbsd.org>
6199
6200         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
6201         inherited from gas.h.
6202         (ASM_QUAD):  Undef.  OpenBSD does not support it.
6203
6204 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
6205
6206         * doc/install.texi (binaries): Change mingw binaries
6207         link to www.mingw.org.
6208
6209 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6210
6211         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
6212
6213 2002-05-28  Richard Henderson  <rth@redhat.com>
6214
6215         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
6216         bottom alignment for leaf functions.
6217
6218 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
6219
6220         * config/pa/milli32.S, config/pa/lib1funcs.asm,
6221         config/sparc/sol2-g1.asm: Delete unused files.
6222
6223 2002-05-28  Richard Henderson  <rth@redhat.com>
6224
6225         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
6226
6227         * flow.c (calculate_global_regs_live): Rename call_used to
6228         invalidated_by_call.  Initialize from regs_invalidated_by_call
6229         instead of call_used_regs.
6230
6231         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
6232         DECL_EXTERNAL.
6233
6234 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
6235
6236         * tree.h: Don't include real.h.
6237         Forward-declare struct realvaluetype.
6238         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
6239         contain it.
6240         (TREE_REAL_CST_PTR): New accessor.
6241         (TREE_REAL_CST): Update.
6242         * real.h: Include machmode.h.
6243         (realvaluetype): Make it struct realvaluetype, not a typedef.
6244         (build_real): Prototype here.
6245
6246         * tree.c: Include real.h.
6247         (build_real): Allocate the REAL_VALUE_TYPE as a separate
6248         object in GC memory, set TREE_REAL_CST_PTR to point to it.
6249         (build_real_from_int_cst): Use build_real.
6250         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
6251         REAL_CST.
6252
6253         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
6254         fold-const.c, print-tree.c, real.c: Include real.h.
6255         * Makefile.in: Update dependency lists.
6256
6257 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6258
6259         * basic-block.h (last_basic_block): Declare.
6260         (expunge_block_nocompact): Declaration removed.
6261         (compact_blocks): Declare.
6262         * cfg.c (last_basic_block): New variable.
6263         (expunge_block_nocompact): Removed.
6264         (expunge_block): Do not compact basic blocks.
6265         (compact_blocks): New.
6266         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
6267         longer change.
6268         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
6269         last_basic_block.
6270         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
6271         real positions of blocks.
6272         (delete_unreachable_blocks): Simplified -- quadratic behavior now
6273         cannot occur.
6274         (cleanup_cfg): Compact blocks.
6275         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
6276         basic_block_info varray.
6277         (flow_delete_block): Comment update.
6278         (back_edge_of_syntactic_loop_p): Modify position check code.
6279         (verify_flow_info): Update checking.
6280         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
6281         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
6282         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
6283         indices no longer change.
6284         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
6285         last_basic_block.
6286         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
6287         * profile.c (branch_prob): Compact blocks.
6288         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
6289         last_basic_block.
6290
6291 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
6292
6293         * config/h8300/h8300.md (two anonymous patterns): New.
6294
6295 2002-05-28  David S. Miller  <davem@redhat.com>
6296
6297         * config/sparc/sparc.md (cpu): Tidy.
6298         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
6299         'trap'.
6300         (in_call_delay): Delete reference to 'return' type.
6301         (eligible_for_return_delay, in_return_delay, define_delay
6302         referencing those): Delete.
6303         (rest of file): Use new type attributes as appropriate.
6304         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
6305         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
6306         * config/sparc/ultra1_2.md (us1_single): New reservation.
6307         (us1_ialuX): Likewise.
6308         * config/sparc/ultra3.md (us3_single): Likewise.
6309         (us3_ialuX): Likewise.
6310         (us3_imul, us3_idiv): Tweak.
6311
6312 2002-05-28  Richard Henderson  <rth@redhat.com>
6313
6314         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
6315         STRING_CST.
6316
6317 2002-05-28  Richard Henderson  <rth@redhat.com>
6318
6319         * config.gcc: Obsolete mn10200.
6320
6321 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6322
6323         * cppexp.c (interpret_number): Optimize for single-digit
6324         and less-than-half-precision cases.
6325         (num_trim, num_positive, num_div_op): Cast constants.
6326
6327 2002-05-27  Bo Thorsen  <bo@suse.de>
6328
6329         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
6330         3.1 branch. The file was made by Jakub Jelinek.
6331         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
6332         support so multilib doesn't break. And don't define this at all
6333         when -Dinhibit_libc is used.
6334         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
6335         * config/i386/t-linux64: Implement full multilib support. Patch
6336         originally done by Andreas Jaeger and Jakub Jelinek.
6337
6338 2002-05-27  Roger Sayle  <roger@eyesopen.com>
6339
6340         * c-common.c: Add support for __attribute__((nothrow)) to specify
6341         that a function cannot throw an exception (using TREE_NOTHROW).
6342         (handle_nothrow_attribute): New function to process this attribute.
6343
6344         * doc/extend.texi: Document the new nothrow function attribute.
6345
6346 2002-05-27  H.J. Lu  (hjl@gnu.org)
6347
6348         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
6349         (num_positive): Likewise.
6350         (num_div_op): Likewise.
6351
6352 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6353
6354         * c-common.c (c_common_init): Always use intmax_t.
6355
6356 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6357
6358         * c-common.c (c_common_init): Use intmax_t for now.
6359
6360 2002-05-24  Andrew Haley  <aph@redhat.com>
6361
6362         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
6363         if T is a boolean type.
6364
6365 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6366
6367         * basic-block.h (last_basic_block): Defined as synonym for
6368         n_basic_blocks.
6369         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
6370         flow_depth_first_order_compute, flow_preorder_transversal_compute,
6371         flow_dfs_compute_reverse_init): Replaced relevant occurences of
6372         n_basic_blocks with last_basic_block.
6373         * cfgbuild.c (make_edges): Likewise.
6374         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
6375         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
6376         * combine.c (combine_instructions): Likewise.
6377         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
6378         iterative_dataflow_bitmap): Likewise.
6379         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
6380         calc_idoms, idoms_to_doms): Likewise.
6381         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
6382         Likewise.
6383         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
6384         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
6385         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
6386         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
6387         delete_null_pointer_checks, compute_code_hoist_vbeinout,
6388         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
6389         compute_store_table, build_store_vectors): Likewise.
6390         * haifa-sched.c (sched_init): Likewise.
6391         * ifcvt.c (if_convert): Likewise.
6392         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
6393         pre_edge_lcm, compute_available, compute_nearerout,
6394         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
6395         Likewise.
6396         * predict.c (estimate_probability, process_note_prediction,
6397         note_prediction_to_br_prob): Likewise.
6398         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
6399         * recog.c (split_all_insns, peephole2_optimize): Likewise.
6400         * regrename.c (copyprop_hardreg_forward): Likewise.
6401         * resource.c (init_resource_info): Likewise.
6402         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
6403         init_regions, schedule_insns): Likewise.
6404         * ssa-ccp.c (ssa_const_prop): Likewise.
6405         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6406         * ssa.c (compute_dominance_frontiers,
6407         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
6408
6409         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
6410         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
6411         sizes consistently.
6412
6413 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
6414
6415         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
6416         new.
6417         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
6418         hoist_insn_after, hoist_insn_to_edge): New.
6419
6420 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
6421
6422         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
6423         (PROP_FINAL): Include.
6424         * flow.c (life_analysis, update_life_info,
6425         init_propagate_block_info, mark_set_1, mark_used_rgs):
6426         Support SCAN_DEAD_STORE.
6427
6428 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6429
6430         * c-common.c (c_common_init): Set CPP arithmetic precision.
6431         * cppexp.c (cpp_num_part): Move typedef ...
6432         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
6433         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
6434         (sanity_checks): Update.
6435
6436 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
6437
6438         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
6439         (mkheaders): New rule.
6440         (install-mkheaders): New rule.
6441         * configure.in (all_outputs): Add mkheaders.
6442         * configure: Regenerate.
6443         * mkheaders.in: New file.
6444
6445 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
6446
6447         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
6448
6449 2002-05-26  Andreas Jaeger  <aj@suse.de>
6450
6451         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
6452
6453 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6454
6455         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
6456         right_shift): Remove.
6457         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
6458         HIGH_PART): New.
6459         (struct op): Use cpp_num.
6460         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
6461         num_part_mul, num_unary_op, num_binary_op, num_negate,
6462         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
6463         num_div_op, num_lshift, num_rshift, append_digit): New.
6464         (interpret_number, parse_defined, eval_token, reduce): Update
6465         for two-integer arithmetic.
6466         (binary_handler): New typedef.
6467         (optab): Update.
6468         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
6469         (_cpp_parse_expr, reduce): Update to handle two-integers.
6470         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
6471
6472 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6473
6474         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
6475         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
6476         branch insn into account, do not assume 1.
6477         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
6478         over single word insn.  Handle upper half of I/O space too.
6479         * config/avr/avr.md (*sbrx_branch): Use it.
6480         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
6481         (*sbix_branch, *sbix_branch_bit7): Likewise.
6482         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
6483         Use RTL peepholes to optimize register operand sign tests.
6484
6485 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6486
6487         * config/avr/avr.c (avr_asm_only_p): New variable.
6488         (avr_override_options): Set it here if AVR1.
6489         (asm_file_start): Test it here, report an error if set.
6490
6491 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
6492
6493         * alias.c: Fix formatting.
6494         * attribs.c: Likewise.
6495         * bb-reorder.c: Likewise.
6496         * bitmap.c: Likewise.
6497         * bitmap.h: Likewise.
6498         * builtins.c: Likewise.
6499
6500 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
6501
6502         * reload.c (find_valid_class): Accept new argument DEST,
6503         choose class accordingly.
6504         (push_reload): Update callers.
6505
6506 2002-05-26  Andreas Jaeger  <aj@suse.de>
6507
6508         * combine.c (combine_instructions): Do not indent #if for
6509         traditional C.
6510
6511 2002-05-25  Richard Henderson  <rth@redhat.com>
6512
6513         * c-pragma.c (apply_pragma_weak): Convert value identifier to
6514         string for decl_attributes.
6515         (handle_pragma_weak): Call assemble_alias if we're modifying
6516         an existing decl.
6517
6518 2002-05-25  Richard Henderson  <rth@redhat.com>
6519
6520         PR target/6788
6521         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
6522         using rtl instead of fprintf.
6523         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
6524         * config/sparc/sparc-protos.h: Update.
6525
6526 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
6527
6528         * Makefile.in (C_COMMON_H): Fix.
6529         Update other targets.
6530         * c-common.c: Don't include c-lex.h.
6531         (builtin_define_with_value): Make static and prototype.
6532         (builtin_define_std): Move from c-lex.h.
6533         * c-common.h (init_c_lex): Move from c-lex.h.
6534         * c-decl.c: Don't include c-lex.h.
6535         (make_pointer_declarator): Move from c-parse.in.
6536         * c-lex.c: Don't include c-lex.h.
6537         * c-lex.h: Remove.
6538         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
6539         (make_pointer_declarator): Move to c-decl.c.
6540         * c-pragma.c: Don't include c-lex.h.
6541         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
6542         * c-tree.h (make_pointer_declarator): New.
6543 doc:
6544         * passes.texi, tm.texi: Update.
6545 objc:
6546         * Make-lang.in: Update and correct.
6547         * objc-act.c: Don't include c-lex.h or cpplib.h.
6548 treelang:
6549         * treetree.c: Don't include c-lex.h.
6550 config:
6551         * darwin-c.c: Don't include c-lex.h.
6552         * c4x/c4x-c.c: Don't include c-lex.h.
6553         * c4x/t-c4x: Update.
6554         * i370/i370-c.c: Don't include c-lex.h.
6555         * i370/t-i370: Update.
6556         * i960/i960-c.c: Don't include c-lex.h.
6557         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
6558         * i960/t-960bare: Update.
6559         * i960/t-vxworks: Update.
6560         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
6561         * rs6000/t-darwin: Update.
6562         * rs6000/t-rs6000-c-rule: Update.
6563         * v850/v850-c.c: Don't include c-lex.h.
6564         * v850/v850.c: Don't include c-lex.h or cpplib.h.
6565
6566
6567 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
6568
6569         * tree.def: Fix typos.
6570         * doc/install.texi: Likewise.
6571
6572 2002-05-25  Richard Henderson  <rth@redhat.com>
6573
6574         * configure.in (HAVE_AS_TLS): Add ia64 test.
6575         * configure: Rebuild.
6576         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
6577         (override_options): Set it.
6578         (TARGET_HAVE_TLS): New.
6579         (sdata_symbolic_operand): Look for 's'.
6580         (tls_symbolic_operand): New.
6581         (ia64_expand_load_address): Abort for tls symbols.
6582         (gen_tls_get_addr): New.
6583         (gen_thread_pointer): New.
6584         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
6585         (rtx_needs_barrier): Add new unspecs.
6586         (ia64_encode_section_info): Handle tls symbols.
6587         (ia64_strip_name_encoding): Strip two encoding chars.
6588         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
6589         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
6590         (TARGET_OPTIONS): Add tls-size.
6591         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
6592         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
6593         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
6594         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
6595         (movsf, movdf): Likewise.
6596         (movdi_symbolic): Use match_scratch.  Don't split if we won't
6597         have a scratch availiable.
6598         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
6599         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
6600         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
6601         * config/ia64/ia64-protos.h: Update.
6602         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
6603         sdata_symbolic_operand.
6604         (ASM_OUTPUT_LABELREF): Strip two characters.
6605
6606 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
6607
6608         * combine.c (simplify_set): Remove an unnecessary subreg.
6609
6610 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6611
6612         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
6613
6614         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
6615
6616 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6617
6618         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
6619
6620 2002-05-25  Roger Sayle  <roger@eyesopen.com>
6621
6622         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
6623         (cond (compare x y) 0) into the equivalent (cond x y).
6624
6625 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6626
6627         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
6628
6629 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
6630
6631         * config.gcc: Remove all stanzas for previously obsoleted
6632         systems.  Where necessary, add explicit error stanzas to
6633         prevent removed systems from being misidentified as something
6634         else.  Begin a fresh obsoletions list, with the systems that
6635         were reprieved last round.
6636         * doc/install.texi: Remove all mention of dead targets.
6637         * fixinc/mkfixinc.sh: Likewise.
6638
6639         * config/arm/arm.h: Bit 31 of target_flags is no longer
6640         reserved.
6641
6642         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
6643         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
6644         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
6645         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
6646         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
6647         config/alpha/osf12.h, config/alpha/osf2or3.h,
6648         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
6649         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
6650         config/clipper/clipper-protos.h, config/clipper/clipper.c,
6651         config/clipper/clipper.h, config/clipper/clipper.md,
6652         config/clipper/clix.h, config/convex/convex-protos.h,
6653         config/convex/convex.c, config/convex/convex.h,
6654         config/convex/convex.md, config/convex/fixinc.convex,
6655         config/convex/proto.h, config/elxsi/elxsi-protos.h,
6656         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
6657         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
6658         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
6659         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
6660         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
6661         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
6662         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
6663         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
6664         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
6665         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
6666         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
6667         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
6668         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
6669         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
6670         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
6671         config/m68k/altos3068.h, config/m68k/apollo68.h,
6672         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
6673         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
6674         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
6675         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
6676         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
6677         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
6678         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
6679         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
6680         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
6681         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
6682         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
6683         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
6684         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
6685         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
6686         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
6687         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
6688         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
6689         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
6690         config/mips/dec-osf1.h, config/mips/elflorion.h,
6691         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
6692         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
6693         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
6694         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
6695         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
6696         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
6697         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
6698         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
6699         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
6700         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
6701         config/ns32k/sequent.h, config/ns32k/tek6000.h,
6702         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
6703         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
6704         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
6705         config/sparc/rtems.h, config/we32k/we32k-protos.h,
6706         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
6707         Delete file.
6708
6709 2002-05-24  Richard Henderson  <rth@redhat.com>
6710
6711         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
6712         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
6713         * config/i386/i386.c (tls_model_chars): Add leading space.
6714         (tls_symbolic_operand): Don't bias by 1.
6715         (legitimize_address): Don't unbias by 1.
6716
6717 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6718
6719         * lcm.c (optimize_mode_switching): Change bb used as indices
6720         to bb->index.
6721
6722 2002-05-24  Richard Henderson  <rth@redhat.com>
6723
6724         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
6725         of update_life_info_in_dirty_blocks.
6726
6727 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
6728
6729         PR other/6782
6730         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
6731
6732 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6733
6734         PR preprocessor/6780
6735         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
6736
6737 2002-05-24  Jim Blandy  <jimb@redhat.com>
6738
6739         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
6740         entry with a type code of zero, marking the end of the compilation
6741         unit's macro info.
6742
6743 2002-05-24  Richard Henderson  <rth@redhat.com>
6744
6745         * varasm.c (asm_output_bss): Always output one byte.
6746         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
6747
6748 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
6749
6750         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
6751         namespace.
6752
6753 2002-05-24  Andreas Jaeger  <aj@suse.de>
6754
6755         * ggc-page.c (alloc_page): Cast variables of type size_t to
6756         unsigned long, adjust printf format string.
6757         (ggc_alloc): Likewise.
6758         (ggc_print_statistics): Likewise.
6759         (ggc_print_statistics): Correct printf format string for SCALE to
6760         use unsigned long.
6761
6762 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
6763
6764         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
6765
6766 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
6767             Zack Weinberg     <zack@codesourcery.com>
6768
6769         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
6770         quoted strings.
6771         * dwarf2out.c (lookup_filename): Properly quote filename in .file
6772         directive in assembly file.
6773         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
6774         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
6775         * config/pj/pj.h (ASM_FILE_START): Likewise.
6776         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
6777         * config/avr/avr.c (asm_file_end): Likewise.
6778         * toplev.c (output_quoted_string): Handle possibly signed plain
6779         char.
6780         * toplev.h (output_clean_symbol_name): Declare
6781         * toplev.c (output_clean_symbol_name): Define.
6782         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
6783         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
6784
6785 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
6786
6787         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
6788
6789 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
6790
6791         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
6792         of size of unsigned.
6793
6794 2002-05-23  Richard Henderson  <rth@redhat.com>
6795
6796         * configure.in (HAVE_AS_TLS): New test.
6797         * config.in, configure: Rebuild.
6798         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
6799         (ix86_tls_dialect_string, ix86_tls_dialect): New.
6800         (override_options): Set it.
6801         (tls_model_chars, tls_symbolic_operand): New.
6802         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
6803         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
6804         (local_exec_symbolic_operand): New.
6805         (get_pic_label_name): Merge into output_set_got.
6806         (ix86_asm_file_end): Emit pic_label_name if defined.
6807         (legitimate_constant_p, constant_address_p): New.
6808         (legitimate_pic_operand_p): New.
6809         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
6810         (legitimate_address_p): Likewise.
6811         (ix86_encode_section_info): Rename from i386_; handle tls decls.
6812         (ix86_strip_name_encoding): New.
6813         (get_thread_pointer): New.
6814         (legitimize_address): Handle tls symbols.
6815         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
6816         Remove UNSPEC_PLT.
6817         (struct machine_function): Add some_ld_name.
6818         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
6819         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
6820         (output_addr_const_extra): New.
6821         (maybe_get_pool_constant): New.
6822         (ix86_split_to_parts): Use it.
6823         (ix86_expand_move): Handle tls symbols.
6824         (ix86_tls_get_addr): New.
6825         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
6826         (TARGET_OPTIONS): Add tls-dialect.
6827         (CONSTANT_ADDRESS_P): Use new out-of-line function.
6828         (LEGITIMATE_CONSTANT_P): Likewise.
6829         (LEGITIMATE_PIC_OPERAND_P): Likewise.
6830         (TARGET_STRIP_NAME_ENCODING): New.
6831         (ASM_OUTPUT_LABELREF): New.
6832         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
6833         (OUTPUT_ADDR_CONST_EXTRA): New.
6834         (PREDICATE_CODES): Update.
6835         (ix86_tls_dialect, ix86_tls_dialect_string): New.
6836         * config/i386/i386.md: Regroup and renumber unspec constants.
6837         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
6838         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
6839         (tls_global_dynamic, tls_local_dynamic_base): New.
6840         (tls_local_dynamic_once): New.
6841         * config/i386/i386-protos.h: Update.
6842
6843 2002-05-23  Richard Henderson  <rth@redhat.com>
6844
6845         * genemit.c (gen_insn): Print file:lineno comment before function.
6846         (main): likewise.
6847         * gensupport.c (struct queue_elem): Add filename member.
6848         (queue_pattern): Initialize it; update all callers.
6849         (process_include): Don't free filename.
6850         (read_md_rtx): Set read_rtx_filename.
6851
6852 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
6853
6854         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
6855
6856 2002-05-23  Richard Henderson  <rth@redhat.com>
6857
6858         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
6859
6860 2002-05-23  Richard Henderson  <rth@redhat.com>
6861
6862         * doc/extend.texi (C++98 Thread-Local Edits): Update with
6863         commentary from Mark.
6864
6865 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6866
6867         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
6868         Use FOR_EACH_BB macros to iterate over basic block chain.
6869         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
6870         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
6871         Likewise.
6872         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
6873         find_unreachable_blocks, create_edge_list, verify_edge_list,
6874         remove_fake_edges, add_noreturn_fake_exit_edges,
6875         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
6876         Likewise.
6877         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
6878         find_sub_basic_blocks): Likewise.
6879         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
6880         Likewise.
6881         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
6882         Likewise.
6883         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
6884         Likewise.
6885         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
6886         commit_edge_insertions, commit_edge_insertions_watch_calls,
6887         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
6888         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
6889         * conflict.c (conflict_graph_compute): Likewise.
6890         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
6891         df_modified_p, df_refs_unlink, df_dump): Likewise.
6892         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
6893         * final.c (compute_alignments): Likewise.
6894         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
6895         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
6896         count_or_remove_death_notes): Likewise.
6897         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
6898         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
6899         classic_gcse, compute_transp, cprop, compute_pre_data,
6900         compute_transpout, invalidate_nonnull_info,
6901         delete_null_pointer_checks_1, delete_null_pointer_checks,
6902         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
6903         compute_store_table, build_store_vectors, store_motion): Likewise.
6904         * global.c (global_conflicts, mark_elimination): Likewise.
6905         * graph.c (print_rtl_graph_with_bb): Likewise.
6906         * haifa-sched.c (sched_init): Likewise.
6907         * ifcvt.c (if_convert): Likewise.
6908         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
6909         compute_available, compute_nearerout, compute_rev_insert_delete,
6910         optimize_mode_switching): Likewise.
6911         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
6912         * predict.c (estimate_probability, note_prediction_to_br_prob,
6913         propagate_freq, counts_to_freqs, expensive_function_p,
6914         estimate_bb_frequencies): Likewise.
6915         * profile.c (instrument_edges, get_exec_counts,
6916         compute_branch_probabilities, compute_checksum, branch_prob,
6917         find_spanning_tree): Likewise.
6918         * recog.c (split_all_insns, peephole2_optimize): Likewise.
6919         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
6920         Likewise.
6921         * regclass.c (scan_one_insn, regclass): Likewise.
6922         * regmove.c (mark_flags_life_zones, regmove_optimize,
6923         record_stack_memrefs): Likewise.
6924         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
6925         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
6926         * resource.c (find_basic_block): Likewise.
6927         * sched-ebb.c (schedule_ebbs): Likewise.
6928         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
6929         find_single_block_region, find_rgns, schedule_insns)
6930         * sibcall.c (optimize_sibling_and_tail_recursive_call)
6931         * ssa-ccp.c (optimize_unexecutable_edges,
6932         ssa_ccp_df_delete_unreachable_insns): Likewise.
6933         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6934         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
6935         rename_block, convert_to_ssa, compute_conservative_reg_partition,
6936         compute_coalesced_reg_partition, rename_equivalent_regs,
6937         convert_from_ssa): Likewise.
6938         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
6939         process_for_unwind_directive): Likewise.
6940
6941         * df.c (FOR_ALL_BBS): Removed.
6942         * gcse.c (struct null_pointer_info): Type of current_block field
6943         changed.
6944         (struct reg_avail_info): Type of last_bb field changed.
6945         * config/ia64/ia64.c (block_num): Removed.
6946         (need_copy_state): Type changed.
6947         (last_block): New.
6948
6949 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6950
6951         * cppinit.c (mark_named_operators): Split out from init_builtins.
6952         (cpp_finish_options): Call it from here instead.
6953
6954 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
6955
6956         * builtin-attrs.def: Update copyright years.
6957         (ATTR_NONNULL): New attribute identifier.
6958         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
6959         attribute tree lists.
6960         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
6961         format operand.
6962         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
6963         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
6964         attribute lists.  Chain the appropriate nonnull attribute.
6965         * c-format.c (check_format_arg): Remove null format string
6966         warning.
6967         * testsuite/gcc.dg/format/null-1.c: New test.
6968
6969 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6970
6971         * Makefile.in (ADAC): Define.
6972         (SYSLIBS): Define.
6973         (.SUFFIXES): Move before language makefile fragments.
6974         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
6975
6976 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
6977
6978         * varasm.c (make_decl_rtl): Don't allow weak variables to be
6979         placed in common.
6980
6981 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
6982
6983         * cfg.c (dump_flow_info): Print results of
6984         maybe_hot/probably_never_executed predicates.
6985         * toplev.c (open_dump_file): Print function frequency.
6986
6987 2002-05-23  David S. Miller  <davem@redhat.com>
6988
6989         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
6990         regsets.
6991
6992 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
6993
6994         * c-common.c (warn_nonnull): Declare.
6995         (c_common_attribute_table): Add "nonnull" attribute.
6996         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
6997         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
6998         check_function_arguments_recurse): New functions.
6999         * c-common.h (warn_nonnull): Declare extern.
7000         (check_function_arguments, check_function_arguments_recurse): New
7001         prototypes.
7002         * c-decl.c (c_decode_option): Add -Wnonnull option.
7003         * c-format.c (set_Wformat): Set warn_nonnull if enabling
7004         format checking.
7005         (format_check_context): New structure.
7006         (check_format_info_recurse): Remove recursion and rename to...
7007         (check_format_arg): ...this.  Update comment.
7008         (check_format_info): Use check_function_arguments_recurse.
7009         * c-typeck.c (build_function_call): Call check_function_arguments
7010         instead of check_function_format.
7011         * doc/extend.texi: Document "nonnull" attribute.
7012         * doc/invoke.texi: Docuemnt -Wnonnull option.
7013         * testsuite/gcc.dg/nonnull-1.c: New test.
7014         * testsuite/gcc.dg/nonnull-2.c: New test.
7015
7016 2002-05-23  David S. Miller  <davem@redhat.com>
7017
7018         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
7019         * cfgcleanup.c (cleanup_cfg): If it is set do not
7020         attempt to delete trivially dead insns.
7021         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
7022         * toplev.c (rest_of_compilation): Document non-trivial aspect
7023         the RTL before optimize_save_area_alloca is run.
7024
7025 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7026
7027         * c-lex.c (indent_level): Remove.
7028         (cb_file_change, c_lex): Remove indent level handling.
7029         * c-lex.h (indent_level): Remove.
7030         * input.h (struct file_stack): Remove indent_level.
7031         * toplev.c (push_srcloc): Remove indent_level handling.
7032
7033 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
7034
7035         PR target/6753
7036         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
7037         of x in constraints for clarity.
7038         (sse_mov?fcc split): abort if op2 == op3.
7039         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
7040         sse_movsfcc_const0_4): Add earlyclobber.
7041         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
7042         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
7043         Use Y instead of x in constraints.
7044
7045 2002-05-23  Richard Henderson  <rth@redhat.com>
7046
7047         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
7048         (C++98 Thread-Local Edits): New subsection.
7049
7050         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
7051         (ix86_arch): Set type to enum processor_type.
7052
7053         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
7054         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
7055
7056 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
7057
7058         * configure.in: Fix as version test for binutils 2.12.1 releases
7059         (without dates).
7060         * configure: Rebuilt.
7061
7062 2002-05-23  Richard Henderson  <rth@redhat.com>
7063
7064         * config/i386/i386.c (get_pic_label_name): New.
7065         (load_pic_register): Remove.
7066         (output_set_got): New.
7067         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
7068         * config/i386/i386.md (UNSPEC_SET_GOT): New.
7069         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
7070         (prologue_set_got, prologue_get_pc): Remove.
7071         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
7072         (builtin_setjmp_receiver): Use gen_set_got.
7073         * config/i386/i386-protos.h: Update.
7074
7075 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
7076
7077         * gcse.c (hash_expr): Do not use alias set for hashing.
7078
7079 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
7080
7081         * dbxout.c (dbxout_class_name_qualifiers): New function.
7082         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
7083
7084 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7085
7086         * cpperror.c (_cpp_begin_message): No special casing
7087         of CPP_FATAL_LIMIT.
7088         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
7089         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
7090         * cpplib.c (do_include_common): Use DL_ERROR.
7091         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
7092         (DL_ICE): Renumber.
7093         * fix-header.c (read_scan_file): Update.
7094
7095 2002-05-22  Richard Henderson  <rth@redhat.com>
7096
7097         * config/i386/i386.c (ix86_expand_call): New function, extracted
7098         from md call patterns.  Add pic_offset_table_rtx to
7099         CALL_INSN_FUNCTION_USAGE when needed.
7100         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
7101         (call_value_pop, call_value, untyped_call): Likewise.
7102         (call_exp, call_value_exp): Remove.
7103         * config/i386/i386-protos.h: Update.
7104
7105 2002-05-22  Richard Henderson  <rth@redhat.com>
7106
7107         * varasm.c (default_section_type_flags): Check for VAR_DECL
7108         before using DECL_THREAD_LOCAL.
7109
7110 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
7111
7112         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
7113         (STARTFILE_SPEC): Delete PE crt0.o.
7114         * config/rs6000/aix51.h: Same.
7115         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
7116         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
7117         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
7118         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
7119         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
7120
7121 2002-05-22  Richard Henderson  <rth@redhat.com>
7122
7123         * varasm.c (default_section_type_flags): Handle tls data and
7124         default sections.
7125         (default_unique_section): Handle tls sections.
7126
7127 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
7128
7129         * configure.in (CROSS): Define NATIVE_CROSS.
7130         * configure: Regenerate.
7131         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
7132         (startfile_prefix_spec): New var.
7133         (static_specs): Add startfile_prefix_spec.
7134         (do_spec_2): Split out from..
7135         (do_spec): ..here.
7136         (main): Process startfile_prefix_spec.
7137         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
7138         dynamic linker.
7139         (STARTFILE_PREFIX_SPEC): Define.
7140         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
7141         absolute paths.
7142
7143 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         * cpperror.c: Fix formatting.
7146         * cppexp.c: Likewise.
7147         * cppfiles.c: Likewise.
7148         * cpphash.c: Likewise.
7149         * cpphash.h: Likewise.
7150         * cppinit.c: Likewise.
7151         * cpplex.c: Likewise.
7152         * cpplib.c: Likewise.
7153         * cppmacro.c: Likewise.
7154         * cppmain.c: Likewise.
7155         * cppspec.c: Likewise.
7156
7157 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7158
7159         * combine.c (force_to_mode): Use gen_int_mode.
7160         Don't clear CONST_INT bits outside of mode.
7161
7162 2002-05-22  Richard Henderson  <rth@redhat.com>
7163
7164         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
7165         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7166
7167 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7168
7169         PR c/6643
7170         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
7171         if DECL_SIZE_UNIT is INTEGER_CST.
7172
7173 2002-05-22  Richard Henderson  <rth@redhat.com>
7174
7175         * flow.c (life_analysis): Delete broken reg_label check.
7176
7177 2002-05-22  Richard Henderson  <rth@redhat.com>
7178
7179         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
7180         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7181
7182 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
7183
7184         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
7185         (embed-bb.c): New rule.
7186         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
7187         * config/sh/embed_bb.c: Delete.
7188
7189 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
7190
7191         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
7192
7193 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
7194
7195         * config/h8300/h8300.md (*andorqi3): New.
7196
7197 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7198
7199         PR preprocessor/6517
7200         * Makefile.in: Update.
7201         * c-common.c (c_common_post_options): Add preprocessor
7202         errors to the error count.
7203         * c-lang.c (c_post_options): Kill.
7204         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
7205         * hooks.h: Add header guards.
7206         * langhooks-def.h: Include hooks.h.
7207         (LANG_HOOKS_POST_OPTIONS): Update.
7208         * langhooks.h (struct lang_hooks): Update post_options.
7209         * toplev.c (parse_options_and_default_flags): Update.
7210 objc:
7211         * objc-lang.c (objc_post_options): Kill.
7212         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
7213
7214 2002-05-21  Bruce Korb  <bkorb@gnu.org>
7215
7216         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
7217         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
7218         * fixinc/fixincl.x: regen.
7219
7220 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
7221
7222         * cfgbuild.c: Fix formatting.
7223         * cfg.c: Likewise.
7224         * cfgcleanup.c: Likewise.
7225         * cfglayout.c: Likewise.
7226         * cfgloop.c: Likewise.
7227         * cfgrtl.c: Likewise.
7228
7229 2002-05-21  Richard Henderson  <rth@redhat.com>
7230
7231         * c-common.h (enum rid): Add RID_THREAD.
7232         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
7233         (grokdeclarator): Grok __thread.
7234         * c-parse.in (reswords): Add __thread.
7235         (rid_to_yy): Add RID_THREAD.
7236
7237         * tree.h (DECL_THREAD_LOCAL): New.
7238         (struct tree_decl): Add thread_local_flag.
7239         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
7240         * tree.c (staticp): TLS variables are not static.
7241
7242         * target-def.h (TARGET_HAVE_TLS): New.
7243         * target.h (have_tls): New.
7244         * output.h (SECTION_TLS): New.
7245         * varasm.c (assemble_variable): TLS variables can't be common for now.
7246         (default_section_type_flags): Handle .tdata and .tbss.
7247         (default_elf_asm_named_section): Handle SECTION_TLS.
7248         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
7249
7250         * flags.h (flag_tls_default): Declare.
7251         * toplev.c (flag_tls_default): Define.
7252         (display_help): Display help for it.
7253         (decode_f_option): Set it.
7254
7255         * doc/extend.texi (Thread-Local): New node describing language-level
7256         thread-local storage.
7257         * doc/invoke.texi (-ftls-model): Document.
7258
7259         * fixinc/inclhack.def (thread_keyword): New.
7260         * fixinc/fixincl.x: Rebuild.
7261
7262 2002-05-21  Jeffrey A Law  <law@redhat.com>
7263
7264         * optabs.c (expand_binop): For double-word integer multiplies,
7265         do not compute intermediate results into something that is
7266         not a register (such as a SUBREG or MEM).
7267
7268         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
7269         (ix86_sched_reorder): Make sure to initialize scheduling
7270         data even when there's only one insn in the ready queue.
7271
7272 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
7273
7274         * genautomata.c (reserv_sets_hash_value): Fix a typo.
7275
7276 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
7277
7278         * genautomata.c (reserv_sets_hash_value): Define hash_value as
7279         set_el_t.  Transform the hash value into unsigned.
7280         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
7281         (transform_3): Add code to process `(A,B)+(D,E)'.
7282
7283 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
7284
7285         * reload1.c (do_output_reload): Run delete_output_reload
7286         only if optimizing.
7287
7288 2002-05-21  Roger Sayle  <roger@eyesopen.com>
7289
7290         PR middle-end/6600
7291         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
7292         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
7293         (can_store_by_pieces): ... and here to limit the largest mode used.
7294         Add a comment to document this function.
7295
7296 2002-05-21  Richard Henderson  <rth@redhat.com>
7297
7298         * flow.c (life_analysis): Fix test for deleted label.
7299
7300 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7301
7302         * doc/tm.texi: Fix typo.
7303
7304 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
7305
7306         * c-common.c (c_common_init): Set options->unsigned_char from
7307         flag_signed_char.
7308         (cb_register_builtins): Define __STRICT_ANSI__ and
7309         __CHAR_UNSIGNED__ here...
7310         * cppinit.c (init_builtins): Not here.
7311         (cpp_create_reader): unsigned_char option defaults to 0, not
7312         !DEFAULT_SIGNED_CHAR.
7313         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
7314         and -funsigned-char.
7315
7316         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
7317         * cpphash.c (_cpp_init_hashtable): Don't set it.
7318         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
7319         directly.  Clarify comment.
7320
7321 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7322
7323         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
7324         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
7325         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
7326         BASIC_BLOCK (n_basic_blocks - 1).
7327         * cfganal.c (can_fallthru, flow_call_edges_add,
7328         flow_preorder_transversal_compute): Too.
7329         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
7330         find_sub_basic_blocks): Too.
7331         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
7332         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
7333         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
7334         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
7335         * combine.c (this_basic_block): Type changed to basic_block.
7336         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
7337         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
7338         get_last_value, distribute_notes, distribute_links): Too.
7339         * final.c (compute_alignments): Too.
7340         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
7341         * function.c (thread_prologue_and_epilogue_insns): Too.
7342         * gcse.c (compute_code_hoist_vbeinout): Too.
7343         * global.c (build_insn_chain): Too.
7344         * ifcvt.c (find_if_block, find_cond_trap): Too.
7345         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
7346         * regmove.c (regmove_optimize): Too.
7347         * resource.c (find_basic_block): Too.
7348         * sched-ebb.c (schedule_ebbs): Too.
7349         * ssa-dce.c (find_control_dependence, find_pdom): Too.
7350
7351 2002-05-21  Andreas Jaeger  <aj@suse.de>
7352
7353         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
7354
7355 2002-05-21  Richard Henderson  <rth@redhat.com>
7356
7357         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
7358         unspec names, not numbers.
7359
7360 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7361
7362         * doc/sourcebuild.texi: Mention snapshot-README and
7363         snapshot-index.html as needing updating for new front ends.
7364
7365 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7366
7367         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
7368         disabling checking, and avoid multiple evaluation of RTX.
7369
7370 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
7371
7372         * bitmap.c (bitmap_find_bit): Return early if we have the correct
7373         element cached.
7374
7375 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
7376
7377         * profile.c (gen_edge_profiler):  Set alias set before the memory is
7378         used.
7379
7380 2002-05-20  David S. Miller  <davem@redhat.com>
7381
7382         * cselib.c (max_value_regs): New.
7383         (cselib_lookup, cselib_invalidate_regno): Initialize it when
7384         adding new entries to the REG_VALUES table and we are dealing with
7385         a hard register.
7386         (clear_table): Initialize it.
7387         (cselib_invalidate_regno): Use it to determine which hard
7388         registers to scan when mode is not VOIDmode.
7389
7390 2002-05-20  Duraid Madina   <duraid@fl.net.au>
7391
7392         * tradcpp.c (fixup_newlines): Use old-style function header.
7393
7394 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
7395
7396         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
7397
7398 2002-05-20  H.J. Lu  (hjl@gnu.org)
7399
7400         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
7401
7402         * config/mips/mips.h (DFMODE_NAN): Defined.
7403         (SFMODE_NAN): Likewise.
7404
7405 2002-05-20  Dale Johannesen  <dalej@apple.com>
7406
7407         * combine.c (cant_combine_insn_p):  Back out my
7408         previous patch.
7409
7410 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
7411
7412         * params.c: Fix formatting.
7413         * params.h: Likewise.
7414         * predict.c: Likewise.
7415         * prefix.c: Likewise.
7416         * print-rtl.c: Likewise.
7417         * print-tree.c: Likewise.
7418         * profile.c: Likewise.
7419
7420 2002-05-20  H.J. Lu  (hjl@gnu.org)
7421
7422         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
7423
7424 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
7425
7426         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
7427         switches straight on to the assembler, do not abbreviate them.
7428         * config/arm/elf.h (ASM_SPEC): As above.
7429         * config/arm/semi.h (ASM_SPEC): As above.
7430         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
7431         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
7432         -mcpu=xscale on to the assembler by default.
7433         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
7434
7435 2002-05-20  Richard Henderson  <rth@redhat.com>
7436
7437         * cse.c (canon_hash): Reorder do_not_record test.  Always
7438         allow pic_offset_table_rtx.
7439
7440 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
7441
7442         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
7443         (expand_binop): Ditto (3 times).
7444
7445 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
7446
7447         * Makefile.in (distclean): Remove QMTest stuff.
7448         (QMTEST_PATH): New variable.
7449         (QMTESTFLAGS): Likewise.
7450         (QMTESTRUNFLAGS): Likewise.
7451         (QMTEST): Likewise.
7452         (QMTEST_GPP_TESTS): Likewise.
7453         (QMTEST_DIR): Likewise.
7454         (QMTEST_DIR/context): New target.
7455         (qmtest-g++): Likeise.
7456         (qmtest-gui): Likewise.
7457         (QMTEST_DIR/gpp-expected.qmr): Likewise.
7458
7459 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
7460
7461         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
7462         an altivec register if TARGET_ALTIVEC.
7463
7464         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
7465         to ALTIVEC_VECTOR_MODE.
7466         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
7467         (rs6000_va_arg): Vectors may go in registers if they are not
7468         altivec vectors.
7469
7470 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
7471
7472         * protoize.c: Fix formatting.
7473
7474 2002-05-19  Richard Henderson  <rth@redhat.com>
7475
7476         * gensupport.c (init_include_reader): Merge into ...
7477         (process_include): ... here.  Simplify composite path creation.
7478         Plug memory leaks.  Fix file/line number tracking.  Do not
7479         process_define_cond_exec.  Return void.
7480         (process_rtx): Don't check process_include return value.
7481
7482 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7483
7484         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
7485         fields.
7486         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
7487         traversing basic block chain.
7488         (create_basic_block_structure, create_basic_block): Declaration changed.
7489         (link_block, unlink_block): Declare.
7490         * cfg.c (entry_exit_blocks): Initialize new fields.
7491         (link_block, unlink_block): New.
7492         (expunge_block_nocompact): Unlink basic block.
7493         (dump_flow_info): Print prev_bb/next_bb fields.
7494         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
7495         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
7496         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
7497         * cfgrtl.c (create_basic_block_structure, create_basic_block,
7498         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
7499         (verify_flow_info): Check that list agrees with numbering.
7500
7501 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7502
7503         * c-common.c (preprocessing_asm): New macro.
7504         * c-lex.h (builtin_define, builtin_assert): Use pfile.
7505 doc:
7506         * tm.texi: Update.
7507 config/alpha:
7508         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
7509         (CPP_SPEC): Simplify.
7510         (TARGET_CPU_CPP_BUILTINS): Update.
7511         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
7512         (CPP_SPEC): Simplify.
7513         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
7514         (TARGET_OS_CPP_BUILTINS): Update.
7515         * osf.h (CPP_XFLOAT_SPEC): Kill.
7516         (TARGET_OS_CPP_BUILTINS): Update.
7517         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
7518         * osf5.h (CPP_XFLOAT_SPEC): Kill.
7519         * vms.h (CPP_SUBTARGET_SPEC): Kill.
7520         (TARGET_OS_CPP_BUILTINS): Update.
7521
7522 2002-05-19  Richard Henderson  <rth@redhat.com>
7523
7524         * varasm.c (default_binds_local_p): Fix typo.
7525
7526 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7527
7528         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
7529         CONST_INT operand to the correct mode after adding 1 to it.
7530
7531 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
7532
7533         * config.gcc (powerpc-wrs-windiss*): New target.
7534
7535 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7536
7537         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
7538         (ashrdi3): Use it.
7539
7540 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
7541
7542         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
7543         alphasort.
7544         * config.in: Regenerated.
7545         * configure: Regenerated.
7546
7547 2002-05-19  Richard Henderson  <rth@redhat.com>
7548
7549         * target-def.h (TARGET_BINDS_LOCAL_P): New.
7550         * target.h (struct gcc_target): Move boolean fields to the end.
7551         Add binds_local_p.
7552         * varasm.c (default_binds_local_p): New.
7553         * output.h: Declare it.
7554
7555         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
7556         * config/cris/cris.c (cris_encode_section_info): Likewise.
7557         * config/i386/i386.c (i386_encode_section_info): Likewise.
7558         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
7559         * config/sh/sh.c (sh_encode_section_info): Likewise.
7560
7561         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
7562         (TARGET_BINDS_LOCAL_P): New.
7563
7564 2002-05-19  Richard Henderson  <rth@redhat.com>
7565
7566         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
7567         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
7568         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
7569
7570         * toplev.c (display_help): Kill -a -ax help.
7571
7572         * config/1750a/1750a.h, config/alpha/alpha.h,
7573         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
7574         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
7575         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
7576         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
7577
7578         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
7579         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
7580
7581         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
7582         (ix86_output_function_block_profiler): Kill.
7583         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
7584         (m68hc11_function_block_profiler): Kill.
7585         * config/m68hc11/m68hc11-protos.h: Update.
7586         * config/m88k/m88k.c (output_block_profiler): Kill.
7587         (output_function_block_profiler): Kill.
7588         * config/m88k/m88k-protos.h: Update.
7589
7590 2002-05-19  Richard Henderson  <rth@redhat.com>
7591
7592         * system.h (STRIP_NAME_ENCODING): Poison it.
7593         * output.h (STRIP_NAME_ENCODING): Remove.
7594         (default_strip_name_encoding): Declare.
7595         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
7596         * target.h (strip_name_encoding): New.
7597         * varasm.c (default_strip_name_encoding): New.
7598
7599         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
7600         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
7601         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
7602         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
7603         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
7604         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
7605         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
7606         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
7607         config/v850/v850.h: Use the hook, not the macro.
7608
7609         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
7610         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
7611         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
7612         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
7613         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
7614         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
7615         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
7616         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
7617         config/v850/v850.c, config/v850/v850.h:
7618         Move STRIP_NAME_ENCODING to out-of-line function and add
7619         TARGET_STRIP_NAME_ENCODING.
7620
7621         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
7622         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
7623         with TARGET_STRIP_NAME_ENCODING referencing existing function;
7624         make function static.
7625
7626         * xcoffout.c: Include target.h
7627         * Makefile.in (xcoffout.o): Update.
7628
7629         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
7630         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
7631         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
7632         reloc argument unused.
7633         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
7634
7635         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
7636         STRIP_NAME_ENCODING docs.
7637
7638 2002-05-19  Andreas Jaeger  <aj@suse.de>
7639
7640         * gengenrtl.c: Add prototype for excluded_rtx.
7641
7642         * real.h: Add prototype for exact_real_truncate.
7643
7644 2002-05-18  Richard Henderson  <rth@redhat.com>
7645
7646         * system.h (ENCODE_SECTION_INFO): Poison it.
7647         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
7648         * target.h (encode_section_info): New.
7649         * varasm.c (make_decl_rtl, output_constant_def): Use it.
7650         * hooks.c (hook_tree_int_void): New.
7651         * hooks.h: Declare it.
7652
7653         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
7654         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
7655         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
7656         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
7657         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
7658         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
7659         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
7660         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
7661         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
7662         config/mcore/mcore-protos.h, config/mcore/mcore.c,
7663         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
7664         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
7665         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
7666         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
7667         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
7668         referencing existing function.  Make function static.
7669
7670         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
7671         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
7672         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
7673         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
7674         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
7675         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
7676         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
7677         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
7678         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
7679         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
7680         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
7681         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
7682         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
7683         Move ENCODE_SECTION_INFO to out-of-line function and add
7684         TARGET_ENCODE_SECTION_INFO.
7685
7686         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
7687         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7688
7689         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
7690         from SUBTARGET_*
7691         (switch_to_section): Replace in_rdata case with in_readonly_data.
7692
7693         * config/h8300/h8300.c (h8300_encode_label): Make static.
7694         * config/h8300/h8300-protos.h: Update.
7695
7696         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
7697         from rs6000_encode_section_info; make static.
7698         (rs6000_xcoff_encode_section_info): New.
7699
7700         * config/v850/v850.c (v850_encode_data_area): Make static.
7701         * config/v850/v850-protos.h: Update.
7702
7703         * config/vax/vax.c: Include flags.h.
7704         (vms_select_section): Fix typo.
7705
7706         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
7707         ENCODE_SECTION_INFO docs.
7708
7709 2002-05-18  Richard Henderson  <rth@redhat.com>
7710
7711         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
7712         REGISTER_TARGET_PRAGMAS.
7713         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
7714
7715         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
7716
7717 2002-05-18  Richard Henderson  <rth@redhat.com>
7718
7719         * system.h (SELECT_RTX_SECTION): Poison.
7720         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
7721         * target.h (select_rtx_section): New.
7722         * varasm.c (output_constant_pool): Use it.
7723         (default_select_rtx_section, default_elf_select_rtx_section): New.
7724         * output.h: Declare them.
7725
7726         * config/darwin.h (SELECT_RTX_SECTION): Move ...
7727         * config/darwin.c (machopic_select_rtx_section): ... here.
7728         * config/darwin-protos.h: Update.
7729
7730         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
7731         * config/nextstep.c (machopic_select_rtx_section): ... here.
7732         (nextstep_select_section): Rename variable to avoid macro clash.
7733         * config/nextstep-protos.h: Update.
7734
7735         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
7736         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
7737         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
7738         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
7739         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
7740         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
7741         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
7742         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
7743         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
7744         (SELECT_RTX_SECTION): Remove.
7745
7746         * config/darwin.h, config/elfos.h, config/nextstep.h,
7747         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
7748         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
7749         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
7750         config/sparc/lynx.h, config/xtensa/xtensa.c
7751         (TARGET_ASM_SELECT_RTX_SECTION): New.
7752
7753         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
7754         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
7755         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
7756         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
7757         (ia64_aix_select_rtx_section): New.
7758         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
7759         redefining.
7760         * config/mips/mips.c (mips_select_rtx_section): Make static.
7761         Support ELF SHF_MERGE features.
7762         * config/mips/mips-protos.h: Update.
7763         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
7764         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
7765         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
7766         make static, fall back to default_elf_select_rtx_section.
7767         * config/rs6000/rs6000-protos.h: Update.
7768         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
7769         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
7770         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
7771         * config/romp/romp.c (romp_select_rtx_section): New.
7772         * config/s390/s390.c (s390_select_rtx_section): New.
7773         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
7774         declarations before target macro definition.
7775         (xtensa_emit_call): Use static buffer.
7776         (xtensa_select_rtx_section): New.
7777         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
7778         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
7779         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
7780
7781         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
7782         SELECT_RTX_SECTION docs.
7783
7784 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
7785
7786         * i386.md (movsi/movdi): Fix template.
7787         (sse2 patterns): Set attributes consistently.
7788
7789         * i386.md (pushqi2, ashrqi_*): Fix constraint.
7790
7791 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7792
7793         * optabs.c (complex_part_zero_p): New.
7794         * (expand_cmplxdiv_straight): Use it.
7795         * (expand_cmplxdiv_wide): Ditto.
7796         * (expand_binop): Ditto.
7797
7798 2002-05-18  Richard Henderson  <rth@redhat.com>
7799
7800         * final.c (HAVE_READONLY_DATA_SECTION): New.
7801         (shorten_branches): Use it instead of ifdefs.
7802         * varasm.c (enum in_section): Add in_readonly_data.
7803         (text_section, data_section): Tidy.
7804         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
7805
7806         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
7807         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
7808         (READONLY_DATA_SECTION): Don't undef.
7809
7810         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
7811         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
7812         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
7813
7814         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
7815         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
7816         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
7817         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
7818
7819         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
7820         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
7821         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
7822         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
7823         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
7824         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
7825         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
7826         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
7827         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
7828
7829         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
7830         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
7831         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
7832         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
7833         config/pa/pa64-hpux.h, config/sparc/litecoff.h
7834         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
7835
7836         * config/elfos.h, config/netware.h, config/svr3.h,
7837         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
7838         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
7839         config/h8300/h8300.h, config/i386/i386-interix.h,
7840         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
7841         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
7842
7843         * config/elfos.h, config/netware.h, config/svr3.h,
7844         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
7845         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
7846         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
7847         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
7848
7849         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
7850         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
7851         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
7852         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
7853         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
7854         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
7855         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
7856         config/rs6000/sysv4.h, config/v850/v850.h
7857         (EXTRA_SECTIONS): Remove in_const/in_rdata.
7858         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
7859
7860         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
7861         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
7862         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
7863         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
7864         * config/alpha/alpha.c (alpha_start_function): Likewise.
7865         (alpha_write_linkage): Likewise.
7866         * config/m32r/m32r.c (m32r_select_section): Likewise.
7867         * config/m88k/m88k.c (m88k_select_section): Likewise.
7868         * config/mips/mips.c (mips_select_rtx_section): Likewise.
7869         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
7870         (rs6000_elf_select_section): Likewise.
7871         * config/v850/v850.c (v850_select_section): Likewise.
7872
7873         * config/1750a/1750a.h, config/i860/sysv3.h
7874         (READONLY_DATA_SECTION_ASM_OP): New.
7875         READONLY_DATA_SECTION_ASM_OP.
7876         * config/i386/interix.c, config/i386/winnt.c
7877         (i386_pe_unique_section): Always use .rdata prefix.
7878         * config/pa/som.h (readonly_data): Always switch to read-only section.
7879         (READONLY_DATA_SECTION): Predicate on flag_pic.
7880         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
7881         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
7882         (READONLY_DATA_SECTION): Update.
7883
7884 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
7885
7886         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
7887         is used without -Wformat.
7888         * c-common.h (warn_format_zero_length): Declare extern.
7889         * c-decl.c (warn_options): Add "format-zero-length".
7890         * c-format.c (warn_format_zero_length): Declare.
7891         (set_Wformat): Set warn_format_zero_length for -Wformat.
7892         (check_format_info): Only warn about zero-length formats if
7893         warn_format_zero_length is true.  Include the format type
7894         name in the warning message.
7895         * doc/invoke.texi: Document -Wformat-zero-length.
7896         * testsuite/gcc.dg/format/zero-length-1.c: New test.
7897
7898 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
7899
7900         * timevar.c: Fix formatting.
7901         * tlink.c: Likewise.
7902         * toplev.c: Likewise.
7903         * tree-dump.c: Likewise.
7904         * tree-inline.c: Likewise.
7905
7906 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
7907
7908         * cppinit.c (cpp_post_options): If preprocessed, turn off
7909         traditional.  If traditional, turn off column numbers.
7910         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
7911         * cpptrad.c (handle_newline): Update line_base.
7912         (skip_comment): Handle -Wcomment.
7913
7914 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
7915
7916         * cppinit.c (struct builtin): Remove unused fields.
7917         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
7918         (operator_array): New - was second half of builtin_array.
7919         (init_builtins): Simplify loop over builtin_array/operator_array.
7920
7921 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
7922
7923         * defaults.h (UNIQUE_SECTION): Remove.
7924         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
7925
7926 2002-05-17  Richard Henderson  <rth@redhat.com>
7927
7928         * expr.c (init_expr_once): Don't use start/end_sequence.
7929         Use rtx_alloc instead of emit_insn.
7930         * toplev.c (lang_dependent_init): Run init_expr_once here ...
7931         (lang_independent_init): ... not here.
7932
7933 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
7934
7935         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
7936
7937 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7938
7939         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
7940         for fixed registers, possibly used for global register variables.
7941         (initial_elimination_offset, avr_output_function_prologue,
7942         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
7943
7944 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7945
7946         * Makefile.in: Update for cpptrad.c.
7947         * cpphash.h (struct cpp_buffer): New members for buffer
7948         overlays.
7949         (struct cpp_reader): New members for traditional output.
7950         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
7951         * cppinit.c (cpp_create_reader): Set trad_line.
7952         (cpp_destroy): Free trad_out_base if used.
7953         (cpp_read_main_file): Overlay an empty buffer if traditional.
7954         (cpp_finish_options): Don't do builtins.
7955         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
7956         (cpp_handle_option): Handle it.
7957         * cpplex.c (continue_after_nul): New.
7958         (_cpp_lex_direct): Use handle_nul.
7959         * cpplib.h (struct cpp_options): New traditional option.
7960         * cpptrad.c: New file.
7961
7962 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7963
7964         * c-common.c (c_common_init_options): Use C89 for Objective-C,
7965         and set the options flag.
7966         * cppinit.c (lang_flags): Remove objc.
7967         (lang_defaults): Remove OBJC and OBJCXX.
7968         (set_lang): Update.
7969         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
7970         (cpp_handle_option): Remove -+ and -lang-objc++.
7971         For ObjC, just set a flag.
7972         (print_help): Update.
7973         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
7974
7975 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7976
7977         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
7978         bootstrap with -mips3.
7979
7980 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
7981
7982         * final.c: Fix formatting.
7983         * fix-header.c: Likewise.
7984         * flow.c: Likewise.
7985         * fold-const.c: Likewise.
7986         * function.c: Likewise.
7987
7988 2002-05-17  David S. Miller  <davem@redhat.com>
7989
7990         PR c/6689, PR optimization/6615
7991         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
7992         and make it a pointer to rtx.  Update comments.
7993         (update_equiv_regs): When scanning for equivalences, record
7994         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
7995         it while making the equiv replacements.
7996
7997 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7998
7999         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
8000
8001 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
8002
8003         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
8004         when encoding visibility into SYMBOL_REF_FLAG.
8005
8006 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
8007
8008         * expr.c (force_operand): Fix reversed move.
8009
8010 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
8011
8012         * doc/install.texi (Testing): Mention two common DejaGnu warnings
8013         that can be ignored.
8014
8015 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8016
8017         * doc/install.texi (Final install): Recommend to install into a
8018         "clean" target directory.
8019
8020 2002-05-17  Richard Henderson  <rth@redhat.com>
8021
8022         * config/ia64/ia64.md: Use braced strings instead of quoted strings
8023         for code blocks.  Tidy whitespace.
8024
8025 2002-05-17  Richard Henderson  <rth@redhat.com>
8026
8027         * hooks.c (hook_tree_bool_false): New.
8028         * hooks.h: Declare it.
8029         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
8030         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
8031         * target.h (select_section, unique_section): New.
8032         (in_small_data_p): New.
8033         * varasm.c (resolve_unique_section): Use hooks instead of macros.
8034         (variable_section, output_constant_def_contents): Likewise.
8035         (default_select_section, default_unique_section): New.
8036         (categorize_decl_for_section, default_elf_select_section): New.
8037         * output.h: Declare them.
8038
8039         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
8040         (TARGET_ASM_SELECT_SECTION): New.
8041         (SELECT_SECTION): Move ...
8042         * config/darwin.c (machopic_select_section): ... here.
8043         * config/darwin-protos.h: Update.
8044
8045         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
8046         (SELECT_SECTION): Move ...
8047         * config/nextstep.c (nextstep_select_section): ... here.
8048         * config/nextstep-protos.h: Update.
8049
8050         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
8051         (TARGET_ASM_SELECT_SECTION): New.
8052         * config/svr3.h (SELECT_SECTION): Remove.
8053
8054         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
8055         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
8056         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
8057         (alpha_encode_section_info): Use it.
8058         * config/alpha/alpha-protos.h: Update.
8059         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
8060         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8061         (TARGET_ASM_SELECT_SECTION): New.
8062         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
8063
8064         * config/arm/pe.h (UNIQUE_SECTION): Remove.
8065         (TARGET_ASM_UNIQUE_SECTION): New.
8066
8067         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
8068         (avr_unique_section): Rename from unique_section; make static.
8069         * config/avr/avr-protos.h: Update.
8070         * config/avr/avr.h (UNIQUE_SECTION): Remove.
8071
8072         * config/c4x/c4x.h (SELECT_SECTION): Remove.
8073
8074         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
8075         (TARGET_ASM_UNIQUE_SECTION): New.
8076         * config/i386/i386-interix.h: Likewise.
8077         * config/i386/win32.h: Likewise.
8078         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
8079         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
8080         * config/i386/sco5.h (SELECT_SECTION): Remove.
8081         (TARGET_ASM_SELECT_SECTION): New.
8082         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
8083
8084         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
8085         instead of SELECT_SECTION.
8086         * config/m68k/dpx2.h: Likewise.
8087         * config/rs6000/lynx.h: Likewise.
8088
8089         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8090         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8091         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
8092         (ia64_in_small_data_p): New.
8093         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
8094         (ia64_aix_select_section, ia64_aix_unique_section): New.
8095         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
8096         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8097
8098         * config/m32r/m32r.h (SELECT_SECTION): Remove.
8099         (TARGET_ASM_SELECT_SECTION): New.
8100         * config/m32r/m32r.c (m32r_select_section): Take align argument.
8101         * config/m32r/m32r-protos.h: Update.
8102
8103         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
8104         (SELECT_SECTION): Move ...
8105         * config/m88k/m88k.c (m88k_select_section): ... here.
8106
8107         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
8108         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
8109         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
8110         (mcore_unique_section): Make static.
8111         * config/mcore/mcore-protos.h: Update.
8112
8113         * config/mips/elf.h (UNIQUE_SECTION): Remove.
8114         (TARGET_ASM_UNIQUE_SECTION): New.
8115         * config/mips/elf64.h: Likewise.
8116         * config/mips/iris6gld.h: Likewise.
8117         * config/mips/linux.h: Likewise.
8118         * config/mips/mips-protos.h: Update.
8119         * config/mips/mips.c (mips_select_section): Add align argument.
8120         * config/mips/mips.h (SELECT_SECTION): Remove.
8121         (TARGET_ASM_SELECT_SECTION): New.
8122
8123         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8124         * config/mmix/mmix.c (mmix_select_section): Remove.
8125         (mmix_unique_section): Remove.
8126         * config/mmix/mmix-protos.h: Update.
8127
8128         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
8129         (SELECT_SECTION): Move ...
8130         * config/pa/pa.c (pa_select_section): ... here.
8131         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
8132
8133         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
8134         from rs6000_select_section and make static.
8135         (rs6000_elf_unique_section): Similarly.
8136         (rs6000_xcoff_select_section): From xcoff.h.
8137         (rs6000_xcoff_unique_section): Likewise.
8138         * config/rs6000/rs6000-protos.h: Update.
8139         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8140         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8141         * config/rs6000/xcoff.h: Likewise.
8142
8143         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
8144         (SELECT_SECTION): Move ...
8145         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
8146
8147         * config/v850/v850.h (SELECT_SECTION): Move ...
8148         * config/v850/v850.c (v850_select_section): ... here.
8149         (TARGET_ASM_SELECT_SECTION): New.
8150
8151         * config/vax/vms.h (SELECT_SECTION): Move ...
8152         * config/vax/vax.c (vms_select_section): ... here.
8153         (TARGET_ASM_SELECT_SECTION): New.
8154
8155         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
8156         for the target hooks.
8157
8158 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
8159
8160         * config/arm/arm.c (emit_multi_reg_push): Do not set
8161         RTX_FRAME_RELATED_P on the SEQUENCE.
8162
8163 2002-05-16  Richard Henderson  <rth@redhat.com>
8164
8165         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
8166         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
8167
8168 2002-05-16  Richard Henderson  <rth@redhat.com>
8169
8170         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
8171
8172         * config/ia64/ia64.c (saveable_obstack): Do not declare.
8173
8174 2002-05-16  Richard Henderson  <rth@redhat.com>
8175
8176         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
8177         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
8178         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
8179         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
8180         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
8181         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
8182         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
8183         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
8184         Revert "Basic block renumbering removal", and two followup patches.
8185
8186 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
8187
8188         * lcm.c (optimize_mode_switching): Revert previous change.
8189
8190 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8191
8192         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
8193         with only extant block numbers.
8194
8195 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
8196
8197         * lcm.c (optimize_mode_switching): Fix typo.
8198
8199 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8200
8201         * flow.c (calculate_global_regs_live): Queue blocks in program order.
8202
8203 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8204
8205         * doc/install.texi (Configuration): Document PWDCMD.
8206
8207 2002-05-16  Dale Johannesen  <dalej@apple.com>
8208
8209         * combine.c (cant_combine_insn_p):  Reenable combinations
8210         involving hard regs unless CLASS_LIKELY_SPILLED_P.
8211
8212 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8213
8214         * c-common.c (cb_register_builtins): Handle more built-ins
8215         here rather than in gcc.c specs.
8216         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
8217         (cpp_options): Pass -O flags even when only preprocessing.
8218         * toplev.c (set_fast_math_flags): New prototype.
8219         (fast_math_flags_set_p): New.
8220         (set_no_fast_math_flags): Remove.
8221         (decode_f_option): Update.
8222         * toplev.h (set_fast_math_flags): Update.
8223         (fast_math_flags_set_p): New.
8224         (set_no_fast_math_flags): Remove.
8225 config:
8226         * c4x/c4x.c (c4x_override_options): Update.
8227
8228 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
8229
8230         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
8231         Default-define here.
8232         (builtin_define_with_value): Can now wrap the expansion in
8233         quotation marks if such is wanted.
8234         (cb_register_builtins): Update calls to builtin_define_with_value.
8235         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
8236         here.
8237         (c_common_init): Set options->stdc_0_in_system_headers.
8238         * c-lex.h: Update prototype of builtin_define_with_value.
8239         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
8240         and REGISTER_PREFIX.
8241
8242         * cppinit.c (VERS, ULP, C, X): Kill.
8243         (builtin_array): Remove entries for __VERSION__,
8244         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
8245         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
8246         a constant.
8247         (init_builtins): Kill off a bunch of now-dead code.
8248         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
8249         -fno-leading-underscore.
8250         (cpp_handle_option): Remove code to set user_label_prefix.
8251         (cpp_post_options): Likewise.
8252
8253         * cpplib.h (struct cpp_options): Remove user_label_prefix.
8254         (stdc_0_in_system_headers): New.
8255         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
8256         stdc_0_in_system_headers) too to decide the value of __STDC__.
8257
8258         * tradcpp.c (user_label_prefix): Kill.
8259         (main): Remove code handling -f(no-)leading-underscore.
8260         (initialize_builtins): Don't define __REGISTER_PREFIX__
8261         or __USER_LABEL_PREFIX__.
8262         (install_value): Wrap compound statement in dummy loop so the
8263         macro works properly in an if statement.
8264
8265
8266 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
8267
8268         * loop.h (struct loop_info): Add member has_prefetch.
8269         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
8270         (prescan_loop): Initialize has_prefetch.
8271         (struct prefetch_info): Change prefetch_in_loop and
8272         prefetch_before_loop from bit fields to ints.
8273         (emit_prefetch_instructions): Several small fixes.
8274         (check_dbra_loop): Don't reverse loop that uses prefetch.
8275
8276 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8277
8278         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
8279         * configure.in: Likewise.
8280         * fixinc/check.tpl: Likewise.
8281         * fixinc/fixinc.dgux: Likewise.
8282         * fixinc/fixinc.svr4: Likewise.
8283         * fixinc/fixinc.winnt: Likewise.
8284         * fixinc/fixincl.sh: Likewise.
8285         * fixproto: Likewise.
8286         * configure: Regenerate.
8287
8288 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8289
8290         Basic block renumbering removal:
8291         * basic_block.h (struct basic_block_def): Renamed index to sindex,
8292         added prev_bb and next_bb fields.
8293         (n_basic_blocks): Renamed to num_basic_blocks.
8294         (last_basic_block): New, index of last basic block.
8295         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
8296         traversing basic block chain.
8297         (BLOCK_NUM): index -> sindex.
8298         (create_basic_block_structure, create_basic_block): Declaration changed.
8299         (debug_num2bb): Declare.
8300         (expunge_block_nocompact): Declaration removed.
8301         (link_block, unlink_block, compact_blocks): Declare.
8302         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
8303         * cfg.c (entry_exit_blocks): Initialize new fields.
8304         (clear_edges, alloc_block, expunge_block, cached_make_edge,
8305         redirect_edge_pred, dump_flow_info, dump_edge_info,
8306         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
8307         free_aux_for_edges): Modified.
8308         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
8309         (expunge_block_nocompact): Removed.
8310         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
8311         find_unreachable_blocks, create_edge_list, print_edge_list,
8312         verify_edge_list, flow_edge_list_print, remove_fake_successors,
8313         remove_fake_edges, flow_reverse_top_sort_order_compute,
8314         flow_depth_first_order_compute, flow_preorder_transversal_compute,
8315         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
8316         flow_dfs_compute_reverse_execute): Modified.
8317         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
8318         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
8319         Modified.
8320         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8321         merge_blocks_move_predecessor_nojumps,
8322         merge_blocks_move_successor_nojumps, merge_blocks,
8323         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
8324         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
8325         * cfglayout.c (skip_insns_after_block, label_for_bb,
8326         record_effective_endpoints, scope_to_insns_finalize,
8327         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
8328         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
8329         cfg_layout_duplicate_bb): Modified.
8330         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
8331         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
8332         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
8333         flow_loops_find, flow_loop_outside_edge_p): Modified.
8334         * cfgrtl.c (create_basic_block_structure, create_basic_block,
8335         flow_delete_block, compute_bb_for_insn, split_block,
8336         try_redirect_by_replacing_jump, redirect_edge_and_branch,
8337         force_nonfallthru_and_redirect, tidy_fallthru_edge,
8338         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
8339         commit_edge_insertions, commit_edge_insertions_watch_calls,
8340         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
8341         purge_all_dead_edges): Modified.
8342         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
8343         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
8344         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
8345         Modified.
8346         * conflict.c (conflict_graph_compute): Modified.
8347         * df.c (FOR_ALL_BBS): Removed.
8348         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
8349         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
8350         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
8351         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
8352         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
8353         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
8354         * final.c (compute_alignments, final_scan_insn): Modified.
8355         * flow.c (verify_local_live_at_start, update_life_info,
8356         update_life_info_in_dirty_blocks, free_basic_block_vars,
8357         delete_noop_moves, calculate_global_regs_live,
8358         initialize_uninitialized_subregs, allocate_bb_life_data,
8359         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
8360         mark_used_reg, count_or_remove_death_notes): Modified.
8361         * function.c (thread_prologue_and_epilogue_insns): Modified.
8362         * gcse.c (struct null_pointer_info): Change typo of current_block
8363         to basic_block.
8364         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
8365         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
8366         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
8367         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
8368         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
8369         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
8370         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
8371         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
8372         pre_delete, one_pre_gcse_pass, compute_transpout,
8373         invalidate_nonnull_info, delete_null_pointer_checks_1,
8374         free_code_hoist_mem, compute_code_hoist_vbeinout,
8375         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
8376         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
8377         compute_store_table, build_store_vectors, insert_insn_start_bb,
8378         insert_store, replace_store_insn, free_store_memory, store_motion):
8379         Modified.
8380         * global.c (global_alloc, global_conflicts, mark_elimination,
8381         build_insn_chain): Modified.
8382         * graph.c (print_rtl_graph_with_bb): Modified.
8383         * haifa-sched.c (sched_init): Modified.
8384         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
8385         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
8386         if_convert): Modified.
8387         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
8388         compute_insert_delete, pre_edge_lcm, compute_available,
8389         compute_farthest, compute_nearerout, compute_rev_insert_delete,
8390         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
8391         Modified.
8392         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
8393         * loop.c (loop_dump_aux): Modified.
8394         * predict.c (combine_predictions_for_insn, estimate_probability,
8395         last_basic_block_p, process_note_prediction, process_note_predictions,
8396         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
8397         expensive_function_p, estimate_bb_frequencies,
8398         compute_function_frequency): Modified.
8399         * print-rtl.c (print_rtx): Modified.
8400         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
8401         get_exec_counts, compute_branch_probabilities, compute_checksum,
8402         branch_prob, find_spanning_tree): Modified.
8403         * recog.c (split_all_insns, peephole2_optimize): Modified.
8404         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
8405         convert_regs_1, convert_regs_2, convert_regs): Modified.
8406         * regclass.c (scan_one_insn, regclass): Modified.
8407         * regmove.c (mark_flags_life_zones, regmove_optimize,
8408         combine_stack_adjustments): Modified.
8409         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
8410         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
8411         * reorg.c (dbr_schedule): Modified.
8412         * resource.c (find_basic_block, init_resource_info): Modified.
8413         * sbitmap.c (sbitmap_intersection_of_succs,
8414         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
8415         sbitmap_union_of_preds): Modified.
8416         * sched-deps.c (init_dependency_caches): Modified.
8417         * sched-ebb.c (schedule_ebbs): Modified.
8418         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
8419         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
8420         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
8421         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
8422         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
8423         ssa_const_prop): Modified.
8424         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
8425         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
8426         * ssa.c (remove_phi_alternative, find_evaluations,
8427         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
8428         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
8429         make_regs_equivalent_over_bad_edges,
8430         make_equivalent_phi_alternatives_equival,
8431         compute_conservative_reg_partition,
8432         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
8433         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
8434         Modified.
8435
8436 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
8437
8438         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
8439
8440 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
8441
8442         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
8443         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
8444         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
8445         calling CONSTANT_POOL_ADDRESS_P.
8446         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
8447         to decide whether to define __arm__ or __thumb.
8448         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
8449         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
8450
8451 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8452
8453         * config/arc/arc.h (CPP_PREDEFINES): Remove.
8454         (CPP_SPEC): Update.
8455         (TARGET_CPU_CPP_BUILTINS): New.
8456
8457 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8458
8459         * cpphash.h (cpp_macro): Move here, and make expansion a union.
8460         * cppmacro.c (cpp_macro): Remove.
8461         (enter_macro_context, replace_args, warn_of_redefinition,
8462         _cpp_create_definition, cpp_macro_definition): Update.
8463
8464 2002-05-16  Jason Merrill  <jason@redhat.com>
8465
8466         * config/mips/mips.c (mips_output_external): Don't do sdata
8467         optimization for a variable with DECL_COMDAT set.
8468
8469 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8470
8471         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
8472         Cleanups for accepting modifiers on pointers.
8473         Fix predicate typos.
8474         Allow long pointers as well as int pointers.
8475
8476 2002-05-15  Richard Henderson  <rth@redhat.com>
8477
8478         * varasm.c (merge_weak): Remove special case for extern and common.
8479
8480 2002-05-15  Matt Hiller  <hiller@redhat.com>
8481
8482         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
8483         XFAILing.
8484         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
8485         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
8486         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
8487         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
8488         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
8489         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
8490
8491 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8492
8493         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
8494
8495 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
8496
8497         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
8498         ("altivec_mfvscr"): Read from VSCR.
8499
8500         Add vscr sets for the following insns: altivec_vctuxs,
8501         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
8502         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
8503         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
8504         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
8505         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
8506         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
8507         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
8508         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
8509         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
8510         altivec_vsum2sws, altivec_vsumsws.
8511
8512         * config/rs6000/rs6000.h: Add VSCR fixed register.
8513         (CALL_REALLY_USED_REGISTERS): Add vscr.
8514         (CALL_USED_REGISTERS): Same.
8515         (FIXED_REGISTERS): Same.
8516         (REG_ALLOC_ORDER): Same.
8517         (reg_class): Add VSCR_REGS.
8518         (REG_CLASS_NAMES): Same.
8519         (REG_CLASS_CONTENTS): Same.
8520         (VSCR_REGNO): New.
8521         (REGISTER_NAMES): Add vscr.
8522         (DEBUG_REGISTER_NAMES): Same.
8523         (ADDITIONAL_REGISTER_NAMES): Same.
8524         (FIRST_PSEUDO_REGISTER): Increment.
8525         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
8526
8527 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
8528
8529         * fold-const.c (fold): Fix a typo.
8530
8531 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
8532
8533         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
8534         comparison against the highest or lowest integer value before
8535         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
8536         transformation and that of an unsigned comparison against 0
8537         right after.
8538
8539 2002-05-15  Richard Henderson  <rth@redhat.com>
8540
8541         * varasm.c (merge_weak): Error for any weakening after definition.
8542         Adjust weakening after use warning to catch more cases.
8543         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
8544         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
8545
8546 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
8547
8548         * invoke.texi (-malign-double): Re-add lost warning.
8549
8550         * i386-protos.h (x86_output_mi_thunk): Declare.
8551         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
8552         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
8553
8554         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
8555         when flag_asynchronous_unwind_tables is set.
8556
8557         * flags.h (flag_reorder_functions): Declare.
8558         * function.c (prepare_function_start): Initialize frequnecy.
8559         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
8560         * Makefile.in (predict.o): Add dependency on target.h and params.h
8561         * defaults.h (HOT_TEXT_SECTION_NAME,
8562         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
8563         * predict.c (choose_function_section): New function.
8564         (estimate_bb_frequencies): Use it.
8565         * toplev.c (flag_reorder_functions): New global variable.
8566         (lang_independent_options): New.
8567         (parse_options_and_default_flags): Set.
8568         * varasm.c (assemble_start_function): Bypass functdion alignment
8569         for never executed functions.
8570         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
8571         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
8572         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
8573         Document.
8574
8575         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
8576
8577         * predict.c: Inlude profile.h
8578         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
8579         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
8580         Use the information about maximal counter in the program.
8581
8582         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
8583
8584         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
8585         probably_never_executed_bb_p): New functions.
8586         * cfgcleanup.c (outgoing_edges_match): Use them.
8587         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
8588         (maybe_hot_bb_p, probably_cold_bb_p,
8589         probably_never_executed_bb_p): New functions.
8590
8591         * function.h (function): Add new field function_frequency.
8592         * predict.c (compute_function_frequency): New function.
8593         (estimate_probability): Call it.
8594
8595 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8596
8597         PR optimization/5172, optimization/5200
8598         * gcse.c (gcse_main): Disable store_motion.
8599
8600 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
8601
8602         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
8603         (c_common_nodes_and_builtins): Use it.
8604         (builtin_define_with_value): New function.
8605         (cb_register_builtins): Define __SIZE_TYPE__,
8606         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
8607         using builtin_define_with_value.  Use consistent notation when
8608         defining __GXX_WEAK__.
8609         (WCHAR_TYPE_SIZE): Don't redefine.
8610         (combine_strings): Don't use WCHAR_TYPE_SIZE.
8611
8612         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
8613         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
8614         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
8615         * tradcpp.c (initialize_builtins): Likewise.
8616         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
8617
8618         * c-lex.h (builtin_define_with_value): Prototype.
8619         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
8620         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
8621         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
8622
8623         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
8624         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
8625         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
8626         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
8627         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
8628         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
8629         config/sparc/sol2-bi.h, config/sparc/sparc.h:
8630         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
8631         to __SIZE_TYPE__ etc from all spec strings. When this makes
8632         extra specs empty, delete them.
8633
8634 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8635
8636         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
8637         for PA8000 or generating dwarf2 call frame information.
8638         (output_call): Remove DO_FRAME_NOTES check from return pointer
8639         optimization.
8640         (following_call): Return 0 when scheduling for PA8000 or generating
8641         dwarf2 call frame information.  Revise comment.
8642
8643 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8644
8645 config/alpha:
8646         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
8647         and __IEEE_FP_INEXACT as appropriate.
8648         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
8649         (CPP_SPEC): Remove ieee defines.
8650         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
8651
8652 2002-05-14  Richard Henderson  <rth@redhat.com>
8653
8654         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
8655         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
8656
8657 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8658
8659         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
8660         (CPP_SPEC): Update.
8661         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
8662         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
8663         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
8664         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
8665         (EXTRA_SPECS): Update.
8666         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
8667         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
8668         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
8669         define TARGET_OS_CPP_BUILTINS if necessary.
8670
8671 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8672
8673         * gcc.c (cpp_options): Must pass -m* and -f* options
8674         to the front end even when only preprocessing.
8675         (cc1_options): Remove redundant -lang-c.
8676         * tradcpp.c (main): Ignore -m options.
8677 objc:
8678         * lang-specs.h: Similarly.
8679
8680 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
8681
8682         * genautomata.c (transform_3): Add code for transformation
8683         `(A,B,...)+C -> A+C,B,...'.
8684
8685 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
8686
8687         * final.c (end_final): Do not output profile_arcs constructor, when
8688         no functions are instrumented.
8689
8690 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
8691
8692         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
8693
8694 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8695
8696         * doc/install.texi: Remove special markup originally required for
8697         HTML generation with texi2html.
8698
8699 2002-05-14  Andreas Schwab  <schwab@suse.de>
8700
8701         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
8702         SELECT_SECTION.
8703         (UNIQUE_SECTION): Define to get small data correctly.
8704
8705         * varasm.c (resolve_unique_section): Add third parameter
8706         flag_function_or_data_sections and use it instead of
8707         flag_function_sections.
8708         (assemble_start_function): Pass flag_function_sections.
8709         (asm_emit_uninitialised): Pass flag_data_sections.
8710         (assemble_variable): Likewise.
8711
8712 2002-05-14  Richard Henderson  <rth@redhat.com>
8713
8714         * config/i386/i386.md: Use define_constants for unspec numbers.
8715         * config/i386/i386.c: Likewise.
8716
8717 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8718
8719         * doc/contrib.texi: Update my entry.
8720
8721 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
8722
8723         * fixinc/inclhack.def (winidss_valist): Limit applicability.
8724         * fixinc/fixincl.x: Regenerated.
8725         * fixinc/tests/base/math.h: Update.
8726         * fixinc/tests/base/testing.h: Likewise.
8727
8728 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
8729
8730         * genattr.c (gen_attr): Don't emit a comma after the last
8731         enumerator.
8732
8733 2002-05-13  Richard Henderson  <rth@redhat.com>
8734
8735         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
8736         by non-local gotos.
8737         * recog.c (peephole2_optimize): Likewise.
8738
8739 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
8740
8741         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
8742         input to O_BINARY.
8743
8744 2002-05-13  Jeffrey A Law  (law@redhat.com)
8745
8746         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
8747         Update prototype and callers.
8748         (propagate_one_insn): Stack pointer adjustments kill MEMs on
8749         the mem_set_list which reference the stack pointer, as do
8750         calls to constant functions as they may clobber outgoing
8751         argument space.
8752
8753         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
8754
8755         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
8756         (ia32_multipass_dfa_lookahead): New function.
8757
8758 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8759
8760         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
8761         (translate_options): Remove 'V'.
8762         (process_command): Similarly.
8763 doc:
8764         * invoke.texi: Remove documentation of 'V'.
8765
8766 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
8767
8768         * config/s390/linux.h: Revert 2002-04-22 changes.
8769
8770 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
8771
8772         * config/fr30/fr30.md: Only allow splits of immediate loads
8773         if the destination is a register.
8774
8775 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8776
8777         * Makefile.in (c-common.o, cppinit.o): Update.
8778         * c-common.c: Include except.h.
8779         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
8780         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
8781         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
8782         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
8783         CPP_PREDEFINES): Handle here.
8784 config:
8785         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
8786         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
8787         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
8788         TARGET_OS_CPP_BUILTINS.
8789         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
8790         (CPP_SPEC, EXTRA_SPECS): Update.
8791         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
8792         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
8793         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
8794         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
8795         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
8796 doc:
8797         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
8798         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
8799
8800 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
8801
8802         * emit-rtl.c (global_rtl): Update comment.
8803         (const_double_htab, const_double_htab_hash,
8804         const_double_htab_hash, lookup_const_double): New.
8805         (const_int_htab_hash, const_int_htab_eq): Remove const
8806         qualifiers, which cause tons of warnings with RTL checking on.
8807         (gen_rtx_CONST_DOUBLE): Deleted.
8808         (const_double_from_real_value): New function - bears some
8809         resemblance to the former immed_real_const_1.
8810         (immed_double_const): Moved here from varasm.c and
8811         simplified.
8812         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
8813         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
8814         (gen_rtx): Use immed_double_const.
8815         (init_emit_once): Initialize the const_double_htab.  Use
8816         REAL_VALUE_FROM_INT where possible.  Can now use
8817         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
8818         * varasm.c (struct varasm_status): Remove x_const_double_chain.
8819         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
8820         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
8821         (init_varasm_status, mark_varasm_status): Don't touch
8822         x_const_double_chain.
8823
8824         * output.h: Delete prototype for clear_const_double_mem.
8825         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
8826         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
8827         const_double_from_real_value, not immed_real_const_1, and use
8828         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
8829         CONST_DOUBLE_ATOF.
8830         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
8831         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
8832         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
8833         (gen_rtx_REG): Second arg is unsigned.
8834
8835         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
8836         (excluded_rtx): New, return true for CONST_DOUBLE.
8837         (genmacro): Write nothing for excluded codes.
8838         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
8839         * expr.c (expand_expr): Likewise.
8840         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
8841         CONST_DOUBLE_CHAIN.
8842         * toplev.c (rest_of_compilation): Don't call
8843         clear_const_double_mem.
8844
8845         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
8846         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
8847         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
8848         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
8849         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
8850         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
8851         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
8852         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
8853
8854 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8855
8856         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
8857
8858 2002-05-12  Tom Tromey  <tromey@redhat.com>
8859
8860         * tree.h (copy_node): Don't mention TREE_PERMANENT.
8861
8862 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
8863
8864         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
8865         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
8866         * gensupport.h: Prototype new routines.
8867         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
8868         use of printf.
8869         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
8870         (next_comma_elt): Use scan_comma_elt.
8871
8872         * config/i386/i386.md: Use new attribute notation to break up
8873         long lines in define_attr forms.
8874
8875 2002-05-12  Richard Henderson  <rth@redhat.com>
8876
8877         * expr.c (compress_float_constant): New.
8878         (emit_move_insn): Use it.
8879         (float_extend_from_mem): New.
8880         (init_expr_once): Initialize it.
8881         * real.c (exact_real_truncate): New.
8882
8883         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
8884         dropped into memory; penalize for size.
8885         (RTX_COSTS): FLOAT_EXTEND is free.
8886         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
8887         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
8888
8889 2002-05-12  Richard Henderson  <rth@redhat.com>
8890
8891         * profile.h (profile_info): Add missing extern to declaration.
8892         * profile.c (profile_info): Define it.
8893
8894 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8895
8896         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
8897         used for DImode and TImode.
8898
8899 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8900
8901         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
8902         fake a newline.
8903
8904 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
8905
8906         * config/rs6000/rs6000.c (rs6000_default_long_calls,
8907         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
8908         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
8909         (rs6000_override_options): Handle -m(no-)longcall.
8910         (init_cumulative_args, output_mi_thunk): Check for both
8911         longcall and shortcall attributes on the function.
8912         (rs6000_attribute_table): Add "shortcall".
8913         (rs6000_handle_longcall_attribute): Update comment.
8914         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
8915         altivec_expand_ternop_builtin): Add default clauses to switches
8916         to silence warnings.
8917
8918         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
8919         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
8920         (TARGET_OPTIONS): Add longcall and no-longcall.
8921
8922         * config/rs6000/rs6000.md (call_nonlocal_sysv,
8923         call_value_nonlocal_sysv): Split by alternatives.  One pair
8924         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
8925         the call cookie.  The other pair accepts only LR/CTR and has
8926         no restriction.
8927
8928         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
8929         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
8930         tmake_file.
8931         * config/rs6000/rs6000-c.c: New file.
8932         * config/rs6000/t-rs6000-c-rule: New file.
8933         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
8934         Prototype rs6000_pragma_longcall.
8935
8936         * doc/extend.texi: Document shortcall attribute.
8937         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
8938
8939 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8940
8941         * reorg.c (dbr_schedule): Remove unnecessary test.
8942
8943 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
8944
8945         * i386.md (testsi to testqi spliters): New.
8946
8947         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
8948
8949         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
8950
8951         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
8952
8953         * basic-block.h: New flag EDGE_CAN_FALLTHRU
8954         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
8955         that can be made fallthru.
8956
8957         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
8958
8959         * cfglayout.c (cleanup_unconditional_jumps): New static function.
8960         (cfg_layout_initialize): Use it.
8961
8962 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8963
8964         * config/avr/avr.c (avr_mcu_types): Update supported devices.
8965         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8966         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8967
8968 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
8969
8970         * dbxout.c: Fix formatting.
8971         * dependence.c: Likewise.
8972         * df.c: Likewise.
8973         * diagnostic.c: Likewise.
8974         * doloop.c: Likewise.
8975         * dominance.c: Likewise.
8976         * doschk.c: Likewise.
8977         * dwarf2asm.c: Likewise.
8978         * dwarf2out.c: Likewise.
8979         * dwarfout.c: Likewise.
8980
8981 2002-05-10  Richard Henderson  <rth@redhat.com>
8982
8983         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
8984         Convert integers constants as needed.  Replace "nwords" field with
8985         "sizeof_bb".
8986         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
8987         * function.h: Fix typo in comment.
8988         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
8989
8990 2002-05-10  Roger Sayle  <roger@eyesopen.com>
8991
8992         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
8993         into the equivalent (signed char)c > 0.
8994
8995 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
8996
8997         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
8998         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
8999         (struct prefetch_info): Fix spelling of member bytes_accessed.
9000         (emit_prefetch_instructions): Make dump messages more regular;
9001         restructure code to add more dump messages; use new macros for
9002         heuristics. (There are no code generation changes in any of this).
9003
9004 2002-05-10  David S. Miller  <davem@redhat.com>
9005
9006         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
9007         (struct rtx_def): Update unchanging flag comment.
9008         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
9009         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
9010         to be handled to INSN too.
9011         (dbr_schedule): Likewise.
9012         * resource.c (next_insn_no_annul): Likewise.
9013
9014         * cse.c (rtx_cost): Remove multiplication by power of 2 special
9015         casing.
9016
9017 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9018
9019         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
9020         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
9021         (possibly) work around broken /bin/sh.
9022
9023 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9024
9025         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
9026         . as N64/N32 libgcc_s.so subdirs.
9027
9028 2002-05-10  David S. Miller  <davem@redhat.com>
9029
9030         * config/sparc/sparc.md: Use define_constants for unspec numbers.
9031
9032         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
9033         more accurately.
9034         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
9035         comment.
9036         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
9037         * doc/rtl.texi: Document these macros more accurately.
9038         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
9039         JUMP_INSNs and CALL_INSNs.
9040         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
9041         or INSN_FROM_TARGET_P if the code is appropriate.
9042
9043 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9044
9045         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
9046         before using SYMBOL_REF_FLAG (addr).
9047
9048         * config/avr/avr-protos.h (avr_io_address_p): Declare.
9049         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
9050         Make non-static.  Update all callers.
9051         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
9052         New insns to clear/set/test a single bit in I/O address space.
9053
9054 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9055
9056         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
9057
9058 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9059
9060         * Makefile.in: Update.
9061         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
9062         builtin_define_std): New.
9063         (c_common_init): Register CPP builtins callback.
9064         * c-common.h (flag_iso, flag_undef): New.
9065         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
9066         * c-lex.c: Don't include target.h.
9067         (cb_register_builtins): Move to c-common.c.
9068         (init_c_lex): Don't register hook here.
9069         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
9070         (cpp_define, cpp_assert): Remove.
9071         * gcc.c (cc1_options): Pass -undef to front end.
9072         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
9073         (TARGET_INITIALIZER): Update.
9074         * target.h (struct cpp_reader): Don't predeclare.
9075         (struct gcc_target): Remove cpp builtin hook.
9076         * tree.c (default_register_cpp_builtins): Remove.
9077 doc:
9078         * tm.texi: Update.
9079
9080 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9081
9082         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
9083
9084 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9085
9086         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
9087         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
9088
9089 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9090
9091         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
9092         * config/sparc/libgcc-sparc-glibc.ver: New file.
9093         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
9094         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
9095
9096 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9097
9098         PR target/6429
9099         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
9100         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
9101         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
9102         base multilibs.
9103         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
9104         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
9105         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9106         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9107
9108 2002-05-09  Richard Henderson  <rth@redhat.com>
9109
9110         * config/ia64/ia64.md: Use define_constants for unspec numbers.
9111         * config/ia64/ia64.c: Likewise.
9112
9113 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
9114
9115         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
9116         (save_restore_insns): Likewise.
9117         (mips_expand_prologue, mips_expand_epilogue): Update callers.
9118         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
9119
9120 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
9121
9122         * athlon.md, k6.md, pentium.md, ppro.md): New files.
9123         * i386.md: Move scheduling information into new files.
9124
9125         * i386.md (type attribute): Add "rotate" for rotate insns.
9126         (rotate insns): Set type to "rotate".
9127         (various attributes and function units): Treat rotate like shift.
9128         (pent_pair attribute): Only rotates by one bit position are
9129         pairable.
9130         (sbb insns): Explicitly set pent_pair attribute on a couple
9131         that were missing it.
9132
9133 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
9134
9135         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
9136         make sure that buffer starts on odd word address.
9137         (sh_va_arg): Skip odd fp registers when reading a double precision
9138         value.
9139
9140 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9141
9142         * tree.h (preserve_data, object_permanent_p, type_precision):
9143         Remove.
9144
9145 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9146
9147         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
9148         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
9149 doc:
9150         * cpp.texi: Update for removal of obsolete features.
9151
9152 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
9153                           Jeffrey A Law  (law@redhat.com)
9154
9155         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
9156         the DFA interface for Pentium processors.
9157         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
9158         (attr_pent_pair, ix86_pent_find_pair): Remove.
9159         (ix86_sched_reorder_pentium): Remove.
9160         (ix86_sched_reorder): Remove reordering for Pentium.
9161         * i386.md (Pentium scheduling): Rewrite using DFA description.
9162
9163 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
9164
9165         * cfganal.c (can_fallthru): Fix fast path.
9166         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
9167         with edges to the next block.
9168
9169 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
9170                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
9171
9172         * final.c (end_final): Use C trees to output data structures for profiling.
9173
9174         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
9175         (profile.o): New dependency profile.h
9176         (final.o): New dependency profile.h
9177         * profile.h: New file. New global structure profile_info.
9178         * final.h (count_edges_instrumented_now): Declare.
9179         (current_function_cfg_checksum): Declare.
9180         (function_list): New structure.
9181         (functions_head, functions_tail): New static variables.
9182         (end_final): Emits more data, removed some -ax stuff.
9183         (final): Stores function names and chcksums.
9184         * gcov-io.h (__write_gcov_string): New function.
9185         (__read_gcov_string): New function.
9186         * gcov.c (read_profile): New function.
9187         (create_program_flow_graph): Uses read_profile instead of reading
9188         da_file.
9189         (read_files): Removed da_file checking, it's done by read_profile now.
9190         * libgcc2.c (bb_function_info): New structure.
9191         (bb): New field in structure, removed some -ax stuff.
9192         (__bb_exit_func): Changed structure of da_file.
9193         * profile.c (count_edges_instrumented_now): New global variable.
9194         (current_function_cfg_checksum): New global variable.
9195         (max_counter_in_program): New global variable.
9196         (get_exec_counts): New function.
9197         (compute_checksum): New function.
9198         (instrument_edges): Sets count_edges_instrumented_now.
9199         (compute_branch_probabilities): Uses get_exec_counts instead of
9200         reading da_file.
9201         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
9202         (init_branch_prob): Removed da_file checking, done in get_exec_counts
9203         now.
9204         (end_branch_prob): Removed da_file checking, done in get_exec_counts
9205         now.
9206         * gcov.texi: Updated information about gcov file format.
9207
9208 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
9209
9210         * sbitmap.c: Fix formatting.
9211         * scan.c: Likewise.
9212         * scan-decls.c: Likewise.
9213         * sched-deps.c: Likewise.
9214         * sched-ebb.c: Likewise.
9215         * sched-rgn.c: Likewise.
9216         * sched-vis.c: Likewise.
9217         * sdbout.c: Likewise.
9218         * sibcall.c: Likewise.
9219         * simplify-rtx.c: Likewise.
9220         * ssa.c: Likewise.
9221         * ssa-ccp.c: Likewise.
9222         * ssa-dce.c: Likewise.
9223         * stmt.c: Likewise.
9224         * stor-layout.c: Likewise.
9225         * stringpool.c: Likewise.
9226
9227 2002-05-09  David S. Miller  <davem@redhat.com>
9228
9229         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
9230
9231 2002-05-07  David S. Miller  <davem@redhat.com>
9232
9233         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
9234         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
9235         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
9236         library implementation clobbers the output before the inputs
9237         are fully consumed, use stack temporary for the output.
9238
9239 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
9240
9241         * config/netbsd.h (CPP_SPEC): Remove.
9242         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
9243         * config/i386/netbsd.h (CPP_SPEC): Define.
9244         * config/ns32k/netbsd.h (CPP_SPEC): Define.
9245         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
9246         * config/sparc/netbsd.h (CPP_SPEC): Define.
9247         * config/vax/netbsd.h (CPP_SPEC): Define.
9248
9249 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
9250
9251         * read-rtl.c: Fix formatting.
9252         * real.c: Likewise.
9253         * recog.c: Likewise.
9254         * regclass.c: Likewise.
9255         * regmove.c: Likewise.
9256         * reg-stack.c: Likewise.
9257         * reload1.c: Likewise.
9258         * reload.c: Likewise.
9259         * resource.c: Likewise.
9260         * rtlanal.c: Likewise.
9261         * rtl.c: Likewise.
9262         * rtl-error.c: Likewise.
9263
9264 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9265
9266         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
9267         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
9268
9269 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
9270
9271         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
9272         use __SSE2__ macro instead.
9273         * config/i386/xmmintrin.h: Likewise.
9274
9275 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
9276
9277         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
9278         and use it in all invocations of these macros.  Clean up comments.
9279         * rtl.c (rtl_check_failed_flag): Add an argument for the name
9280         of the flag access macro whose check failed.
9281         * doc/rtl.texi (Flags): Document additional flag uses.
9282
9283 2002-05-08  Robert Spier <rspier@pobox.com>
9284             Neil Booth  <neil@daikokuya.demon.co.uk>
9285
9286         PR preprocessor/6521
9287         * cppfiles.c (handle_missing_header): Don't do anything
9288         different for <> includes.
9289 doc:
9290         * cppopts.texi: Update documentation for -MG.
9291
9292 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9293
9294         * cpplex.c (cpp_interpret_charconst): Truncate as well as
9295         sign-extend.
9296 doc:
9297         * cpp.texi: Clarify multichar charconst valuation.
9298
9299 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
9300
9301         * doc/invoke.texi: Document -mwindiss option.
9302
9303 2002-05-08  Jason Merrill  <jason@redhat.com>
9304
9305         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
9306
9307         * dwarf2out.c (gen_type_die): Abort on broken recursion.
9308
9309         PR c++/6381
9310         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
9311         REAL_CST.
9312
9313 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
9314
9315         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
9316         little-endian multilibs to override arm/thumb multilibs.
9317         Do not build hardware floating point multilibs, nor apcs-26
9318         multilibs for the Thumb.
9319
9320 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
9321
9322         PR c/6569.
9323         * varasm.c (mark_weak): New function.
9324         (merge_weak): Use it.  Do not call declare_weak.
9325         (declare_weak): Use merge_weak.
9326
9327 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
9328
9329         * cse.c (dead_libcall_p): Update counts.
9330         (delete_trivially_dead_insns): Update call of dead_libcall_p.
9331
9332 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
9333
9334         * cfglayout.c (function_tail_eff_head): Rename to ...
9335         (function_footer): ... this one.
9336         (unlink_insn_chain): New functions.
9337         (label_for_bb): Only call block_label and emit debug message.
9338         (record_effective_endpoints): Actually unlink the headers and footers.
9339         (fixup_reorder_cahin): Re-insert the unlinked sequences.
9340         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
9341         * cfglayout.h (struct reorder_block_def): New fields footer/header;
9342         remove eff_head/eff_end.
9343         * rtl.h (set_first_insn): Declare.
9344         * emit-rtl.c (set_first_insn): New function.
9345
9346         * cfglayout.c (fixup_reorder_chain): Dump duplicated
9347         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
9348         cfg_layout_duplicate_bb): New global function.
9349         (duplicate_insn_chain): New static function.
9350         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
9351         cfg_layout_duplicate_bb): Declare.
9352         (struct reorder_block_def): Add "original" field.
9353         * emit-rtl.c (emit_copy_of_insn_after): New function.
9354         * rtl.h (emit_copy_of_insn_after): Declare.
9355
9356         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
9357         (fixup_reorder_chain): properly handle edges to exit block.
9358
9359 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9360                                Jan Hubicka  <jh@suse.cz>
9361
9362         * basic-block.h (note_prediction_to_br_prob): declare.
9363         * c-semantics.c: Inlucde predit.h
9364         (expand_stmt): predict GOTO_STMT as not taken.
9365         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
9366         (cleanup_cfg): Do not free tail_recursion_list.
9367         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
9368         (flow_delete_block): Kill predictions past end of basic block.
9369         * output.h (delete_unreachable_blocks): Declare.
9370         * predict.c (predicted_by_p, process_note_predictions,
9371         process_note_prediction, last_block_p): New function.
9372         (estimate_probability): Bypass loop on PRED_CONTINUE;
9373         do not handle noreturn heuristics; kill PRED_RETURN; add
9374         PRED_EARLY_RETURN.
9375         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
9376         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
9377         * predict.h (IS_TAKEN): New constant.
9378         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
9379         * rtl.c (NOTE_INSN_PREDICTION): New.
9380         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
9381         New macro.
9382         (insn_note): add NOTE_INSN_PREDICTION.
9383         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
9384         CFG; free tail_recursion_label_list.
9385         * stmt.c: Include predict.h;
9386         (return_prediction): New.
9387         (expand_value_return): Use it.
9388         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
9389
9390 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
9391
9392         * config/mips/mips.md: Name the unspecs with define_constant.
9393         (*HILO_delay): Rename to 'hilo_delay' (no star).
9394         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
9395         (reload_outdi, reload_outsi): Likewise.
9396
9397 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
9398
9399         * toplev.c: Fix formatting.
9400
9401 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
9402
9403         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
9404         * configure.in (ac_rtlflag_checking): New.
9405         * doc/install.texi (--enable-checking): Document RTL flag checking.
9406
9407 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9408
9409         * c-common.c (c_common_init): Set options->unsigned_wchar.
9410         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
9411         group target dependencies.
9412         (init_builtins, cpp_handle_option): Update.
9413         * cpplex.c (cpp_interpret_charconst): Update.
9414         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
9415         signed_char to unsigned_char, group target dependencies.
9416         * defaults.h (WCHAR_UNSIGNED): Remove.
9417         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
9418 config:
9419         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
9420         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
9421         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
9422         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
9423         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
9424 doc:
9425         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
9426
9427 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
9428
9429         * fixinc/inclhack.def (windiss_math1): New fix.
9430         (windiss_math2): Likewise.
9431         (windiss_valist): Likewise.
9432         * fixinc/fixincl.x: Regenerated.
9433
9434 2002-05-07  Andreas Jaeger  <aj@suse.de>
9435
9436         * genautomata.c (output_internal_min_issue_delay_func): Add
9437         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
9438         (output_internal_trans_func): Likewise.
9439
9440 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
9441
9442         * pa.c (hppa_profile_hook): Use force_reg to get the address
9443         of the profile hook into an appropriate pseudo register.
9444
9445 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
9446
9447         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
9448         (LINK_START_SPEC): Handle it.
9449         (LINK_OS_SPEC): Likewise.
9450         (CPP_SPEC): Likewise.
9451         (STARTFILE_SPEC): Likewise.
9452         (LIB_SPEC): Likewise.
9453         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
9454         all platforms.
9455         (CRTSAVRES_DEFAULT_SPEC): New macro.
9456         (LIB_WINDISS_SPEC): New macro.
9457         (CPP_OS_WINDISS_SPEC): Likewise.
9458         (STARTFILE_WINDISS_SPEC): Likewise.
9459         (ENDFILE_WINDISS_SPEC): Likewise.
9460         (LINK_START_WINDISS_SPEC): Likewise.
9461         (LINK_OS_WINDISS_SPEC): Likewise.
9462         * config/rs6000/windiss.h: New file.
9463
9464 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
9465
9466         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
9467
9468 2002-05-06  David S. Miller  <davem@redhat.com>
9469
9470         * config/sparc/sparc.md (shift insns): Do not mask off
9471         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
9472         take care of it.
9473
9474 2002-05-06  Richard Henderson  <rth@redhat.com>
9475
9476         PR c++/6212
9477         * expr.c (highest_pow2_factor_for_type): New.
9478         (expand_assignment): Use it.
9479
9480 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
9481
9482         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
9483         unspec_volatile.
9484         ("altivec_mfvscr"): Same.
9485
9486 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
9487
9488         * rtl.h (struct rtx_def): Update comments.
9489         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
9490         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
9491         RTL_FLAG_CHECK macros with list of expected RTL codes.
9492         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
9493         (rtl_check_failed_flag): New.
9494         * reload1.c (reload): Use REG macro before changing rtx to MEM.
9495         (reload_cse_noop_set_p): Check rtx code before using access macro.
9496         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
9497         before using access macro.
9498
9499 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
9500
9501         * doc/rtl.texi (Flags): Update to reflect current usage.
9502
9503 2002-05-06  Roger Sayle  <roger@eyesopen.com>
9504
9505         PR opt/3995
9506         * fold-const.c (sign_bit_p): New function.
9507         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
9508         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
9509         Reapply fold when converting (A & C) == C into (A & C) != 0.
9510         (fold_binary_op_with_conditional_arg): Fix typo in comment.
9511
9512 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9513
9514         * c-common.c (warn_multichar): New.
9515         (c_common_init): Set CPP's warn_multichar.
9516         * c-common.h (warn_multichar): New.
9517         * c-decl.c (warn_multichar): Remove.
9518         * c-lex.c (lex_charconst): Update.
9519         * c-tree.h (warn_multichar): Remove.
9520         * cppexp.c (eval_token): Sign-extend charconst value.
9521         * cppinit.c (cpp_create_reader): Set warn_multichar.
9522         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
9523         each character.  Update prototype.  Sign-extend the result.
9524         * cpplib.h: Fix conditions.
9525         (struct cpp_options): Add new warning flag.
9526         (cpp_interpret_charconst): Update prototype.
9527 doc:
9528         * cpp.texi: Update documentation.
9529
9530 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
9531
9532         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
9533         Fix typo in usage of allof instead of unit.
9534
9535 2002-05-06  Richard Henderson  <rth@redhat.com>
9536
9537         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
9538         and any jump or call for IN.
9539
9540 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
9541
9542         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
9543         -msse2.
9544         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
9545
9546 2002-05-06  Roger Sayle  <roger@eyesopen.com>
9547
9548         * fold-const.c (lshift-double): Cast the high word to an unsigned
9549         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
9550         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
9551         avoid compiler warning.  (fold): Remove redundant code from
9552         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
9553
9554 2002-05-06  Jeff Law  <law@redhat.com>
9555
9556         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
9557         * pa.c (pa_adjust_cost): Remove all true dependency cost
9558         adjustments.  Also remove support for non-DFA scheduling.
9559         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
9560         to adjust true dependency costs.  Update various comments.
9561         (7100lc, 7200, 7300 scheduling): Simplify by combining the
9562         FP ALU & MPY units into a single unit.
9563
9564 2002-05-06  Catherine Moore  <clm@redhat.com>
9565
9566         * config/v850/v850.c (compute_register_save_size): Make sure
9567         to count all of the registers that will be saved.
9568
9569 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
9570
9571         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
9572
9573 2002-05-06  David S. Miller  <davem@redhat.com>
9574
9575         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
9576         allow result to overlap input operands in memory.
9577
9578 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9579
9580 doc:
9581         * cpp.texi: Update multichar charconst docs.
9582
9583 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9584
9585         * cpplex.c (cpp_interpret_charconst): Sign-extend each
9586         character.  Don't ignore excess characters.  Treat
9587         multicharacter character constants as signed.
9588         (cpp_parse_escape): Clarify diagnostic.
9589
9590 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
9591
9592         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
9593         use add instead of shift.
9594         (ashldi3_sp64): Likewise.
9595         (ashlsi3_const1, ashldi3_const1): Remove.
9596         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
9597         * config/sparc/sparc.c (const1_operand): New.
9598
9599 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
9600
9601         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
9602
9603 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
9604
9605         PR target/6561
9606         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
9607
9608 2002-05-05  Richard Henderson  <rth@redhat.com>
9609
9610         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
9611         memory latency adjustments.
9612         (alpha_variable_issue): Remove.
9613         (alpha_use_dfa_pipeline_interface): New.
9614         (alpha_multipass_dfa_lookahead): New.
9615         * config/alpha/alpha.md: Remove define_function_unit scheduling;
9616         include new dfa scheduling.
9617         (attr type): Add none.
9618         (blockage): Use it.
9619         * config/alpha/ev4.md: New.
9620         * config/alpha/ev5.md: New.
9621         * config/alpha/ev6.md: New.
9622
9623 2002-05-05  David S. Miller  <davem@redhat.com>
9624
9625         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
9626
9627 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
9628
9629         * cse.c: Fix formatting.
9630         * emit-rtl.c: Likewise.
9631
9632 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
9633
9634         * genautomata.c (initiate_states): Add additional guard to
9635         initialize `units_array'.
9636
9637 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
9638
9639         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
9640         process_unit_to_form_the_same_automaton_unit_lists,
9641         form_the_same_automaton_unit_lists
9642         check_unit_distributions_to_automata): New prototypes and
9643         functions.
9644         (check_automata): Rename it into `check_automata_insn_issues'.
9645         (unit_decl): New fields `the_same_automaton_unit' and
9646         `the_same_automaton_message_reported_p'.
9647         (unit_decl_t): New typedef.
9648         (the_same_automaton_lists): New gloval variable.
9649         (unit_regexp, unit_set_el, units_array, units_cmp,
9650         output_get_cpu_unit_code_func): Use the typedef.
9651         (evaluate_max_reserv_cycles): Increment
9652         `description->max_insn_reserv_cycles'.
9653         (initiate_states): Don't increment `max_cycles_num'.
9654         (transform_insn_regexps): Move code around transformation of
9655         regexps from `generate'.
9656         (generate): Remove call of `transform_insn_regexps'.
9657         (expand_automata): Call `transform_insn_regexps' and
9658         `check_unit_distributions_to_automata'.  Check errors before
9659         `generate'.
9660
9661         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
9662         automaton `ultrasparc3_1'.
9663
9664 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9665
9666         * c-common.c (c_common_init): Set up CPP arithmetic.
9667         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
9668         something reasonable for the host.
9669         (sanity_checks): Add checks.
9670         (cpp_read_main_file): Call sanity_checks() from here...
9671         (cpp_post_options): ... not here.
9672         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
9673         * cpplib.h (struct cpp_options): New member int_precision.
9674
9675 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9676
9677         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
9678
9679 2002-05-04  David S. Miller  <davem@redhat.com>
9680
9681         * config/sparc/linux.h, config/sparc/linux64.h
9682         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
9683
9684         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
9685         more RTX codes.
9686         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
9687
9688         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
9689         of SETs.
9690
9691 2002-05-05  Tim Josling  <tej@melbpc.org.au>
9692
9693         * treelang; New directory for new sample language treelang.
9694
9695 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9696
9697         * Makefile.in (c-lex.o): Update.
9698         * c-lex.c: Include target.h.
9699         (cb_register_builtins): New.
9700         (init_c_lex): Set builtins callback.
9701         * c-lex.h (cpp_define, cpp_assert): New prototypes.
9702         * cppinit.c (init_builtins): Use callback, including for
9703         GXX_WEAK.
9704         * cpplib.h (struct cpp_callbacks): New member.
9705         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
9706         (TARGET_INITIALIZER): Update.
9707         * target.h (struct gcc_target): New hook.
9708         * tree.c (default_register_cpp_builtins): New.
9709         * tree.h (default_register_cpp_builtins): New.
9710 doc:
9711         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
9712
9713 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9714
9715         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
9716         (cpp_post_options): Move sanity checks to...
9717         (sanity_checks): New.
9718         * cpplex.c (maybe_read_ucs): Fix prototype.
9719         (parse_string, cpp_parse_escape): Cast for %c format specifier.
9720         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
9721         if necessary.
9722
9723 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
9724
9725         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
9726         builtins.  Use V2DI patterns instead of TI for logical operations.
9727         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
9728         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
9729         (ix86_expand_builtins): Change the pattern used for movntdq.
9730         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
9731         sse2_nandv2di3): New patterns.
9732         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
9733         on operands.
9734         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
9735         (cvtdq2pd): Correct mode on operand 1.
9736         (sse2_umulsidi3): Describe without unspec.
9737         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
9738         machine modes.
9739         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
9740         (ashlv2di3): Likewise, from sse2_ashlv2di3.
9741         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
9742         ashlv4si3, ashlv2di3): Use SImode for shift count.
9743         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
9744         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
9745         New patterns.
9746         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
9747         New typedefs.
9748         (__m128i, __m128d): New macros.
9749         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
9750         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
9751         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
9752         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
9753         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
9754         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
9755         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
9756         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
9757         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
9758         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
9759         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
9760         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
9761         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
9762         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
9763         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
9764         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
9765         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
9766         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
9767         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
9768         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
9769         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
9770         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
9771         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
9772         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
9773         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
9774         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
9775         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
9776         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
9777         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
9778         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
9779         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
9780         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
9781         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
9782         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
9783         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
9784         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
9785         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
9786         functions.
9787         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
9788         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
9789
9790 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
9791
9792         * dwarf2out.c: Fix formatting.
9793         * varasm.c: Likewise.
9794
9795 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
9796
9797         PR c/6543
9798         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
9799         clobber and use result as temporary value.
9800
9801 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
9802
9803         * expr.c (force_operand): Use expand_simple_* to handle more
9804         cases.
9805
9806 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9807
9808         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
9809         and sign-extension.
9810         (lex_charconst): Update for change in prototype of
9811         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
9812         appropriately.
9813         * cpphash.h (BITS_PER_CPPCHAR_T): New.
9814         * cppinit.c (cpp_create_reader): Initialize them for no
9815         change in semantics.
9816         (cpp_post_options): Add sanity checks.
9817         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
9818         and truncation issues.  Calculate in type cppchar_t.
9819         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
9820         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
9821         run-time dependent precision correctly.  Return whether the
9822         result is signed or not.
9823         * cpplib.c (dequote_string): Use cppchar_t; update.
9824         * cpplib.h (cppchar_signed_t): New.
9825         struct cpp_options): New precision members.
9826         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
9827         * cppexp.c (eval_token): Update.
9828
9829 2002-05-03  David S. Miller  <davem@redhat.com>
9830
9831         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
9832         * config/sparc/sparc.c (sparc_rtx_costs): New function
9833         implementing RTX_COSTS and CONST_COSTS.
9834         * config/sparc/sparc.h (CONST_COSTS): Delete.
9835         (RTX_COSTS_CASES): Define.
9836         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
9837         the work.
9838
9839         * config/sparc/sparc.md (DFA schedulers): Split out...
9840         * config/sparc/cypress.md, config/sparc/hypersparc.md,
9841         config/sparc/sparclet.md, config/sparc/supersparc.md,
9842         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
9843
9844         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
9845         checks on it, always defined for Sparc.
9846
9847         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
9848         Tweak, and add more detailed comments.
9849
9850 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
9851
9852         * Re-apply patch accidentally reverted with
9853         DFA scheduler merge: remove all rules and variables to slurp
9854         source files out of libiberty and rebuild them with HOST_CC.
9855         ($(HOST_PREFIX_1)varray.o): New rule.
9856         (genattrtab rule): Word wrap.
9857
9858 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9859
9860         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
9861         (CPP_SUBTARGET_SPEC): Define.
9862         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
9863         cpp_subtarget specs.
9864         (CPP_SPEC): Redefine to include %(cpp_subtarget).
9865
9866 2002-05-03  David S. Miller  <davem@redhat.com>
9867
9868         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
9869         * target.h (struct gcc_target): Delete cycle_display member.
9870
9871         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
9872         (rtx_needs_barrier): Delete reference to cycle_display unspec.
9873         (ia64_sched_reorder2): Mention need for cycle display handling
9874         once such notes exist.
9875
9876 2002-05-03  Richard Henderson  <rth@redhat.com>
9877
9878         * real.c (etoasc): Strip most trailing zeros for clarity.
9879         * sched-vis.c: Include real.h.
9880         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
9881         * Makefile.in (sched-vis.o): Add real.h.
9882
9883 2002-05-03  David S. Miller  <davem@redhat.com>
9884
9885         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
9886         no longer needed.
9887
9888 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
9889
9890         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
9891         when we get an out of range literal.
9892         (altivec_expand_ternop_builtin): Same.
9893         (altivec_expand_unop_builtin): Same.
9894         (altivec_expand_builtin): Same, for dss.
9895         (altivec_expand_builtin): Use trees instead of rtl when
9896         determining literal argument validity.
9897
9898 2002-05-03  David S. Miller  <davem@redhat.com>
9899
9900         Delete cycle display scheduling hook.
9901         * config/ia64/ia64.c (ia64_cycle_display,
9902         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
9903         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
9904         and use emit_insn_before instead of ia64_emit_insn_before.
9905         * config/ia64/ia64.md (unspec usage): Delete cycle display.
9906         (cycle_display): Delete insn pattern.
9907         * config/sparc/sparc.md (unspec usage): Delete cycle display.
9908         (cycle_display): Delete insn pattern.
9909         * config/sparc/sparc.c (sparc_cycle_display,
9910         TARGET_SCHED_CYCLE_DISPLAY): Delete.
9911         * doc/md.texi (cycle_display): Don't mention.
9912         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
9913
9914 2002-05-03  Richard Henderson  <rth@redhat.com>
9915
9916         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
9917         * recog.h: Declare them.
9918
9919         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
9920         * config/sparc/sparc.md: Use store_data_bypass_p instead.
9921         * config/sparc/sparc-protos.h: Update.
9922
9923 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9924
9925         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
9926         -D__arch64__.  Add -D_LP64.
9927         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
9928         from sparc.h.
9929         (CPP_ARCH64_SPEC): Likewise.
9930         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
9931         (NO_BUILTIN_SIZE_TYPE): Undef.
9932
9933 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
9934
9935         * genautomata.c (min_issue_delay_pass_states): Change return type
9936         in the prototype.
9937         (min_issue_delay_pass_states): Change the algorithm.
9938         (min_issue_delay): Set up min_insn_issue_delay for the state.
9939         (output_min_issue_delay_table): Interchange the nested loops and
9940         and initiate min_insn_issue_delay for states.
9941
9942 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
9943
9944         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
9945         jump is simplejump.
9946
9947 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
9948
9949         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
9950         sequence.
9951
9952 2002-05-03  Richard Henderson  <rth@redhat.com>
9953
9954         PR opt/6534
9955         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
9956         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
9957         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
9958         code before JUMP, not EARLIEST.
9959
9960 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9961
9962         * c-format.c (check_format_info_main): Don't check for presence of
9963         parameter for * width until after operand number has been read,
9964         and only check for it if format parameters are available.
9965         Fixes PR c/6547.
9966
9967 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
9968
9969         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
9970         (LINK_SPEC): Undef before defining.
9971
9972 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
9973
9974         PR preprocessor/6489
9975         * tradcpp.c (fixup_newlines): New.
9976         (main, finclude): Use it.
9977
9978 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
9979
9980         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
9981         * config/mips/mips.c (mips_unique_section): Strip encoding from
9982         decl name.
9983
9984 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
9985
9986         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
9987         mode.
9988
9989 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9990
9991         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
9992         (Specific): Removed buildstats references.
9993         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
9994         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
9995         Accomodate Solaris versions beyond 8.
9996         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
9997         (Specific, *-*-solaris2.8): Removed, obsolete.
9998
9999 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
10000
10001         PR target/6542
10002         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
10003         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
10004         fill leaf_reg_remap with identity.
10005         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
10006
10007 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
10008
10009         * config/h8300/crti.asm: Remove trailing spaces.
10010         * config/h8300/h8300.c: Likewise.
10011         * config/h8300/lib1funcs.asm: Likewise.
10012
10013 2002-05-02  Jason Merrill  <jason@redhat.com>
10014
10015         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
10016         * c-decl.c (c_init_decl_processing): Use it.
10017         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
10018         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
10019         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
10020
10021 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
10022
10023         * regrename.c: Fix formatting.
10024         * tree.c: Likewise.
10025
10026 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
10027
10028         * i386.md (attribute memory): Handle compares properly.
10029
10030 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
10031
10032         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
10033         to none.
10034
10035 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
10036
10037         * function.c: Fix formatting.
10038
10039 2002-05-02  Jan Hubicka  <jh@suse.cz>
10040
10041         * haifa-sched.c (schedule_insn): Print table of instructions and
10042         reservations.
10043         (sched_block): Do not print ready list at verbosity level 1.
10044         * sched-vis.c (print_insn): Make global.
10045         * sched-ebb.c (ebb_print_insn): Rename from...
10046         (print_insn): ... this one.
10047         * sched-int.h (print_insn): Declare
10048
10049 2002-05-02  Richard Henderson  <rth@redhat.com>
10050
10051         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
10052         emitted by cycle_display.
10053
10054 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
10055
10056         * doc/install.texi (*-*-freebsd*): Update to latest status.
10057
10058 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
10059
10060         PR target/6540
10061         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
10062         * config/float-sparc.h: Assume 128-bit long double if
10063         __LONG_DOUBLE_128__ is defined.
10064
10065 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
10066
10067         * genattrtab.c (write_function_unit_info): Add a dummy element
10068         when num_units == 0.
10069
10070 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10071
10072         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
10073         TYPE_MODE (double_type_node) instead of DFmode.
10074
10075 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
10076
10077         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
10078         jumps post reload.
10079         * toplev.c (rest_of_compilation): Revert Richard's patch.
10080
10081 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10082
10083         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
10084
10085 2002-05-02  Catherine Moore  <clm@redhat.com>
10086
10087         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
10088
10089 2002-05-02  Kazu Hirata  <kazu@hxi.com>
10090
10091         * combine.c: Fix comment typos.
10092         * expr.c: Likewise.
10093         * genautomata.c: Likewise.
10094         * stmt.c: Likewise.
10095         * tree.h: Likewise.
10096
10097 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10098
10099         * doc/install.texi: State GNAT version requirements.
10100
10101 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
10102
10103         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
10104         of the frame pointer or arg pointer register which strict register
10105         checking is not enabled.
10106
10107 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
10108
10109         * gcc.dg/altivec-8.c: New.
10110
10111         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
10112         PRE_INC and PRE_DEC for altivec modes.
10113
10114 2002-05-01  Bruce Korb  <bkorb@gnu.org>
10115
10116         * fixinc/check.tpl(set-writable): make sure the function exists first
10117         * fixinc/inclhack.def(alpha_assert): fix test_text
10118         * fixinc/tests/base/assert.h: add in missing result
10119
10120 2002-05-01  Jeff Law  <law@redhat.com>
10121
10122         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
10123         'T' constraint.
10124
10125 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
10126
10127         * dbxout.c (dbxout_type): Emit size information for range types,
10128         as well, but only when using GDB extensions.
10129
10130 2002-05-01  Richard Henderson  <rth@redhat.com>
10131
10132         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
10133         target-independent gnu binutils date test.
10134
10135 2002-05-01  Richard Henderson  <rth@redhat.com>
10136
10137         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
10138         info before expunging the block.
10139
10140 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
10141
10142         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
10143         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
10144         -M -or -MM is in effect.
10145
10146 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
10147
10148         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
10149         A29k configurations.
10150         * doc/install.texi: Update to match.
10151
10152 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10153
10154         PR bootstrap/6514
10155         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
10156         for duplicates. Always loop over whole list.
10157
10158 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10159
10160         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
10161
10162 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10163
10164         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
10165         support routines.
10166
10167 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10168
10169         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
10170
10171 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
10172
10173         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
10174         (nabs_nopower): Same.
10175         (floatdisf2): New pattern.
10176         (absdi2): Convert to define_insn_and_split.
10177         (nabsdi2): Same.
10178         (trunctfsf2): Same.
10179         (floatditf2): Same.
10180         (floatsitf2): Same.
10181         (fix_trunctfdi2): Same.
10182         (fix_trunctfsi2): Same.
10183
10184 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10185
10186         * doc/install.texi: Update Texinfo version requirement
10187         documentation.
10188
10189 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
10190
10191         PR target/6512, PR target/5628
10192         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
10193         when memory is not aligned.
10194         (movdf_insn_v9only_vis): Likewise.
10195         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
10196         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
10197         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
10198
10199 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
10200
10201         * gcc.dg/altivec-7.c: New.
10202
10203         * config/rs6000/altivec.h: Cleanup.
10204
10205 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
10206
10207         * doc/invoke.texi (Option Summary): Add -mvrsave=.
10208         (RS/6000 and PowerPC Options): Document -mvrsave=.
10209
10210         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
10211         (rs6000_altivec_vrsave_string): Same.
10212         (rs6000_override_options): Call rs6000_parse_vrsave_option.
10213         (rs6000_parse_vrsave_option): New.
10214         (rs6000_stack_info): Only generate vrsave instructions when
10215         TARGET_ALTIVEC_VRSAVE.
10216
10217         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
10218         (rs6000_altivec_vrsave_string): Define extern.
10219         (rs6000_altivec_vrsave): Same.
10220         (TARGET_ALTIVEC_VRSAVE): New.
10221
10222 2002-04-30  Richard Henderson  <rth@redhat.com>
10223
10224         PR opt/6516
10225         * toplev.c (rest_of_compilation): Don't run cross-jump before
10226         bb-reorder.
10227
10228 2002-04-30  Tom Rix  <trix@redhat.com>
10229
10230         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
10231         check which_alternative.
10232
10233 2002-04-30  Kazu Hirata  <kazu@hxi.com>
10234
10235         * cpplex.c: Fix comment formatting.
10236         * function.c: Likewise.
10237         * integrate.c: Likewise.
10238         * regrename.c: Likewise.
10239         * sibcall.c: Likewise.
10240         * simplify-rtx.c: Likewise.
10241         * tree-inline.c: Likewise.
10242
10243 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10244
10245         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
10246         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
10247         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
10248         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
10249         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
10250         * pa/x-ada: New file.  Define ADA_CFLAGS.
10251
10252 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
10253
10254         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
10255         from MMIX_LAST_REGISTER_FILE_REGNUM.
10256         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
10257         (struct machine_function): New member highest_saved_stack_register
10258         previously static variable in mmix.c.
10259         (MACHINE_DEPENDENT_REORG): Define.
10260         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
10261         (MMIX_OUTPUT_REGNO): New.
10262         (mmix_target_asm_function_prologue): Move calculation of last used
10263         saved-stack-register into...
10264         (mmix_machine_dependent_reorg): New function.  Update to also handle
10265         !TARGET_ABI_GNU.
10266         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
10267         register names, simplify somewhat by new variable regno.
10268         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
10269         register.
10270         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
10271         emitting register names.
10272         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
10273         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
10274         Remove fixed FIXME.
10275         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
10276         Declare.
10277
10278         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
10279
10280 2002-04-30  Richard Henderson  <rth@redhat.com>
10281
10282         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
10283         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
10284         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
10285         emit_tfmode_cvt): New.
10286         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
10287         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
10288         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
10289         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
10290         * config/sparc/sparc-protos.h: Update.
10291
10292 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
10293
10294         * install.texi (Final install): Add to the list of info to include
10295         in a report of a successful bootstrap, and add link to 3.1 list.
10296
10297 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
10298
10299         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
10300         (mode): Add vector modes
10301         (i387): Kill attribute.
10302         (unit): New attribute.
10303         (length_immediate): Grok new types.
10304         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
10305         (modrm): Use "unit".
10306         (memory): Handle MMX/SSE properly.
10307         (scheduling descriptions): Kill uses of fop1.
10308         (sse, mmx, fp patterns): Set type and mode properly.
10309
10310 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
10311
10312         * pa.c (override_options): Default to PA8000 scheduling.
10313         * doc/invoke.texi (HP-PA options): Mention newly added 7300
10314         scheduling parameter.
10315
10316         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
10317         handling of double precision multiplies.
10318
10319         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
10320         fpdiv and fpsqrt instructions.
10321         (7200 & 7300 scheduling): Fix typo in handling of
10322         store-load and store-store penalties.
10323
10324 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10325
10326         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
10327         mips.  Add two missing commas.
10328
10329 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
10330
10331         * doc/contrib.texi (Contributors): Update Paolo Carlini's
10332         and Benjamin Kosnik's entries.
10333
10334 2002-04-29  David S. Miller  <davem@redhat.com>
10335
10336         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
10337         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
10338         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
10339         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10340
10341 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10342
10343         * combine.c (find_split_point): Use gen_int_mode.
10344
10345 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
10346
10347         Merging code from dfa-branch:
10348
10349         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
10350
10351         * genautomata.c (output_reserv_sets): Fix typo.
10352
10353         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
10354
10355         * genautomata.c (output_reserv_sets): Remove
10356         next_cycle_output_flag.
10357
10358         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
10359
10360         * sched-rgn.c (init_ready_list): Make the DFA code handle
10361         USE/CLOBBER insns in the same way as the traditional
10362         scheduler.
10363         (new_ready): Similarly..
10364
10365         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
10366
10367         * haifa-sched.c (schedule_block): Change the DFA state only after
10368         issuing insn.
10369
10370         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
10371
10372         * pa.c (hppa_use_dfa_pipeline_interface): New function.
10373         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
10374         (override_options): Add PA7300 scheduling support.
10375         (pa_adjust_cost): Update various comments.  Properly
10376         handle anti and output dependencies when using the
10377         DFA scheduler.
10378         (pa_issue_rate): Add PA7300 scheduling support.
10379         (pa_can_combine_p): Call extract_insn before calling
10380         constrain_operands (taken from mainline tree).
10381         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
10382         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
10383         descriptions using DFA descriptions.  Add PA7300
10384         scheduling support.
10385
10386         2002-03-30  David S. Miller  <davem@redhat.com>
10387
10388         Add UltraSPARC-III DFA scheduling support.
10389         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
10390         Update FP conditional move on register insn patterns to use it, as
10391         appropriate.
10392         (define_attr cpu): Add ultrasparc3.
10393         (define_attr us3load_type): New, update integer load patterns to
10394         set it, as appropriate.
10395         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
10396         (rest): Add UltraSPARC3 scheduling description.
10397         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
10398         (PROCESSOR_ULTRASPARC3): New.
10399         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
10400         ({ASM,CPP}_CPU_SPEC): Likewise.
10401         (REGISTER_MOVE_COST): Likewise.
10402         (RTX_COSTS): Likewise.
10403         * config/sparc/sparc.c (sparc_override_options,
10404         sparc_initialize_trampoline, sparc64_initialize_trampoline,
10405         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
10406         sparc_issue_rate): Likewise.
10407         * config/sparc/sol2.h: Likewise.
10408         * config/sparc/sol2-sld-64.h: Likewise.
10409         * config/sparc/linux64.h: Likewise.
10410
10411         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
10412
10413         * doc/md.texi: Add comments about usage the latency time for the
10414         different dependencies and about case when two or more conditions
10415         in different define_insn_reservations returns TRUE for an insn.
10416
10417         * doc/md.texi: Add reference for automaton based pipeline
10418         description.
10419
10420         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
10421
10422         * doc/passes.texi: Add missed information about genattrtab.
10423
10424         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
10425
10426         * genautomata.c (output_automata_list_transition_code): Check
10427         automata_list on NULL.
10428
10429         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
10430
10431         * genautomata.c (output_insn_code_cases,
10432         output_automata_list_min_issue_delay_code,
10433         output_automata_list_transition_code,
10434         output_automata_list_state_alts_code): Comment the functions.
10435
10436         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
10437
10438         * genautomata.c (automata_list_el_t): New typedef.
10439         (get_free_automata_list_el,free_automata_list_el,
10440         free_automata_list, automata_list_hash, automata_list_eq_p,
10441         initiate_automata_lists, automata_list_start, automata_list_add,
10442         automata_list_finish, finish_automata_lists,
10443         output_insn_code_cases, output_automata_list_min_issue_delay_code,
10444         output_automata_list_transition_code,
10445         output_automata_list_state_alts_code, add_automaton_state,
10446         form_important_insn_automata_lists): New functions and prototypes.
10447         (insn_reserv_decl): Add members important_automata_list and
10448         processed_p.
10449         (ainsn): Add members important_p.
10450         (automata_list_el): New structure.
10451         (first_free_automata_list_el, current_automata_list,
10452         automata_list_table): New global variables.
10453         (create_ainsns): Initiate member important_p.
10454         (output_internal_min_issue_delay_func): Generate the switch and
10455         call output_insn_code_cases.
10456         (output_internal_trans_func, output_internal_state_alts_func):
10457         Ditto.
10458         (generate): Call initiate_automata_lists.
10459         (automaton_states): New global variable.
10460         (expand_automata): Call form_important_insn_automata_lists.
10461         (write_automata): Call finish_automata_lists.
10462
10463         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
10464
10465         * genautomata.c (add_excls, add_presence_absence): Check that
10466         cpu units in the sets belong the same automaton.
10467
10468         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
10469         about that cpu units in the sets belong the same automaton.
10470
10471         * doc/md.texi: Ditto.
10472
10473         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
10474                     Nitin Gupta  <niting@noida.hcltech.com>
10475
10476         * config/sh/sh.c (sh_use_dfa_interface): New function.
10477
10478         (sh_issue_rate): New Function.
10479         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
10480         TARGET_SCHED_ISSUE_RATE: define.
10481
10482         * config/sh/sh.md: Add DFA based pipeline description for SH4.
10483
10484         (define_attr insn_class): New attribute used for DFA
10485          scheduling.
10486         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
10487         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
10488          cmpeqdi_t): Likewise.
10489
10490         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
10491          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
10492          ex_group.
10493         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
10494
10495         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
10496
10497         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
10498         break.
10499
10500         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
10501
10502         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
10503         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
10504         necessary.
10505         (output_dfa_start_func): Initiate new variable insn_codes_length,
10506         (write_automata): Output definition of the new variable.
10507
10508         2001-10-02  David S. Miller  <davem@redhat.com>
10509
10510         * haifa-sched.c (advance_one_cycle): New function.
10511         (schedule_block): Use it.
10512         (queue_to_ready): Use it, and also make sure to advance the DFA
10513         state on all stall cycles, not just those where insn_queue links
10514         are found.
10515
10516         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
10517
10518         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
10519         non-zero if the highest-priority instruction could be scheduled.
10520         (choose_ready): Remove last argument from max_issue call.
10521
10522         2001-09-28  David S. Miller  <davem@redhat.com>
10523
10524         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
10525         ultrasparc and 3 for other multi-issue sparcs.
10526
10527         2001-09-27  David S. Miller  <davem@redhat.com>
10528
10529         * config/sparc/sparc.md (cycle_display): New pattern.
10530         * config/sparc/sparc.c (sparc_cycle_display): New.
10531         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
10532
10533         2001-09-25  David S. Miller  <davem@redhat.com>
10534
10535         Convert all of Sparc scheduling to DFA
10536         * config/sparc/sparc.md: Kill all define_function_unit
10537         directives and replace with DFA equivalent.
10538         * config/sparc/sparc.c (ultrasparc_adjust_cost,
10539         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
10540         ultra_fpmode_conflict_exists, ultra_find_type,
10541         ultra_build_types_avail, ultra_flush_pipeline,
10542         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
10543         ultrasparc_variable_issue, ultrasparc_sched_init,
10544         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
10545         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
10546         ultra_cur_hist, ultra_cycles_elapsed): Kill.
10547         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
10548         ultrasparc_store_bypass_p): New.
10549         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
10550         Declare.
10551
10552         2001-09-24  David S. Miller  <davem@redhat.com>
10553
10554         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
10555         ready->vec[foo] not ready[foo].
10556
10557         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
10558
10559         * doc/md.texi: Correct examples for define_insn_reservations
10560         `mult' and `div'.
10561
10562         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
10563
10564         * genautomata.c (create_automata): Print message about creation of
10565         each automaton.
10566         (generate): Remove printing meease about creation of
10567         automata.
10568
10569         2001-09-05  David S. Miller  <davem@redhat.com>
10570
10571         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
10572         * config/sparc/linux64.h: Likewise.
10573
10574         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
10575
10576         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
10577         schedule_block, sched_init, sched_finish): Add missed calls of
10578         use_dfa_pipeline_interface.
10579
10580         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
10581         Ditto.
10582
10583         * sched-vis.c (get_visual_tbl_length): Ditto.
10584
10585         2001-08-27  Richard Henderson  <rth@redhat.com>
10586
10587         * genattr.c (main): Emit state_t even when not doing scheduling.
10588
10589         2001-08-27  Richard Henderson  <rth@redhat.com>
10590
10591         * genautomata.c (expand_automata): Always create a description.
10592
10593         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
10594
10595         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
10596         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
10597         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
10598         RTL constructions.
10599
10600         * genattr.c (main): New variable num_insn_reservations.  Increase
10601         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
10602         pipeline hazard recognizer interface.
10603
10604         * genattrtab.h: New file.
10605
10606         * genattrtab.c: Include genattrtab.h.
10607         (attr_printf, check_attr_test, make_internal_attr,
10608         make_numeric_value): Move protypes into genattrtab.h.  Define them
10609         as external.
10610         (num_dfa_decls): New global variable.
10611         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
10612         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
10613         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
10614         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
10615
10616         * genautomata.c: New file.
10617
10618         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
10619
10620         * sched-int.h: (curr_state): Add the external definition for
10621         automaton pipeline interface.
10622         (haifa_insn_data): Add comments for members blockage and units.
10623
10624         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
10625         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
10626         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
10627         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
10628         TARGET_SCHED_DFA_POST_CYCLE_INSN,
10629         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
10630         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
10631         macros.
10632         (TARGET_SCHED): Use the new macros.
10633
10634         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
10635         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
10636         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
10637         dfa_bubble): New members in gcc_target.sched.
10638
10639         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
10640         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
10641         (insn_queue): Redefine it as pointer to array.
10642         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
10643         INSN_QUEUE_SIZE.
10644         (max_insn_queue_index_macro_value): New variable.
10645         (curr_state, dfa_state_size, ready_try): New varaibles for
10646         automaton interface.
10647         (ready_element, ready_remove, max_issue): New function prototypes
10648         for automaton interface.
10649         (choose_ready): New function prototype.
10650         (insn_unit, blockage_range): Add comments.
10651         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
10652         FUNCTION_UNITS_SIZE == 0.
10653         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
10654         actual_hazard, potential_hazard): Add comments.
10655         (insn_cost): Use cost -1 as undefined value.  Remove
10656         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
10657         pipeline interface.
10658         (ready_element, ready_remove): New functions for automaton
10659         interface.
10660         (schedule_insn): Add new code for automaton pipeline interface.
10661         (queue_to_ready): Add new code for automaton pipeline interface.
10662         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
10663         (debug_ready_list): Print newline when the queue is empty.
10664         (max_issue): New function for automaton pipeline interface.
10665         (choose_ready): New function.
10666         (schedule_block): Add new code for automaton pipeline interface.
10667         Print ready list before scheduling each insn.
10668         (sched_init): Add new code for automaton pipeline interface.
10669         Initiate insn cost by -1.
10670         (sched_finish): Free the current automaton state and finalize
10671         automaton pipeline interface.
10672
10673         * sched-rgn.c: Include target.h.
10674         (init_ready_list, new_ready, debug_dependencies): Add new code for
10675         automaton pipeline interface.
10676
10677         * sched-vis.c: Include target.h.
10678         (get_visual_tbl_length): Add code for automaton interface.
10679         (target_units, print_block_visualization):  Add comments.
10680
10681         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
10682         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
10683         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
10684         (getruntime.o, genautomata.o): New entries.
10685         (genattrtab.o): Add new dependency file genattrtab.h.
10686         (genattrtab): Add new dependencies.  Link it with `libm.a'.
10687         (getruntime.o, hashtab.o): New entries for canadian cross.
10688
10689         * doc/md.texi: Description of automaton based model.
10690
10691         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
10692         Add comments.
10693         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
10694         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
10695         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
10696         TARGET_SCHED_DFA_POST_CYCLE_INSN,
10697         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
10698         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
10699         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
10700         hook descriptions.
10701         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
10702         MAX_DFA_ISSUE_RATE): New macro descriptions.
10703
10704         * doc/contrib.texi: Add dfa based scheduler contribution.
10705
10706         * doc/gcc.texi: Add more information about genattrtab.
10707
10708 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10709
10710         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
10711         adjust_address_nv call.
10712
10713 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
10714
10715         * doc/install.texi (Testing): Provide additional information, and
10716         a stronger encouragement, for running the testsuites.
10717
10718 2002-04-29  DJ Delorie  <dj@redhat.com>
10719
10720         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
10721         given in upper case.
10722
10723 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10724
10725         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
10726         Solaris 2 <widec.h> if missing.
10727         * fixinc/fixincl.x: Regenerate.
10728         * fixinc/tests/base/widec.h: New file.
10729
10730 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
10731
10732         * toplev.c (f_options): Add "profile" switch so that
10733         -fno-profile can be used to disable -p.
10734
10735 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
10736
10737         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
10738         UV2DImode.
10739         * tree.c (build_common_tree_nodes_2): Likewise.
10740         * tree.h (enum tree_index): Likewise.
10741         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
10742
10743         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
10744         entries.
10745         (init_mmx_sse_builtins): Initialize SSE2 builtins.
10746         (ix86_expand_builtin): Add support for SSE2 builtins.
10747         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
10748         (VALID_SSE_REG_MODE): Use it.
10749         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
10750         (enum ix86_builtins): Add SSE2 builtins.
10751         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
10752         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
10753         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
10754         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
10755         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
10756         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
10757         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
10758         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
10759         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
10760         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
10761         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
10762         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
10763         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
10764         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
10765         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
10766         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
10767         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
10768         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
10769         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
10770         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
10771         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
10772         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
10773         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
10774         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
10775         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
10776         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
10777         lfence_insn): New patterns.
10778         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
10779         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
10780
10781 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
10782
10783         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
10784
10785 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10786
10787         * doc/contrib.texi (Contributors): Add Paolo Carlini and
10788         Janis Johnson.
10789         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
10790         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
10791         and CPU instead of cpu.
10792
10793 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
10794
10795         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
10796         variables.
10797         (lang_independent_options): Add -fif-conversion, -fif-conversion2
10798         (rest_of_compilation): Do if conversion only when asked for.
10799         (parse_options_and_default_flags): Set new variables to 1 for -O1
10800         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
10801
10802 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
10803
10804         * i386.c (dbx64_register_map): Fix typo.
10805
10806 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
10807
10808         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
10809         real_one_half, real_bb_freq_max): New static variables.
10810         (debug_profile_bbauxs): Kill.
10811         (process_note_predictions): Kill unused variable.
10812         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
10813         volatile double.
10814         (propagate_freq): Use REAL_ARITHMETICS.
10815         (estimate_bb_frequencies): Likevise; init new static variables.
10816         * Makefile.in (predict.o): Add dependency on real.h
10817
10818 2002-04-28  David S. Miller  <davem@redhat.com>
10819
10820         PR target/6500
10821         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
10822         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
10823         several {reads,writes} instead.
10824         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
10825         Define.
10826
10827 2002-04-27  David S. Miller  <davem@redhat.com>
10828
10829         PR target/6494
10830         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
10831         of the stack bias.
10832
10833         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
10834         including signal.h and sys/ucontext.h, not needed.
10835
10836 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
10837
10838         * varasm.c (output_constant_def): Correct test for not calling
10839         ENCODE_SECTION_INFO for INTEGER_CST.
10840
10841 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10842
10843         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
10844         keep most cases as function eval_token.
10845         (eval_token): New function.
10846         (_cpp_parse_expr): Read token here for improved diagnostics.
10847         Don't use op_as_text.  Detect bad ':' here.
10848         (reduce): Don't detect bad ':' here.
10849         (op_as_text): Remove.
10850         * cpphash.h (_cpp_test_assertion): Change prototype.
10851         * cpplib.c (_cpp_test_assertion): Change prototype.
10852
10853 2002-04-28  Richard Henderson  <rth@redhat.com>
10854
10855         PR c/5154
10856         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
10857         (ggc_mark_rtx_children): New.
10858
10859 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10860
10861         PR target/6496
10862         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
10863         after call peepholes for UltraSPARC.
10864         (call + jump 64-bit peepholes): Remove.
10865
10866 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10867
10868         PR c/6497
10869         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
10870         result as temporary value.
10871
10872 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10873
10874         PR c++/6396
10875         * toplev.c (rest_of_compilation): Only run regrename and copy
10876         propagation if optimizing.
10877
10878 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
10879
10880         PR optimization/6475
10881         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
10882         register of REGNO_DECL (i).
10883         * Makefile.in (reload1.o): Add $(TREE_H).
10884
10885 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10886
10887         * cppexp.c (lex): Update to use state.skip_eval.
10888         (struct op): Remove prio and flags members.
10889         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
10890         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
10891         (LEFT_ASSOC): New macro.
10892         (optab): New table of operator priorities and flags.
10893         (SHIFT): Update.
10894         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
10895         malloc-ed parser stack.
10896         (reduce): New; reduce the operator stack.
10897         (_cpp_expand_op_stack): Expand the operator stack as necessary.
10898         * cpphash.h (struct op): Predeclare.
10899         (struct cpp_reader): New members op_stack, op_limit.
10900         (struct lexer_state): New member skip_eval.
10901         (_cpp_parse_expr): Update.
10902         (_cpp_expand_op_stack): New.
10903         * cpplib.c (do_if): Update.
10904         * cppinit.c (cpp_create_reader): Create op stack.
10905         (cpp_destroy): And destroy it.
10906         * cpplib.h (CPP_LAST_CPP_OP): Correct.
10907         (TTYPE_TABLE): Correct.
10908
10909 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10910
10911         PR c/6343
10912         * c-decl.c (duplicate_decls): Call merge_weak.
10913         * c-pragma.c (apply_pragma_weak): Warn about misuse.
10914         * output.h (merge_weak): Prototype merge_weak.
10915         * varasm.c (merge_weak): New function.
10916         (declare_weak): Make sure we don't give an error on VAR_DECLs.
10917         Mark RTL with SYMBOL_REF_WEAK.
10918
10919 2002-04-27  Kurt Garloff <garloff@suse.de>
10920
10921         * tree-inline.c (inlinable_function_p): Improve heuristics
10922         by using a smoother function to cut down allowable inlinable size.
10923         * param.def: Add parameters max-inline-insns-single,
10924         max-inline-slope, min-inline-insns that determine the exact
10925         shape of the above function.
10926         * param.h: Likewise.
10927
10928 2002-04-26  Richard Henderson  <rth@redhat.com>
10929
10930         * c-parse.in (malloced_yyss, malloced_yyvs): New.
10931         (yyoverflow): Re-add.  Set them.
10932         (free_parser_stacks): New.
10933         * c-common.h: Declare it.
10934         * c-lex.c (c_common_parse_file): Call it.
10935
10936 2002-04-26  Richard Henderson  <rth@redhat.com>
10937
10938         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
10939         for fallthru search.
10940
10941 2002-04-26  Eric Christopher  <echristo@redhat.com>
10942
10943         PR optimization/3700
10944         * config/mips/mips.c (mips_issue_rate): Define.  New function.
10945         (TARGET_SCHED_ISSUE_RATE): Use.
10946
10947 2002-04-25  David S. Miller  <davem@redhat.com>
10948
10949         PR target/6422
10950         * reorg.c (optimize_skip): Do not allow exception causing
10951         instructions to be considered for delay slots.
10952         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
10953         (relax_delay_slots): Do not try to consider exception causing
10954         instructions as redundant.
10955
10956 2002-04-26  Richard Henderson  <rth@redhat.com>
10957
10958         PR c/5225
10959         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
10960
10961 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
10962
10963         PR bootstrap/6445
10964         * config/i386/i386.md (untyped_call): Return the value in a float
10965         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
10966         TARGET_80387.
10967
10968 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
10969
10970         * tree.c (tree_int_cst_lt): Compare constants whose types differ
10971         in unsigned-ness correctly.
10972
10973 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10974
10975         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
10976         portable runtime model.
10977
10978 2002-04-26  Richard Henderson  <rth@redhat.com>
10979
10980         * c-parse.in (yyoverflow): Revert.
10981
10982 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
10983             Richard Henderson  <rth@redhat.com>
10984
10985         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
10986         result as temporary value.
10987
10988 2002-04-26  Richard Henderson  <rth@redhat.com>
10989
10990         PR c/3581
10991         * c-common.c (fix_string_type): Split out of ...
10992         (combine_strings): ... here.  Take a varray, not a tree list.
10993         (c_expand_builtin_printf): Use fix_string_type.
10994         * c-common.h: Update decls.
10995         * c-parse.in (string): Remove.  Update all uses to use STRING
10996         instead, and not call combine_strings.
10997         (yylexstring): New.
10998         (_yylex): Use it.
10999         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
11000         (build_asm_stmt): Likewise.
11001         * objc/objc-act.c (my_build_string): Use fix_string_type.
11002         (build_objc_string_object): Build varray for combine_strings.
11003
11004 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
11005
11006         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
11007         x86-64.
11008
11009 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11010
11011         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
11012         (HAVE_NO_R_OPERAND): Remove.
11013         (HAVE_VALUE): Remove.
11014         (op_to_prio): Update.
11015         (UNARY): Don't alter flags.
11016         (_cpp_parse_expr): want_value used to indicate whether
11017         a number or unary operator is expected next.  Distinguish
11018         unary and binary +/-.
11019         (op_as_text): Update for unary operators.
11020
11021 2002-04-25  Richard Henderson  <rth@redhat.com>
11022
11023         PR c/2161
11024         * c-parse.in (yyoverflow): New.
11025
11026 2002-04-25  Richard Henderson  <rth@redhat.com>
11027
11028         PR c/2098
11029         * c-common.c (shorten_compare): Simplfy conditions leading to
11030         the generation of a warning.
11031
11032 2002-04-25  Richard Henderson  <rth@redhat.com>
11033
11034         PR c/2035
11035         * expmed.c (extract_bit_field): Fall through to generic code rather
11036         than aborting on subreg special case.
11037
11038 2002-04-25  David S. Miller  <davem@redhat.com>
11039
11040         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
11041         for DECL being NULL.
11042
11043 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
11044
11045         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
11046
11047 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
11048
11049         * c-decl.c (grokdeclarator): Remove outdated ??? note
11050         on invalid declaration of flexible array members.
11051
11052 2002-04-25  Richard Henderson  <rth@redhat.com>
11053
11054         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
11055
11056 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
11057
11058         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
11059         needed by the compiler, even if they are used as global regs.
11060
11061 2002-04-25  Matt Hiller  <hiller@redhat.com>
11062
11063         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
11064         functions.
11065         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
11066         of the corresponding functions.
11067         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
11068         New prototypes.
11069
11070 2002-04-25  Matt Hiller  <hiller@redhat.com>
11071
11072         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
11073
11074         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
11075         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
11076         registers, adjust comment accordingly.
11077         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
11078         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
11079         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
11080         for coprocessor registers.
11081         (ADDITIONAL_REGISTER_NAMES): Include
11082         ALL_COP_ADDITIONAL_REGISTER_NAMES.
11083
11084         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
11085         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
11086         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
11087         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
11088         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
11089
11090         (mips_char_to_class): Adjust comment to include coprocessor
11091         constraint letters.
11092
11093         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
11094         New functions.
11095         (mips_reg_names, mips_regno_to_class): Include coprocessor
11096         information.
11097         (mips_sw_reg_names): Ditto, make non-static.
11098         (mips_move_1word): Handle moves to and from coprocessor registers.
11099         (mips_move_2words): Handle moves to and from coprocessor
11100         registers.
11101         (mips_class_max_nregs, mips_register_move_cost): Handle
11102         coprocessor register classes.
11103         (override_options): Initialize mips_char_to_class and
11104         mips_hard_regno_mode_ok properly for coprocessor registers.
11105
11106         * config/mips/mips.md (movdi_internal, movdi_internal2,
11107         movsi_internal1, movsi_internal2): Add constraint-sets for
11108         coprocessor registers.
11109         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
11110         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
11111         isn't mips.
11112         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
11113         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
11114         isn't mips.
11115         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
11116         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
11117         isn't mips.
11118         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
11119         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
11120         isn't mips.
11121
11122         * doc/tm.texi: Document feature.
11123
11124 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11125
11126         * integrate.c (function_attribute_inlinable_p): Simplify.
11127         Check the table pointer is not NULL.
11128
11129 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
11130
11131         * doc/c-tree.texi: Fix typo in introduction.
11132
11133 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11134
11135         * c-common.h (c_common_parse_file): Update.
11136         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11137         * c-lex.c (YYDEBUG): Get from c-lex.h.
11138         (c_common_parse_file): Update.
11139         * c-lex.h (YYDEBUG, yydebug): New.
11140         * c-parse.in (YYDEBUG): Get from c-lex.h.
11141         (c_set_yydebug): Remove.
11142         * c-tree.h (c_set_yydebug): Remove.
11143         * langhooks-def.h (lhd_do_nothing_i): New.
11144         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
11145         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
11146         * langhooks.c  (lhd_do_nothing_i): New.
11147         (lhd_set_yydebug): Remove.
11148         * langhooks.h (struct lang_hooks): Update.
11149         * toplev.c (set_yydebug): New.
11150         (compile_file): Update call to parse_file hook.
11151         (decode_d_option): Update.
11152 objc:
11153         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11154
11155 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
11156
11157         * loop.c (load_mems): Don't change the interface of called functions.
11158
11159         * calls.c (expand_call): Take current_function_pretend_args_size
11160         into account when setting argblock for sibcalls.
11161
11162 2002-04-24  Matt Hiller  <hiller@redhat.com>
11163
11164         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
11165         * c-lex.c: Ditto.
11166
11167         * cpplex.c (skip_line_comment): Process comment one multibyte
11168         character at a time rather than one char at a time, if
11169         appropriate.
11170         (parse_string): Process string one multibyte character at a time
11171         rather than one char at a time, if appropriate.
11172         * c-lex.c (lex_string): Lex and copy multibyte strings
11173         appropriately.
11174         * cpplib.h (cppchar_t): Change to unsigned.
11175
11176 2002-04-24  Richard Henderson  <rth@redhat.com>
11177
11178         PR c/3467
11179         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
11180         for c99.
11181
11182 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
11183
11184         * sh.c (sh_va_arg): If argument was passed by reference,
11185         dereference the pointer.
11186
11187         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11188
11189         * sh.md (divsi3_i4_media): Use match_operand for input values
11190         rather than hard registers.
11191         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
11192         unnecessarily through hard registers.  Keep copies of pseudo
11193         registers outside of the libcall sequence.
11194
11195         * sh.md (casesi_shift_media): Add modes.
11196
11197         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
11198         values in memory.
11199
11200 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11201
11202         * attribs.c (c_common_attribute_table): Move table and handlers
11203         to c-common.c.
11204         (format_attribute_table, lang_attribute_table,
11205         lang_attribute_common): Remove.
11206         (init_attributes): Replace NULL pointers with pointers to the
11207         empty table.
11208         (handle_packed_attribute, handle_nocommon_attribute,
11209         handle_common_attribute, handle_noreturn_attribute,
11210         handle_noinline_attribute, handle_always_inline_attribute,
11211         handle_used_attribute, handle_unused_attribute,
11212         handle_const_attribute, handle_transparent_union_attribute,
11213         handle_constructor_attribute, handle_destructor_attribute,
11214         handle_mode_attribute, handle_section_attribute,
11215         handle_aligned_attribute, handle_weak_attribute,
11216         handle_alias_attribute, handle_visibility_attribute,
11217         handle_no_instrument_function_attribute, handle_malloc_attribute,
11218         handle_no_limit_stack_attribute, handle_pure_attribute,
11219         handle_deprecated_attribute, handle_vector_size_attribute,
11220         vector_size_helper): Move to c-common.c.
11221         * c-common.c (c_common_attribute_table,
11222         handle_packed_attribute, handle_nocommon_attribute,
11223         handle_common_attribute, handle_noreturn_attribute,
11224         handle_noinline_attribute, handle_always_inline_attribute,
11225         handle_used_attribute, handle_unused_attribute,
11226         handle_const_attribute, handle_transparent_union_attribute,
11227         handle_constructor_attribute, handle_destructor_attribute,
11228         handle_mode_attribute, handle_section_attribute,
11229         handle_aligned_attribute, handle_weak_attribute,
11230         handle_alias_attribute, handle_visibility_attribute,
11231         handle_no_instrument_function_attribute, handle_malloc_attribute,
11232         handle_no_limit_stack_attribute, handle_pure_attribute,
11233         handle_deprecated_attribute, handle_vector_size_attribute,
11234         vector_size_helper): Move from attribs.c.
11235         * c-common.h (c_common_attribute_table,
11236         c_common_format_attribute_table): New.
11237         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
11238         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
11239         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11240         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
11241         (LANG_HOOKS_INITIALIZER): Update.
11242         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
11243         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
11244         * target.h: Update comment.
11245         * tree.c (default_target_attribute_table): Remove.
11246         * tree.h (default_target_attribute_table, format_attribute_table,
11247         lang_attribute_table, lang_attribute_common): Remove.
11248 objc:
11249         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
11250         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
11251
11252 2002-04-24  Jason Merrill  <jason@redhat.com>
11253
11254         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
11255         * dwarf2out.c (dwarf_attr_name): Support it.
11256         (gen_array_type_die): Emit it.
11257         (lookup_type_die): No special handling for VECTOR_TYPE.
11258         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
11259
11260 2002-04-24  Richard Henderson  <rth@redhat.com>
11261
11262         * config/mips/mips.md (movdi_usd): Renumber.
11263
11264 2002-04-24  David S. Miller  <davem@redhat.com>
11265
11266         PR target/6420
11267         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
11268         32-bit Sparc and current_function_returns_struct is true.
11269
11270 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
11271
11272         * loop.c (canonicalize_condition): Use gen_int_mode.
11273
11274 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
11275
11276         * config/rs6000/altivec.h: Cleanup file.  Add non individual
11277         variants.
11278         (vec_vaddubm): New.
11279         (vec_vadduhm): New.
11280         (vec_vadduwm): New.
11281         (vec_vaddfp): New.
11282         (vec_vaddcuw): New.
11283         (vec_vaddubs): New.
11284         (vec_vaddsbs): New.
11285         (vec_vadduhs): New.
11286         (vec_vadduws): New.
11287         (vec_vaddsws): New.
11288         (vec_vand): New.
11289         (vec_vandc): New.
11290         (vec_vavgub): New.
11291         (vec_vavgsb): New.
11292         (vec_vavguh): New.
11293         (vec_vavgsh): New.
11294         (vec_vavguw): New.
11295         (vec_vavgsw): New.
11296         (vec_vrfip): New.
11297         (vec_vcmpbfp): New.
11298         (vec_vcmpequb): New.
11299         (vec_vcmpequh): New.
11300         (vec_vcmpequw): New.
11301         (vec_vcmpeqfp): New.
11302         (vec_vcmpgefp): New.
11303         (vec_vcmpgtub): New.
11304         (vec_vcmpgtsb): New.
11305         (vec_vcmpgtuh): New.
11306         (vec_vcmpgtsh): New.
11307         (vec_vcmpgtuw): New.
11308         (vec_vcmpgtsw): New.
11309         (vec_vcmpgtfp): New.
11310         (vec_vcmpgefp): New.
11311         (vec_vcfux): New.
11312         (vec_vcfsx): New.
11313         (vec_vctsxs): New.
11314         (vec_vctuxs): New.
11315         (vec_vexptefp): New.
11316         (vec_vrfim): New.
11317         (vec_lvx): New.
11318         (vec_lvebx): New.
11319         (vec_lvehx): New.
11320         (vec_lde): Add vector float variant.
11321         (vec_lvewx): New.
11322         (vec_lvxl): New.
11323         (vec_vlogefp): New.
11324         (vec_vmaddfp): New.
11325         (vec_vmhaddshs): New.
11326         (vec_vmaxub): New.
11327         (vec_vmaxsb): New.
11328         (vec_vmaxuh): New.
11329         (vec_vmaxsh): New.
11330         (vec_vmaxuw): New.
11331         (vec_vmaxsw): New.
11332         (vec_vmaxsw): New.
11333         (vec_vmaxfp): New.
11334         (vec_vmrghb): New.
11335         (vec_vmrghh): New.
11336         (vec_vmrghw): New.
11337         (vec_vmrglb): New.
11338         (vec_vmrglh): New.
11339         (vec_vmrglw): New.
11340         (vec_vminub): New.
11341         (vec_vminsb): New.
11342         (vec_vminuh): New.
11343         (vec_vminsh): New.
11344         (vec_vminuw): New.
11345         (vec_vminsw): New.
11346         (vec_vminfp): New.
11347         (vec_vmladduhm): New.
11348         (vec_vmhraddshs): New.
11349         (vec_msumubm): New.
11350         (vec_vmsummbm): New.
11351         (vec_vmsumuhm): New.
11352         (vec_vmsumshm): New.
11353         (vec_vmsumuhs): New.
11354         (vec_vmsumshs): New.
11355         (vec_vmuleub): New.
11356         (vec_vmulesb): New.
11357         (vec_vmuleuh): New.
11358         (vec_vmulesh): New.
11359         (vec_vmuloub): New.
11360         (vec_mulosb): New.
11361         (vec_vmulouh): New.
11362         (vec_vmulosh): New.
11363         (vec_vnmsubfp): New.
11364         (vec_vnor): New.
11365         (vec_vor): New.
11366         (vec_vpkuhum): New.
11367         (vec_vpkuwum): New.
11368         (vec_vpkpx): New.
11369         (vec_vpkuhus): New.
11370         (vec_vpkshss): New.
11371         (vec_vpkuwus): New.
11372         (vec_vpkswss): New.
11373         (vec_vpkshus): New.
11374         (vec_vpkswus): New.
11375         (vec_vperm): New.
11376         (vec_vrefp): New.
11377         (vec_vrlb): New.
11378         (vec_vrlh): New.
11379         (vec_vrlw): New.
11380         (vec_vrfin): New.
11381         (vec_vrsqrtefp): New.
11382         (vec_vsel): New.
11383         (vec_vslb): New.
11384         (vec_vslh): New.
11385         (vec_vslw): New.
11386         (vec_vsldoi): New.
11387         (vec_vsl): New.
11388         (vec_vslo): New.
11389         (vec_vspltb): New.
11390         (vec_vsplth): New.
11391         (vec_vspltw): New.
11392         (vec_vspltisb): New.
11393         (vec_vspltish): New.
11394         (vec_vspltisw): New.
11395         (vec_vsrb): New.
11396         (vec_vsrh): New.
11397         (vec_vsrw): New.
11398         (vec_vsrab): New.
11399         (vec_vsrah): New.
11400         (vec_vsraw): New.
11401         (vec_vsr): New.
11402         (vec_vsro): New.
11403         (vec_stvx): New.
11404         (vec_stvebx): New.
11405         (vec_stvehx): New.
11406         (vec_stvewx): New.
11407         (vec_stvxl): New.
11408         (vec_vsububm): New.
11409         (vec_vsubuhm): New.
11410         (vec_vsubuwm): New.
11411         (vec_vsubfp): New.
11412         (vec_vsubcuw): New.
11413         (vec_vsububs): New.
11414         (vec_vsubsbs): New.
11415         (vec_vsubuhs): New.
11416         (vec_vsubshs): New.
11417         (vec_vsubuws): New.
11418         (vec_vsubsws): New.
11419         (vec_vsum4ubs): New.
11420         (vec_vsum4sbs): New.
11421         (vec_vsum4shs): New.
11422         (vec_vsum2sws): New.
11423         (vec_vsumsws): New.
11424         (vec_vrfiz): New.
11425         (vec_vupkhsb): New.
11426         (vec_vupkhpx): New.
11427         (vec_vupkhsh): New.
11428         (vec_vupklsb): New.
11429         (vec_vupklpx): New.
11430         (vec_vupklsh): New.
11431         (vec_vxor): New.
11432
11433 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
11434
11435         PR c/5430
11436         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
11437         added literals from substracted literals.
11438         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
11439         (fold) [associate]: Preserve MINUS_EXPR if needed.
11440
11441 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
11442
11443         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
11444         are obsoleted.
11445
11446 2002-04-23  Tom Tromey  <tromey@redhat.com>
11447
11448         * gcc.c: Added --resource.  For PR java/6314.
11449
11450 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
11451
11452         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
11453         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
11454         these libraries.
11455
11456 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
11457
11458         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
11459
11460 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
11461
11462         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
11463         workaround.
11464         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
11465         (ix86_expand_clrstr): Fix typo.
11466         * loop.c (gen_load_of_final_value): New.
11467         (loop_givs_rescan, strength_reduce, check_dbra_loop):
11468         Use it.
11469
11470 2002-04-23  Roger Sayle  <roger@eyesopen.com>
11471
11472         * builtins.c (builtin_memset_gen_str): New function.
11473         (expand_builtin_memset): Optimize the case of constant length, but
11474         unknown value.
11475
11476 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
11477
11478         * config/rs6000/altivec.h (vec_step): Remove extraneous
11479         parentheses.
11480         (vec_ctu): Cast return.
11481
11482 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
11483
11484         PR target/6413
11485         * function.h: (struct function): Add profile_label_no field.
11486         (current_function_profile_label_no): Define.
11487         * function.c: (profile_label_no): New static var.
11488         (expand_function_start): Increment it, and copy to
11489         current_function_profile_label_no.
11490         * output.h (profile_label_no): Delete.
11491         * final.c (profile_label_no): Delete.
11492         (profile_function): Use current_function_profile_label_no.
11493         (final_end_function): Don't increment profile_label_no here.
11494         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
11495         profile_label_no with current_function_profile_label_no.
11496         * config/pa/pa.c (current_function_number): Delete.
11497         (pa_output_function_prologue): Don't output profile label here.
11498         (hppa_profile_hook): Use label_no param rather than
11499         current_function_number.
11500         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
11501         * config/pa/pa.h: .. here.
11502         (FUNCTION_PROFILER): Output profile label here.
11503
11504 2002-04-22  Eric Christopher  <echristo@redhat.com>
11505
11506         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
11507         patch of 2002-04-09 due to binutils issues.
11508         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
11509
11510 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
11511
11512         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
11513         constraint to 'o' for m=r and r=m alternatives.
11514         ("*movv8hi_internal1"): Same.
11515         ("*movv16qi_internal1"): Same.
11516         ("*movv4sf_internal1"): Same.
11517
11518 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
11519
11520         * rtl.h (RTX_FLAG): New macro.
11521         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
11522         * final.c (alter_subreg): Use macro to access rtx flag.
11523         * integrate.c (copy_rtx_and_substitute): Use new access macro.
11524         * print-rtl.c (print_rtx): Use new access macro.
11525
11526         * cse.c (insert): Check rtx code before accessing flag.
11527
11528         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
11529         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
11530         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
11531         convert_const_symbol_ref, make_canonical, make_alternative_compare,
11532         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
11533         simplify_test_exp, optimize_attrs, simplify_by_exploding,
11534         find_and_mark_used_attributes, unmark_used_attributes,
11535         add_values_to_cover, simplify_with_current_value,
11536         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
11537         copy_rtx_unchanging, main): Use new access macros.
11538
11539 2002-04-22  Tom Rix  <trix@redhat.com>
11540
11541         * expmed.c (init_expmed): Generate shifted constant once.
11542
11543 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
11544
11545         * c-lex.c (lex_charconst): Call convert to get constant in
11546         proper type; don't just smash the type field.
11547         Fixes PR c/6300.
11548
11549         * config.gcc: Add list of obsolete configurations.  Disallow
11550         building these without --enable-obsolete.
11551         * doc/install.texi: Document --enable-obsolete and obsoletion
11552         policy.  Mention obsoletion of individual targets in
11553         appropriate places.
11554
11555 2002-04-22  Richard Henderson  <rth@redhat.com>
11556
11557         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
11558
11559 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
11560
11561         PR f/6138.
11562         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
11563         (walk_fixup_memory_subreg): Likewise.
11564         (fixup_var_refs_insn): Adjust accordingly.
11565         (fixup_var_refs_1): Likewise.
11566
11567 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
11568
11569         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
11570         LIBPATH_ARCH64_SPEC): Define.
11571         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
11572         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
11573         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
11574         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
11575
11576 2002-04-22      Joel Sherrill <joel@OARcorp.com>
11577
11578         * gthr-rtems.h: Correct prototypes to remove warnings.
11579
11580 2002-04-22  Richard Henderson  <rth@redhat.com>
11581
11582         PR c/6344
11583         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
11584
11585         * gcse.c (free_insn_expr_list_list): New.
11586         (clear_modify_mem_tables): Use it.  Fix bit set usage.
11587         (canon_list_insert): Use EXPR_LISTs for expressions.
11588         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
11589
11590 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11591
11592         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
11593         file change and include code to _cpp_pop_buffer.
11594         * cpphash.h (struct pending_option): Predeclare.
11595         (struct cpp_reader): New member next_include_file.
11596         (_cpp_pop_file_buffer): Update.
11597         (_cpp_push_next_buffer): Update, rename.
11598         * cppinit.c (cpp_destroy): Free include chain and pending here.
11599         (cpp_finish_options): Simplify.
11600         (_cpp_push_next_buffer): Rename and clean up.
11601         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
11602         Clarify.
11603         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
11604
11605 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
11606
11607         * config/rs6000/altivec.h (vec_xor): Add variant for both args
11608         being vector signed int.
11609         (vec_andc): Same.
11610         (vec_xor): Add variant for both args being vector signed char.
11611         Remove redundant variant.
11612         (vec_andc): Same.
11613
11614 2002-04-21  David S. Miller  <davem@redhat.com>
11615
11616         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
11617         compare mode in output RTL.
11618
11619 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
11620
11621         * config/rs6000/rs6000.c (rs6000_override_options): Correct
11622         style and formatting of previous patch.
11623
11624 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
11625
11626         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
11627         flag_pic for ABI_AIX.
11628
11629 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11630
11631         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
11632         * cppfiles.c (read_include_file): Similarly.
11633         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
11634         uxstrdup ustrchr, ufputs): Similarly.
11635         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
11636         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
11637         cpp_ideq, parse_identifier, parse_number): Similarly.
11638         * cpplib.c (struct directive, dequote_string, D, run_directive,
11639         cpp_push_buffer): Similarly.
11640         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
11641         _cpp_create_definition, check_trad_stringification,
11642         cpp_macro_definition): Similarly.
11643
11644 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11645
11646         * cppmacro.c (funlike_invocation_p): Don't step back
11647         over CPP_EOF.
11648
11649 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
11650
11651         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
11652         labelno.
11653
11654 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
11655
11656         * doc/invoke.texi: Remove Chill references.
11657         * doc/gcc.texi: Update last modified date.
11658
11659 2002-04-20  Kazu Hirata  <kazu@hxi.com>
11660
11661         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
11662         push and pop.  Replace add.l with add.w.
11663
11664 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11665
11666         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
11667         multiply instructions for H8/300H case.
11668
11669 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11670
11671         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
11672         Bum three instructions from each routine.
11673
11674 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11675
11676         * Makefile.in: Update.
11677         * decl.c (push_c_function_context, pop_c_function_context,
11678         mark_c_function_context): Rename for consistency.
11679         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
11680         * c-tree.h (push_c_function_context, pop_c_function_context,
11681         mark_c_function_context): Rename for consistency.
11682         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
11683         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
11684         * function.c (init_lang_status, save_lang_status,
11685         restore_lang_status, mark_lang_status, free_lang_status):
11686         Move to langhooks.h.
11687         (push_function_context_to, pop_function_context_from,
11688         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
11689         Update.
11690         * function.h (init_lang_status, save_lang_status,
11691         restore_lang_status, mark_lang_status, free_lang_status):
11692         Move to langhooks.h.
11693         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
11694         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11695         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
11696         LANG_HOOKS_FUNCTION_INITIALIZER): New.
11697         (LANG_HOOKS_INITIALIZER): Update.
11698         (lhd_do_nothing_f): New.
11699         * langhooks.h (struct lang_hooks_for_functions): New.
11700         (struct lang_hooks): New hooks.
11701         * langhooks.c (lhd_do_nothing_f): New.
11702 objc:
11703         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
11704         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
11705
11706 2002-04-19  David S. Miller  <davem@redhat.com>
11707
11708         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
11709         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
11710
11711 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
11712
11713         PR optimization/3756
11714         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
11715         x = ((int) y < 0) ? cst1 : cst2.
11716
11717 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
11718
11719         PR c/6358
11720         * function.c: Reapply patch for c/6358.
11721         (expand_function_end): Copy decl_rtl's mode, not
11722         current_function_return_rtx mode.
11723
11724 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
11725
11726         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
11727         targets.
11728
11729 2002-04-19  Tom Tromey  <tromey@redhat.com>
11730
11731         * doc/install.texi (Specific): Update status of Solaris 2.8.
11732         For PR libgcj/6158.
11733
11734 2002-04-19  Andreas Schwab  <schwab@suse.de>
11735
11736         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
11737         (PUT_REAL): Restore old definition.
11738
11739 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
11740             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11741
11742         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
11743         binutils 2.11.2 and higher generate smaller binaries than Sun's
11744         native tools.
11745
11746 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
11747
11748         PR c++/6352
11749         * toplev.c (rest_of_compilation): Do not defer functions for which
11750         TREE_SYMBOL_REFERENCED has already been set.
11751
11752 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
11753
11754         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
11755         alternative.
11756
11757 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11758
11759         * builtins.c: Include langhooks.h.
11760         (lang_type_promotes_to): Remove.
11761         (expand_builtin_va_arg): Use new hook.
11762         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
11763         (simple_type_promotes_to): Move to c-typeck.c.
11764         * c-common.h (simple_type_promotes_to): Remove.
11765         * c-decl.c (duplicate_decls, grokdeclarator): Update.
11766         * c-format.c: Include langhooks.h.
11767         (check_format_types): Update.
11768         * c-tree.h (c_type_promotes_to): New.
11769         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
11770         (type_lists_compatible_p): Update.
11771         * langhooks-def.h (lhd_type_promotes_to): New.
11772         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
11773         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
11774         * langhooks.c (lhd_type_promotes_to): New.
11775         * langhooks.h (struct lang_hooks_for_types): New hook.
11776         * tree.h (lang_type_promotes_to): Remove.
11777 objc:
11778         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
11779
11780 2002-04-18  Richard Henderson  <rth@redhat.com>
11781
11782         * function.c: Revert patch for c/6358.
11783
11784 2002-04-18  Richard Henderson  <rth@redhat.com>
11785
11786         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
11787         blocks.  Handle multiple references to the TRAP block.  Handle
11788         non-adjacent THEN and OTHER blocks.
11789
11790 2002-04-18  Richard Henderson  <rth@redhat.com>
11791
11792         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
11793         crash with no type for by-mode libcalls.
11794
11795         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
11796
11797 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
11798
11799         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
11800         __xtensa_nonlocal_goto): Use a syscall instructions to flush
11801         the register windows.
11802
11803 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
11804
11805         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
11806         appropriate.  Document need for extended precision even when
11807         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
11808         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
11809         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
11810         instead of relying on later syntax error when REAL_WIDTH > 5.
11811         * real.c: Define NE based only on whether or not we have a
11812         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
11813         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
11814         define GET_REAL and PUT_REAL as simple memcpy operations; no
11815         need to byteswap or round.
11816         Use #error instead of #ifdef-ing out the entire file, for
11817         prompt error detection.
11818
11819         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
11820
11821 2002-04-18  David S. Miller  <davem@redhat.com>
11822
11823         * config/sparc/sparc.h (BRANCH_COST): Define.
11824
11825         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
11826         does it.
11827
11828 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
11829
11830         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
11831         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
11832         propagate_block calls after relaxation loop using new variable
11833         stabilized_prop_flags.
11834
11835 2002-04-18  Richard Henderson  <rth@redhat.com>
11836
11837         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
11838         (ia64_va_arg): Expect variable sized types by reference.
11839         * config/ia64/ia64-protos.h: Update.
11840         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
11841         ia64_function_arg_pass_by_reference.
11842
11843 2002-04-18  Richard Henderson  <rth@redhat.com>
11844
11845         * ifcvt.c: Include except.h.
11846         (block_has_only_trap): Break out from find_cond_trap.
11847         (find_cond_trap): Use it.  Always delete the trap block.
11848         (merge_if_block): Allow then block null.  Be less simplistic about
11849         what insns can end a block.
11850         * Makefile.in (ifcvt.o): Depend on except.h.
11851
11852         * config/ia64/ia64.md (trap, conditional_trap): New.
11853
11854 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11855
11856         PR c/6358
11857         * function.c (assign_parms): Assign hard current_function_return_rtx
11858         register here...
11859         (expand_function_end): ...not here.
11860
11861 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
11862
11863         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
11864         * c-tree.h (c_incomplete_type_error): New.
11865         * c-typeck.c (require_complete_type, build_component_ref): Update.
11866         (incomplete_type_error): Rename.
11867         * langhooks-def.h (lhd_incomplete_type_error): New.
11868         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
11869         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
11870         * langhooks.c (lhd_incomplete_type_error): New.
11871         * langhooks.h (struct lang_hooks_for_types): New hook.
11872         * tree.c (size_in_bytes): Use new hook.
11873         * tree.h (incomplete_type_error): Remove.
11874 objc:
11875         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
11876
11877 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
11878
11879         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
11880         TARGET_FLOAT_FORMAT blocks.
11881
11882 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11883
11884         * doc/install.texi (Downloading the source): Do not mention Chill
11885         any longer, but mention Ada.
11886         (Configuration): Do not mention Chill any longer.
11887
11888 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
11889
11890         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
11891
11892 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
11893
11894         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
11895         in last patch.
11896
11897 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11898
11899         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
11900         instead of unsigned_type.
11901
11902 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
11903
11904         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
11905         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
11906         later.
11907
11908 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
11909
11910         * attribs.c (vector_type_node_list): New static variable.
11911         (handle_vector_size_attribute): Use it to avoid generating a
11912         new type node each time we are called.
11913
11914         * combine.c (subst): Avoid trying to make a vector mode subreg of
11915         an integer constant.
11916         (gen_lowpart_for_combine): Likewise.
11917
11918 2002-04-18  Roger Sayle  <roger@eyesopen.com>
11919             Jakub Jelinek  <jakub@redhat.com>
11920
11921         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
11922         for integer constant c (if x has unsigned type or sign bit is not
11923         set in c).  This folds the zero/sign extension into the bit-wise and
11924         operation.
11925
11926 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
11927
11928         PR middle-end/6205
11929         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
11930         otherwise xorps.
11931
11932 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
11933
11934         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
11935
11936 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
11937
11938         * gcc.c (read_specs): Detect and fail if an attempt is made to
11939         rename a spec string to an already existing string.
11940
11941 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
11942
11943         * config/s390/s390.c (legitimize_pic_address): Do not generate
11944         illegal address constant without CONST.
11945
11946 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11947
11948         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
11949         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11950
11951 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
11952
11953         PR optimization/6305
11954         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
11955         to make sure previous reloads are taken into account.  Generate
11956         better code if one operand is an in-range immediate constant.
11957
11958 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
11959
11960         * doc/install.texi (Building): libgcj requires GNU make.
11961
11962 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
11963
11964         PR bootstrap/6315
11965         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
11966         even if hard quad and register is not floating.
11967         (movtf reg<-mem split): Disallow splitting if hard quad and
11968         register is floating.
11969         (movtf mem<-reg split): Likewise.
11970         * config/sparc/sparc.c (fp_register_operand): New predicate.
11971         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
11972
11973 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
11974
11975         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
11976         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
11977         (unprotoize.o): Ditto.  Build from protoize.c.  Define
11978         UNPROTOIZE on command line.
11979         * protoize.c: Include cppdefault.h.  Delete include_defaults.
11980         (in_system_include_dir): Use cpp_include_defaults (defined in
11981         cppdefault.o).
11982         * unprotoize.c: Delete file.
11983
11984 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
11985
11986         * config/rs6000/altivec.h (vec_ld): Add array variants.
11987         (vec_lde): Same.
11988         (vec_ldl): Same.
11989
11990 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
11991             Aldy Hernandez <aldyh@redhat.com>
11992
11993         * config/rs6000/altivec.h: Define __ALTIVEC__.
11994         (bool): New.
11995         (__pixel): New.
11996         (pixel): New.
11997         (vec_cfux): New.
11998         (vec_vmaddfp): New.
11999         (vec_vsldoi): New.
12000         Add parentheses to all macro arguments.
12001
12002 2002-04-16  Richard Henderson  <rth@redhat.com>
12003
12004         PR c++/6320
12005         * except.c (remove_eh_handler): Insert inner regions at beginning
12006         of sibling chain.  Refactor expressions.
12007
12008 2002-04-16  Richard Henderson  <rth@redhat.com>
12009
12010         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
12011         * config/sparc/sol2-gas-bi.h: New file.
12012         * config.gcc (sparc*-solaris): Add it as needed.
12013         * configure.in (AS_SPARC64_FLAG): Remove check.
12014         * config.in, configure: Regenerate.
12015
12016         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
12017
12018 2002-04-16  Richard Henderson  <rth@redhat.com>
12019
12020         * config/mips/mips.c (override_options): Don't override N32 for
12021         a 64-bit ISA.
12022
12023         PR 6202
12024         * config/mips/mips.md (can_delay): Split out of existing define_delays.
12025         (HILO_delay): Set can_delay false.
12026
12027 2002-04-16  Dale Johannesen <dalej@apple.com>
12028
12029         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
12030         instruction addresses.
12031         (rs6000_output_function_epilogue): Likewise.
12032
12033 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
12034
12035         * c-parse.in (poplevel, compstmt_start,
12036         compstmt_primary_start): Add ending ';', in accordance
12037         with POSIX.
12038
12039 2002-04-16  Richard Henderson  <rth@redhat.com>
12040
12041         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
12042         Adjust tm_file order to get TARGET_DEFAULT set properly.
12043         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
12044         * doc/install.texi (sparc-solaris): Update.
12045
12046 2002-04-16  Dale Johannesen <dalej@apple.com>
12047
12048         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
12049         comparison operands do not match each other or if modes of
12050         conditions do not match result.
12051
12052 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
12053
12054         PR target/6305
12055         * config/s390/s390.md (mulsidi3): Set both subregs of the
12056         multiword register.
12057
12058 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
12059
12060         * config/rs6000/altivec.h (vec_addc): Type check.
12061
12062 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12063
12064         PR middle-end/6279
12065         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
12066
12067         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
12068
12069 2002-04-15  Richard Henderson  <rth@redhat.com>
12070
12071         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
12072         call_really_used_regs too.
12073
12074 2002-04-15  Richard Henderson  <rth@redhat.com>
12075
12076         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
12077
12078 2002-04-15  David S. Miller  <davem@redhat.com>
12079
12080         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
12081         as being CLOBBERed.
12082
12083 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12084
12085         PR c/6290
12086         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
12087         CONST_VECTOR is { 0, ... 0 }.
12088
12089 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
12090
12091         * doc/install.texi (Installing GCC: Configuration): Clarify
12092         the only supported ways to configure gcc.
12093
12094 2002-04-15  Roland McGrath  <roland@frob.com>
12095
12096         * config.gcc (alpha*-*-gnu*): New target configuration.
12097         * config/alpha/gnu.h: New file for it.
12098         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
12099
12100 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
12101
12102         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
12103         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
12104         * tree.h (expand_start_stmt_expr): Update prototype.
12105         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
12106         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
12107         on the STMT_EXPR created for the inline function.
12108
12109 2002-04-15  Richard Henderson  <rth@redhat.com>
12110
12111         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
12112         config/i386/linux-aout.h, config/i386/linux-oldld.h,
12113         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
12114         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
12115         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
12116         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
12117         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
12118         Define __gnu_linux__, not gnu_linux.
12119         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
12120
12121 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
12122
12123         Remove Chill front end.
12124         * gcc.c (default_compilers): Remove Chill entries.
12125         * ch: Remove directory.
12126         * doc/frontends.texi: Remove information about Chill.
12127         * doc/sourcebuild.texi: Likewise.
12128         * doc/standards.texi: Likewise.
12129
12130 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
12131
12132         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
12133         (LONGLONG_STANDALONE): Define.
12134
12135 2002-04-15  David S. Miller  <davem@redhat.com>
12136
12137         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
12138         Call emit_library_call with LCT_NORMAL.
12139         (sparc_initialize_trampoline): Use LCT_foo instead of
12140         magic constant in emit_library_call invocations.
12141         (sparc64_initialize_trampoline): Likewise.
12142         (sparc_profile_hook): Likewise.
12143         * config/sparc/sparc.md: Likewise.
12144
12145         * config/sparc/sparc.c (sparc_extra_constraint_check):
12146         Fix type of argument 'c'.
12147         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
12148         Likewise.
12149
12150 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
12151
12152         * diagnostic.h (output_buffer_state): Redefine.
12153         (output_format_decoder): New macro.
12154         (output_prefixing_rule): Likewise.
12155         (output_line_cutoff): Likewise.
12156         (diagnostic_format_decoder): Adjust.
12157         (diagnostic_prefixing_rule): Likewise.
12158         (diagnostic_line_cutoff): Likewise.
12159         (diagnostic_state): Likewise.
12160         (diagnostic_kind_count): Likewise.
12161         (diagnostic_buffer): Now a macro.
12162
12163         * diagnostic.c (diagnostic_buffer): Remove definition.
12164         (output_is_line_wrapping): Adjust.
12165         (set_real_maximum_length): Likewise.
12166         (output_set_maximum_length): Likewise.
12167         (init_output_buffer): Likewise.
12168         (lhd_print_error_function): Likewise.
12169         (output_do_verbatim): Likewise.
12170
12171 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12172
12173         * cpperror.c (print_location): Don't print include chain
12174         if line == 0.
12175         (cpp_begin_message): Update to use DL_ macros.
12176         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
12177         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
12178         cpp_notice, cpp_notice_from_errno): Remove.
12179         (cpp_error, cpp_error_with_line): Update to take a diagnostic
12180         level.
12181         (cpp_errno): New.
12182         * cppexp.c (CPP_ICE): Remove.
12183         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
12184         lex, integer_overflow, _cpp_parse_expr): Update.
12185         * cppfiles.c (read_include_file, find_include_file,
12186         handle_missing_header, _cpp_read_file, remap_filename): Update.
12187         * cpphash.h (enum error_type): Remove.
12188         (_cpp_begin_message): Update.
12189         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
12190         cpp_handle_option, cpp_post_options): Update.
12191         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
12192         skip_whitespace, parse_identifier, parse_slow, parse_string,
12193         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
12194         cpp_interpret_charconst): Update.
12195         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
12196         lex_macro_node, do_undef, glue_header_name, parse_include,
12197         do_include_common, read_flag, do_line, do_linemarker, do_ident,
12198         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
12199         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
12200         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
12201         _cpp_pop_buffer, do_diagnostic): Update.
12202         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
12203         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
12204         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
12205         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
12206         cpp_notice, cpp_notice_from_errno): Remove.
12207         (cpp_error, cpp_error_with_line): Update to take a diagnostic
12208         level.
12209         (cpp_errno): New.
12210         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
12211         collect_args, enter_macro_context, save_parameter, parse_params,
12212         _cpp_create_definition, check_trad_stringification,
12213         cpp_macro_definition): Update.
12214         * cppmain.c (cpp_preprocess_file): Update.
12215         * fix-header.c (read_scan_file): Update.
12216
12217 2002-04-14  Andreas Schwab  <schwab@suse.de>
12218
12219         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
12220
12221 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
12222
12223         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
12224
12225 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
12226
12227         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
12228         not gnu_hurd.
12229
12230 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
12231
12232         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
12233
12234 2002-04-13      Joel Sherrill <joel@OARcorp.com>
12235
12236         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
12237         sparc-elf and sparc-rtems targets.
12238
12239 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
12240
12241         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
12242         defined, and __gnu_hurd__ wherever __GNU__ is defined.
12243         * arm/linux-elf.h: Likewise.
12244         * cris/aout.h: Likewise.
12245         * cris/linux.h: Likewise.
12246         * i370/linux.h: Likewise.
12247         * i386/gnu.h: Likewise.
12248         * i386/linux-aout.h: Likewise.
12249         * i386/linux-oldld.h: Likewise.
12250         * i386/linux.h: Likewise.
12251         * i386/linux64.h: Likewise.
12252         * ia64/linux.h: Likewise.
12253         * m68k/linux-aout.h: Likewise.
12254         * m68k/linux.h: Likewise.
12255         * mips/linux.h: Likewise.
12256         * pa/pa-linux.h: Likewise.
12257         * pj/linux.h: Likewise.
12258         * rs6000/sysv4.h: Likewise.
12259         * s390/linux.h: Likewise.
12260         * sh/linux.h: Likewise.
12261         * sparc/linux-aout.h: Likewise.
12262         * sparc/linux.h: Likewise.
12263         * sparc/linux64.h: Likewise.
12264         * xtensa/linux.h: Likewise.
12265
12266 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
12267
12268         * stmt.c (check_unique_operand_names): Expect operand names to
12269         be strings rather than identifiers.  Use simple_cst_equal to
12270         compare them.
12271         (resolve_operand_name_1): Make same identifier to string change here.
12272         * c-parse.in (asm_operand): Convert a named operand into a string.
12273         * cp/parse.y (asm_operand): Likewise.
12274
12275 2002-04-13  Andreas Schwab  <schwab@suse.de>
12276
12277         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
12278
12279 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
12280
12281         Revert these changes:
12282
12283         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
12284
12285         PR c++/5571
12286         * stor-layout.c (layout_decl): Reset the RTL for the decl.
12287
12288 2002-04-12  Richard Henderson  <rth@redhat.com>
12289
12290         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
12291         (sparc*-*-solaris): Clean up header files.
12292         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
12293         and plan on generating 64-bit code.
12294         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
12295         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
12296         * config/sparc/sol2-sld-64.h: Rename ...
12297         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
12298         for AS_SPARC64_FLAG not defined.
12299         * config/sparc/sol2-gld-bi.h: New.
12300         * config/sparc/sol2-sld.h: Remove.
12301         * config/sparc/sol26-sld.h: New.
12302         * config/sparc/sol2.h: Tidy comments.
12303         * doc/install.texi: Document sparc-solaris configury changes.
12304
12305 2002-04-12  Richard Henderson  <rth@redhat.com>
12306
12307         * recog.c (offsettable_address_p): Match the logic in adjust_address.
12308
12309         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
12310         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
12311
12312 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12313
12314         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
12315
12316 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
12317
12318         * pa.c (pa_can_combine_p): Call extract_insn before calling
12319         constrain_operands.
12320
12321 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
12322
12323         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
12324         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
12325         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
12326         (CPP_PREDEFINES): Handle __declspec.
12327         * config/i386/t-interix (USER_H): Remove.
12328
12329 2002-04-12  DJ Delorie  <dj@redhat.com>
12330
12331         * integrate.c (compare_blocks): Make comparisons safe for when
12332         sizeof(int) < sizeof(char *).
12333         (find_block): Likewise.
12334
12335 2002-04-12  Jan Hubicka  <jh@suse.cz>
12336             David Edelsohn  <edelsohn@gnu.org>
12337
12338         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
12339         registers.
12340         (symbol_ref_operand): New.
12341         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
12342         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
12343
12344 2002-04-12  Andreas Schwab  <schwab@suse.de>
12345
12346         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
12347         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
12348         overrides the definition in config/svr4.h.
12349
12350 2002-04-12      Eric Norum <eric.norum@usask.ca>
12351
12352         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
12353         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
12354         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
12355         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
12356         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
12357         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
12358         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
12359         definitions to config/rtems.h and make the targets more similar.
12360
12361 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12362
12363         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
12364         POINTERS_EXTEND_UNSIGNED.
12365         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
12366         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
12367
12368         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
12369         not specified.
12370
12371 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
12372
12373         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
12374         depends on TARGET_SHMEDIA, not TARGET_SH5.
12375
12376 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
12377
12378         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
12379         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
12380
12381 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
12382
12383         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
12384         no r0 clobber.
12385
12386 2002-04-12  Andreas Schwab  <schwab@suse.de>
12387
12388         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
12389
12390 2002-04-12  Richard Henderson  <rth@redhat.com>
12391
12392         PR bootstrap/4191
12393         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
12394
12395         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
12396         modes spanning multiple hard regs.
12397
12398         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
12399
12400 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12401
12402         * pa.c (pa_output_function_prologue): Don't accumulate the total
12403         number of code bytes when using TARGET_64BIT, or gas, SOM and not
12404         the portable runtime.
12405         (output_deferred_plabels): Handle 64bit plabels.
12406         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
12407         generating pic code using the GAS assembler for object formats that
12408         are not SOM (ie., ELF32 and ELF64).
12409         (output_millicode_call): Check attribute type if attribute length is 28.
12410         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
12411         dbr_sequence_length once.
12412         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
12413         dbr_sequence_length once.
12414         * pa.h (TARGET_SOM): Define if not defined.
12415         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
12416         with GAS and not SOM.
12417         (jump, call_internal_reg, call_value_internal_reg): Likewise.
12418         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
12419
12420 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12421
12422         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
12423         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
12424         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
12425         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
12426         elfos.h and dbxelf.h values are fine now.
12427         * config/i386/freebsd.h, config/alpha/freebsd.h
12428         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
12429
12430 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12431
12432         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
12433         or set Acpu or Amachine.  Reformat.
12434         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12435         define.
12436         (LINK_SPEC): Do not need to undef.
12437         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
12438         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
12439         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12440         define.
12441         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
12442         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
12443         (LINK_SPEC): Do not need to undef.
12444         (DONT_USE_BUILTIN_SETJMP): Do not define.
12445         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
12446         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
12447         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
12448         Remove trailing spaces.
12449         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
12450         __ELF__, or set Acpu or Amachine.  Reformat.
12451         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
12452         define.
12453
12454 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12455
12456         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
12457         all other *-*-freebsd* targets.
12458
12459 2002-04-11  Richard Henderson  <rth@redhat.com>
12460
12461         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
12462
12463 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
12464
12465         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
12466         Include {cpu}/{cpu}.h thru tm_file.
12467         (alpha*-*-linux*ecoff): Remove target.
12468         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
12469         (LINK_SPEC): Remove, is not OS independent.
12470         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
12471         (LINK_SPEC): Do not need to #undef any longer.
12472         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
12473         any longer.
12474         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
12475         __ELF__.
12476         (LINK_SPEC): Moved here from alpha/elf.h.
12477         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
12478         SUB_CPP_PREDEFINES.
12479         * config/alpha/linux-ecoff.h: Remove.
12480         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
12481         (CPP_SPEC): Define _POSIX_SOURCE as needed.
12482         (CPP_SUBTARGET_SPEC): Do not define.
12483         (LINK_SPEC): Do not need to #undef any longer.
12484         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
12485         * config/alpha/vms.h: Likewise.
12486
12487 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
12488
12489         * doc/extend.texi: Remove old claim that typedefs cannot have
12490         an alignment attribute.
12491
12492 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
12493
12494         PR optimization/6177
12495         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
12496         bitpos is 0 and bitsize CONCAT size.
12497
12498 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
12499
12500         PR c/6223
12501         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
12502
12503 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
12504
12505         * config/alpha/freebsd.h: Minor reformatting.
12506         (CPP_SPEC): Define ELF and add cpp_subtarget.
12507         (ASM_SPEC): No longer needed.
12508
12509 2002-04-11  Richard Henderson  <rth@redhat.com>
12510
12511         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
12512         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
12513         (dimode mem/zero splitter): New.
12514
12515 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
12516
12517         * config/cris/cris.c (cris_override_options): Tweak error message
12518         for PIC not implemented.
12519
12520         * config/cris/cris.h: Tweak comments related to parameter-passing.
12521
12522         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
12523
12524 2002-04-10  Richard Henderson  <rth@redhat.com>
12525
12526         * except.c (add_ehl_entry): Allow duplicates after landing pad
12527         creation.
12528
12529 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
12530
12531         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
12532
12533 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
12534
12535         * c-decl.c (c_init_decl_processing): Move generation of
12536         decls for g77_integer_type_node and friends from here ...
12537         * c-common.c (c_common_nodes_and_builtins): ... to here.
12538
12539 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
12540
12541         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
12542         is only used as frame pointer when frame_pointer_needed is true.
12543
12544 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
12545
12546         PR target/817
12547         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
12548         for the fact that the pool entry uses two words.
12549         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
12550         1k bytes.
12551         (movdf_soft_insn): Similarly.
12552         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
12553         for the fact that the pool entry uses three words.
12554
12555 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
12556
12557         * config/mips/mips.c (mips_va_arg): When using the struct version
12558         of the EABI va_list, allow arguments in the register save area to
12559         take up less room than a stack argument.
12560
12561 2002-04-10  Richard Henderson  <rth@redhat.com>
12562
12563         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
12564         if EXPAND_INITIALIZER.
12565
12566 2002-04-09  Richard Henderson  <rth@redhat.com>
12567
12568         * config/alpha/alpha.md (movdi_er_maybe_g): New.
12569         * config/alpha/alpha.c (alpha_expand_mov): Use it.
12570
12571 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
12572
12573         PR optimization/6233
12574         * rtlanal.c (pure_call_p): New function.
12575         * rtl.h (pure_call_p): Declare.
12576         * loop.c (prescan_loop): Use it to set has_nonconst_call.
12577         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
12578
12579 2002-04-09  Eric Christopher  <echristo@redhat.com>
12580
12581         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
12582         information to .comm directive.
12583
12584 2002-04-09  Richard Henderson  <rth@redhat.com>
12585
12586         PR c/5078
12587         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
12588
12589 2002-04-09  Richard Henderson  <rth@redhat.com>
12590
12591         * basic-block.h (flow_delete_block_noexpunge): Declare.
12592         (expunge_block_nocompact): Declare.
12593         * cfg.c (expunge_block_nocompact): Split out from ...
12594         (expunge_block): ... here.
12595         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
12596         (flow_delete_block_noexpunge): Split out from ...
12597         (flow_delete_block): ... here.
12598         * cfgcleanup.c (delete_unreachable_blocks): Compact while
12599         removing dead blocks.
12600         * except.c (exception_handler_labels): Remove.
12601         (exception_handler_label_map): New.
12602         (struct eh_region): Add aka member.
12603         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
12604         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
12605         (for_each_eh_label, for_each_eh_label_1): New.
12606         (init_eh): Register exception_handler_label_map.
12607         (free_eh_status): Use free_region.
12608         (find_exception_handler_labels): Use the map, not the list.
12609         (remove_exception_handler_label): Likewise.
12610         (maybe_remove_eh_handler): Likewise.
12611         (remove_eh_handler): Use the region aka bitmap.
12612         * except.h (exception_handler_labels): Remove.
12613         (for_each_eh_label): Declare.
12614         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
12615         * loop.c (invalidate_loops_containing_label): New.
12616         (find_and_verify_loops): Use it.  Use for_each_eh_label.
12617         * sched-rgn.c (is_cfg_nonregular): Use
12618         current_function_has_exception_handlers.
12619
12620 2002-04-09  Richard Henderson  <rth@redhat.com>
12621
12622         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
12623         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
12624         Do not return changed status.
12625         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
12626         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
12627         New functions that do return changed status.
12628         * sbitmap.h: Update decls.
12629         * gcse.c, lcm.c: Use _cg functions as needed.
12630
12631 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
12632
12633         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
12634         (sh64-*-elf*, sh-*-rtemself*): Likewise.
12635         * config/sh/embed_bb.c: New file.
12636         * config/sh/embed-elf.h: New file.
12637         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
12638         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
12639         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
12640         __PTRDIFF_TYPE__ .
12641         (SUBTARGET_CPP_PTR_SPEC): Don't define.
12642         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
12643         Add subtarget_asm_endian_spec.
12644         (ASM_SPEC): Use subtarget_asm_endian_spec.
12645         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
12646         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
12647         (WCHAR_UNSIGNED): Define.
12648         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
12649         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
12650         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
12651         Fix value.
12652         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
12653         (sh_adjust_cost): Likewise.
12654         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
12655         __PTRDIFF_TYPE__ .
12656         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
12657         (WCHAR_TYPE_SIZE): Likewise.
12658         (ASM_SPEC): Use subtarget_asm_endian_spec.
12659         (SH_ELF_WCHAR_TYPE): #undef/ #define.
12660         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
12661         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
12662         (MAX_WCHAR_TYPE_SIZE): Don't #define .
12663         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
12664         (USER_LABEL_PREFIX): Don't #undef /#define .
12665         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
12666         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
12667         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
12668         (ASM_SPEC): Likewise.
12669         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
12670         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
12671         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
12672         (LIB2FUNCS_EXTRA): Define.
12673         * t-sh64 (LIB2FUNCS_EXTRA): Define.
12674         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
12675         (LIB1ASMFUNCS_CACHE): Define.
12676         (LIB2FUNCS_EXTRA): Redefine empty.
12677
12678 2002-04-08  Richard Henderson  <rth@redhat.com>
12679
12680         * reorg.c (get_branch_condition): Use reversed_comparison_code.
12681
12682 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12683
12684         * config/m68hc11/larith.asm (__map_data_section): Fix condition
12685         and optimize for size.
12686         (__do_global_ctors): Fix pointer comparison.
12687         (__do_global_dtors): Likewise.
12688
12689 2002-04-09  David S. Miller  <davem@redhat.com>
12690
12691         * config/sparc/sparc.c (sparc_extra_constraint_check): New
12692         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
12693         allow reloading pseudos.
12694         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
12695         * config/sparc/sparc-protos.h: Declare it.
12696
12697         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
12698         unsigned comparison warning.
12699         (output_restore_regs): Mark leaf_function as unused.
12700
12701 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12702
12703         * expr.c (is_aligning_offset): New function.
12704         (expand_expr, case COMPONENT_EXPR): Call it.
12705
12706 2002-04-08  David S. Miller  <davem@redhat.com>
12707
12708         PR target/6082
12709         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
12710
12711         Make init_priority work on Sparc when using GNU ld.
12712         * config/sparc/linux.h, config/sparc/linux64.h,
12713         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
12714         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
12715         * config/sparc/sol2-gld.h: New file to do the same.
12716         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
12717         sparc/sol2-gld.h to tm_file.
12718
12719         PR optimization/4328
12720         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
12721         * doc/md.texi: Document it.
12722         * config/sparc/sparc.md (movdi_insn_sp64_novis,
12723         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
12724         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
12725         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
12726         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
12727
12728 2002-04-08  Andreas Jaeger  <aj@suse.de>
12729
12730         * stmt.c (expand_asm_operands): Revert last patch from Richard
12731         Henderson.
12732
12733 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12734
12735         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
12736         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
12737
12738 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12739
12740         * doc/contrib.texi (Contributors): Add David O'Brien.
12741
12742 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
12743
12744         * configure.in (auto-build.h): Use target_alias and build_alias
12745         when running configure.
12746         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
12747         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
12748         * configure: Regenerate.
12749
12750 2002-04-07  David S. Miller  <davem@redhat.com>
12751
12752         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
12753
12754 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12755
12756         PR 5933
12757         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
12758         generating 32-bit pic code.
12759
12760 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
12761
12762         * cppinit.c (cpp_create_reader): Initialize
12763         discard_comments_in_macro_exp.
12764         (COMMAND_LINE_OPTIONS): Add "-CC" option.
12765         (cpp_handle_option): Handle "-CC" option.
12766         * cpplex.c (save_comment): If saving a C++ comment in
12767         a directive, convert it to a C comment.
12768         (_cpp_lex_direct): Pass second comment start character to
12769         save_comment to indicate comment type.
12770         * cpplib.c (_cpp_handle_directive): If processing
12771         a "#define" directive and discard_comments_in_macro_exp
12772         is false,  re-enable saving of comments.
12773         (lex_macro_node): If discard_comments_in_macro_exp is false,
12774         discard any comments before the macro identifier.
12775         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
12776         member.
12777         * cppmacro.c (cpp_get_token): If expanding a macro while
12778         processing a directive, discard any comments we might encounter.
12779         (parse_params): If discard_comments_in_macro_exp is false,
12780         ignore comments in the macro parameter list.
12781         * gcc.c (cpp_unique_options): Add "-CC" option.
12782         (option_map): Map "--comments-in-macros" to "-CC".
12783         * doc/cppopts.texi: Document "-CC" option.
12784         * f/lang-specs.h: Add "-CC" option.
12785         * testsuite/gcc.dg/cpp/maccom1.c: New test.
12786         * testsuite/gcc.dg/cpp/maccom2.c: New test.
12787         * testsuite/gcc.dg/cpp/maccom3.c: New test.
12788         * testsuite/gcc.dg/cpp/maccom4.c: New test.
12789         * testsuite/gcc.dg/cpp/maccom5.c: New test.
12790         * testsuite/gcc.dg/cpp/maccom6.c: New test.
12791
12792 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12793
12794         PR middle-end/6180
12795         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
12796
12797 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
12798
12799         PR c++/5571
12800         * stor-layout.c (layout_decl): Reset the RTL for the decl.
12801
12802         PR opt/5120
12803         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
12804         RTX_UNCHANGING_P for the functions arguments when a tail call
12805         is made.
12806
12807 2002-04-06  Jason Merrill  <jason@redhat.com>
12808
12809         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
12810         (parse_options_and_default_flags): Set them appropriately.
12811         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
12812
12813 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
12814
12815         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
12816         here.
12817
12818         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
12819         semicolon.
12820
12821         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
12822         types come in by-reference.  Fix typo in comment.
12823
12824 2002-04-05  David S. Miller  <davem@redhat.com>
12825
12826         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
12827         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
12828         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
12829         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
12830
12831 2002-04-05  David S. Miller  <davem@redhat.com>
12832
12833         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
12834         are not going to emit return instructions, emit at least a nop
12835         for the sake of sane backtraces.
12836
12837 2002-04-05  Richard Henderson  <rth@redhat.com>
12838
12839         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
12840
12841 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
12842
12843         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
12844
12845 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
12846
12847         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
12848         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
12849         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
12850
12851 2002-04-05  Andreas Schwab  <schwab@suse.de>
12852
12853         * c-convert.c: Include c-common.h.
12854         * Makefile.in (c-convert.o): Updated.
12855
12856 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
12857
12858         * mklibgcc.in: Use separate libgcc.map for each multilib.
12859         * Makefile.in (distclean): Don't remove libgcc.map here.
12860
12861 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
12862
12863         * Makefile.in (s-mlib): Handle --disable-multilib by separate
12864         genmultilib invocation.
12865
12866 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
12867
12868         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
12869         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
12870         to num_gprs for symmetry.
12871         * config/mips/mips.c: Adjust accordingly.
12872
12873 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
12874
12875         * c-common.c (truthvalue_conversion): Rename, update.
12876         * c-common.h (c_common_truthvalue_conversion): New.
12877         * c-convert.c (convert): Update.
12878         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
12879         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
12880         * c-typeck.c (build_binary_op, build_unary_op,
12881         build_conditional_expr): Update.
12882         * fold-const.c (constant_boolean_node, fold): Use langhook.
12883         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
12884         * langhooks.h (struct lang_hooks): New hook.
12885         * stmt.c (expand_decl_cleanup): Use langhook.
12886         * tree.h (truthvalue_conversion): Remove.
12887 objc:
12888         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
12889
12890 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
12891
12892         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
12893         Add rules to make null object file.
12894
12895 2002-04-04  Jim Blandy  <jimb@redhat.com>
12896
12897         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
12898         macro formal parameter names.
12899
12900 2002-04-04  David S. Miller  <davem@redhat.com>
12901
12902         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
12903
12904 2002-04-04  Richard Henderson  <rth@redhat.com>
12905
12906         PR middle-end/5099
12907         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
12908         Support copies into and out of memory.  Don't accept allows_reg
12909         and allows_mem as gospel.
12910
12911 2002-04-04  Richard Henderson  <rth@redhat.com>
12912
12913         PR opt/6165
12914         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
12915         (write_dependence_p): Likewise.
12916
12917 2002-04-04  Richard Henderson  <rth@redhat.com>
12918
12919         * predict.c (estimate_bb_frequencies): Do frequency calculation
12920         with a volatile temporary.
12921
12922 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
12923
12924         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
12925
12926 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12927
12928         PR c++/6119
12929         * final.c (final_start_function): Don't bump profile_label_no here...
12930         (final_end_function): ...but here.
12931
12932 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12933
12934         * config/sparc/sparc.md (pic): New attribute.
12935         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
12936         into stack slots.
12937         (split after do_builtin_setjmp_setup): New.
12938
12939 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12940
12941         PR fortran/6106
12942         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
12943         change.
12944
12945 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
12946
12947         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
12948         UNITS_PER_WORD for zero sized aggregates.
12949
12950 2002-04-03  David S. Miller  <davem@redhat.com>
12951
12952         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
12953         one-character spec for this, just use %(link_gcc_c_sequence).
12954
12955 2002-04-03  David S. Miller  <davem@redhat.com>
12956
12957         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
12958         handling.
12959
12960 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12961
12962         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
12963         (DWARF_FRAME_RETURN_COLUMN): Move.
12964         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12965         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
12966         * pa.c (except.h, predict.h): Include.
12967         (FRP): Delete.
12968         (store_reg_modify, set_reg_plus_d): Revise prototypes.
12969         (output_ascii): Add cast.
12970         (store_reg_modify): Revise to add frame notes.
12971         (set_reg_plus_d): Likewise.
12972         (compute_frame_size): Include space for eh data registers in frame if
12973         the current function calls eh_return.
12974         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
12975         function calls eh_return.  Save eh data registers if the current
12976         function calls eh_return.  Fix code to add frame notes.  Emit
12977         blockage to prevent insns with frame notes being scheduled in the
12978         delay slot of calls.
12979         (hppa_expand_epilogue): Restore eh data registers and do final stack
12980         adjustment if the current function calls eh_return.  Don't add frame
12981         notes.
12982         (output_call): Revise for change in length of call insn.  Don't do
12983         return pointer adjustment for an unconditional jump in the delay slot
12984         of a call when using frame notes.
12985         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
12986         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
12987         (ARG_POINTER_CFA_OFFSET): Define.
12988         * pa.md (return_external_pic): New pattern.
12989         (prologue): Correct formatting.  Use return_external_pic if current
12990         function calls eh_return.
12991         (call_internal_symref, call_value_internal_symref,
12992         sibcall_internal_symref, sibcall_value_internal_symref): Change default
12993         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
12994         respectively.
12995         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
12996
12997         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
12998         list of targets to check using "nop" insn.
12999         * configure: Rebuilt.
13000
13001 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
13002
13003         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
13004
13005 2002-04-03  David S. Miller  <davem@redhat.com>
13006
13007         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
13008         library sequence passed to the linker.
13009         (LINK_COMMAND_SPEC): Use it.
13010         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
13011         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
13012         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13013
13014 2002-04-03  Jason Merrill  <jason@redhat.com>
13015
13016         * except.c (struct eh_status): Remove protect_list.
13017         (begin_protect_partials, end_protect_partials): Remove.
13018         (add_partial_entry): Remove.
13019         * except.h: Remove prototypes.
13020
13021         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
13022         expand_decl_cleanup_eh.
13023
13024         PR c++/5636
13025         * tree.h (CLEANUP_EH_ONLY): New macro.
13026         * stmt.c (expand_decl_cleanup_eh): New fn.
13027         (expand_cleanups): Check CLEANUP_EH_ONLY.
13028         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
13029         Use expand_decl_cleanup_eh.
13030         (expand_stmt): Adjust.
13031         * c-common.h: Adjust prototype.
13032
13033 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
13034
13035         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
13036         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
13037         (cris_target_asm_function_epilogue): Ditto.
13038         (cris_initial_frame_pointer_offset): Ditto.
13039         (cris_simple_epilogue): Ditto.
13040         (cris_expand_builtin_va_arg): Variable-size types come in
13041         by-reference.
13042
13043 2002-04-03  David S. Miller  <davem@redhat.com>
13044
13045         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
13046         little-endian.
13047         (set_fast_math): Correct 'fsr' type.
13048
13049 2002-04-03  Richard Henderson  <rth@redhat.com>
13050
13051         PR opt/3569
13052         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
13053         * toplev.c (check_global_declarations): Use it.
13054         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
13055         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13056         (LANG_HOOKS_DECLS): Add it.
13057         * langhooks.c (lhd_warn_unused_global_decl): New.
13058         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13059         * c-objc-common.c (c_warn_unused_global_decl): New.
13060         * c-tree.h (c_warn_unused_global_decl): Declare.
13061         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13062
13063 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
13064
13065         * langhooks-def.h (lhd_set_decl_assembler_name,
13066         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
13067         (LANG_HOOKS_INITIALIZER): Update.
13068         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
13069         * langhooks.h (struct lang_hooks): New hook.
13070         * tree.c (set_decl_assembler_name): Move to langhooks.c.
13071         (lang_set_decl_assembler_name): Remove.
13072         (init_obstacks): Don't set hook.
13073         (decl_assembler_name): New function.
13074         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
13075         (decl_assembler_name): New.
13076         (lang_set_decl_assembler_name): Remove.
13077
13078 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13079
13080         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
13081         works properly with .hidden symbols.
13082         * configure: Rebuilt.
13083         * config.in: Rebuilt.
13084         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
13085         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
13086         properly with .hidden symbols.
13087
13088 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR middle-end/6102
13091         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
13092         USE argument.
13093
13094 2002-04-03  Richard Henderson  <rth@redhat.com>
13095
13096         PR opt/4120
13097         * sched-rgn.c (sets_likely_spilled): New.
13098         (sets_likely_spilled_1): New.
13099         (add_branch_dependences): Use it.
13100
13101 2002-04-02  Richard Henderson  <rth@redhat.com>
13102
13103         PR opt/4311
13104         * loop.h (LOOP_FIRST_PASS): New.
13105         * loop.c (strength_reduce): Mind it when deciding to unroll.
13106         * toplev.c (rest_of_compilation): Set it.
13107
13108 2002-04-02  David S. Miller  <davem@redhat.com>
13109
13110         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
13111         mems_ok_for_ldd_peep when the order of the loads being examined
13112         is reversed.
13113         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
13114         existing comment to increase comprehension of this situation.
13115
13116 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
13117
13118         * config/sh/sh.md: Don't use union real_extract.
13119
13120 2002-04-02  Richard Henderson  <rth@redhat.com>
13121
13122         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
13123
13124 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
13125
13126         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
13127         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
13128         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
13129         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
13130         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
13131         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
13132         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
13133         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
13134         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
13135         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
13136         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
13137         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
13138         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
13139         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
13140         Include as many configury headers via tm_file as possible.  This
13141         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
13142         * config/openbsd-oldgas.h: New file.
13143         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
13144         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
13145         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
13146         config/i386/i386-coff.h, config/i386/i386-interix.h,
13147         config/i386/iscdbx.h, config/i386/linux-aout.h,
13148         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
13149         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
13150         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
13151         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
13152         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
13153         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
13154         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
13155         config/i386/vxi386.h: Do not directly include configury headers.
13156         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
13157         Directly include configury headers that are no longer automatically
13158         included by the above headers.
13159         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
13160         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
13161         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
13162         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
13163         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
13164         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
13165         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
13166         (TARGET_VERSION): Define.
13167         * config/i386/beos-elf.h, config/i386/freebsd.h,
13168         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
13169         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
13170         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
13171         config/i386/sco5.h, config/i386/sysv4.h
13172         (TARGET_VERSION): Do not need to protect.
13173         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
13174         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
13175         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
13176         config/i386/i386-interix.h, config/i386/linux-aout.h,
13177         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
13178         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
13179         (YES_UNDERSCORES): Do not define - not needed.
13180         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
13181         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13182         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
13183         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
13184         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13185         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
13186         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
13187         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
13188
13189 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
13190             Richard Henderson  <rth@redhat.com>
13191
13192         PR c/5484
13193         * function.c (assign_temp): Accept either type or decl argument.
13194         Detect variables whose size is too large to fit into an integer.
13195         * stmt.c (expand_decl): Pass the decl, not the type.
13196
13197 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
13198
13199         * protoize.c: Match include directory usage with cppdefault.c.
13200
13201 2002-04-03  Jeffrey A Law  (law@redhat.com)
13202             Hans-Peter Nilsson  <hp@bitrange.com>
13203
13204         * combine.c (simplify_comparison): Avoid narrowing a comparison
13205         with a paradoxical subreg when doing so would drop signficant bits.
13206
13207 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
13208
13209         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
13210         if POINTERS_EXTEND_UNSIGNED is defined.
13211
13212 2002-04-02  Richard Henderson  <rth@redhat.com>
13213
13214         PR opt/3967
13215         * local-alloc.c (contains_replace_regs): LO_SUM may contain
13216         replace regs.
13217
13218 2002-04-02  Richard Henderson  <rth@redhat.com>
13219
13220         * doc/standards.texi: Document required freestanding libc entry points.
13221
13222 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
13223
13224         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
13225         associated splitter.  Remove MQ constraint.
13226         (ctrdi_internal4): Correct CCmode clobber.
13227
13228 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13229
13230         * milli64.S ($$dyncall): New function.
13231         * t-linux (LIB1ASMFUNCS): Revise module list.
13232         (LIB1ASMSRC): Use pa/milli64.S.
13233
13234 2002-04-02  Richard Henderson  <rth@redhat.com>
13235
13236         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
13237         rename solaris_sys_varargs_h.
13238
13239 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13240
13241         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
13242         the same mode as its component.
13243
13244 2002-04-02  Richard Henderson  <rth@redhat.com>
13245
13246         PR opt/190
13247         * final.c (this_is_asm_operands): Export.
13248         * output.h (this_is_asm_operands): Declare.
13249         * config/i386/i386.c (print_operand): Error odd asm operands.
13250
13251 2002-04-02  Richard Henderson  <rth@redhat.com>
13252
13253         PR opt/420
13254         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
13255
13256 2002-04-01  Richard Henderson  <rth@redhat.com>
13257
13258         PR target/1538
13259         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
13260         * fixinc/fixincl.x: Rebuild.
13261
13262 2002-04-01  Richard Henderson  <rth@redhat.com>
13263
13264         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
13265         (atomic_alloc, atomic_free): New.
13266         (SIZE, MASK_FOR, PTR_IN): New.
13267         (emergency_reg_state, emergency_reg_state_free): New.
13268         (emergency_labeled_state, emergency_labeled_state_free): New.
13269         (reg_state_alloced, labeled_state_alloced): New.
13270         (alloc_reg_state, free_reg_state): New.
13271         (alloc_label_state, free_label_state, free_label_states): New.
13272         (push, pop, dup_state_stack, free_state_stack): Use them.
13273         (desc_label_state): Likewise.
13274         (uw_frame_state_for): Free label states and state stack.
13275         (uw_update_reg_address): Eliminate warnings.
13276
13277 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
13278
13279         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
13280         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
13281
13282 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13283
13284         * c-decl.c (grokdeclarator): Update.
13285         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
13286         * c-tree.h (c_mark_addressable): New.
13287         * c-typeck.c (default_function_array_conversion, build_unary_op,
13288         build_array_ref, convert_for_assignment): Update.
13289         (mark_addressable): Rename.
13290         * calls.c (try_to_integrate, expand_call): Use langhook.
13291         * expr.c (expand_expr): Use langhook.
13292         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
13293         * langhooks.h (struct lang_hooks): New hook.
13294         * stmt.c (expand_asm_operands): Use langhook.
13295         * tree.h (mark_addressable): Remove.
13296 objc:
13297         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
13298
13299 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
13300
13301         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
13302         in previous change.
13303
13304 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
13305
13306         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
13307         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
13308
13309 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13310
13311         * c-common.c (unsigned_conversion_warning, convert_and_check,
13312         unsigned_type, signed_type, shorten_compare,
13313         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
13314         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
13315         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
13316         New.
13317         * c-decl.c (grokdeclarator): Update.
13318         * c-format.c (check_format_types): Update.
13319         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
13320         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
13321         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
13322         * convert.c (convert_to_integer): Use new hooks.
13323         * expmed.c (make_tree): Use new hooks.
13324         * expr.c (store_expr): Use new hooks.
13325         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
13326         all_ones_mask_p, unextend, fold): Use new hooks.
13327         * langhooks.h (struct lang_hooks_for_types): New hooks.
13328         * tree.h (signed_or_unsigned_type, signed_type,
13329         unsigned_type): Remove.
13330 objc:
13331         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
13332         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
13333
13334 2002-03-31  Richard Henderson  <rth@redhat.com>
13335
13336         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
13337         (desc_frgr_mem): Fix reference to f16-f31.
13338
13339 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13340
13341         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
13342         RTVEC_ELT): Const-ify.
13343         * varray.h (VARRAY_CHECK): Const-ify.
13344         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
13345         ggc_mark_rtvec, ggc_mark): Const-ify.
13346
13347 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
13348
13349         * diagnostic.c: Include langhooks-def.h.
13350         * Makefile.in (diagnostic.o): Update.
13351
13352 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
13353
13354         * c-common.c (c_unsafe_for_reeval): Rename.
13355         * c-common.h (c_unsafe_for_reeval): Rename.
13356         * c-decl.c (finish_incomplete_decl): Rename.
13357         (c_init_decl_processing): Don't set langhook.
13358         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
13359         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
13360         * c-objc-common.c (c_objc_common_init): Don't set langhook.
13361         * c-tree.h (finish_incomplete_decl): Rename.
13362         * langhooks-def.h (lhd_unsafe_for_reeval): New.
13363         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
13364         (LANG_HOOKS_INITIALIZER): Update.
13365         * langhooks.c (lhd_unsafe_For_reeval): New.
13366         * langhooks.h (struct langhooks): New hooks.
13367         * toplev.c (incomplete_decl_finalize_hook): Remove.
13368         (wrapup_global_declarations): Update.
13369         * tree.c (lang_unsafe_for_reeval): Remove.
13370         (unsafe_for_reeval): Update.
13371         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
13372         Remove.
13373 objc:
13374         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
13375         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
13376
13377 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
13378
13379         * diagnostic.c (print_error_function): Remove.
13380         (default_print_error_function): Rename.
13381         (report_error_function): Update.
13382         * diagnostic.h (print_error_function): Remove.
13383         (default_print_error_function): Remove.
13384         * langhooks-def.h (struct diagnostic_context): Predeclare.
13385         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
13386         (LANG_HOOKS_INITIALIZER): Update.
13387         * langhooks.h (struct diagnostic context): Predeclare.
13388         (struct lang_hooks): New hook.
13389
13390 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13391
13392         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
13393         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
13394         !flag_pic.
13395         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
13396         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
13397         of PIC_OFFSET_TABLE_REGNUM thruout.
13398         * config/rs6000/rs6000.md: Likewise.
13399         * config/rs6000/darwin.h: Likewise.
13400
13401 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13402
13403         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
13404         unsigned HOST_WIDE_INT, not unsigned int.
13405
13406 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13407
13408         PR middle-end/6096, middle-end/6098, middle-end/6099
13409         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
13410         CODE_LABELs.
13411         (fill_slots_from_thread): Likewise.
13412
13413 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13414
13415         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
13416         floating fields in float regs.
13417         (function_arg_record_value_2): Likewise.
13418
13419 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
13420
13421         * config/mmix/mmix.md (define_constants): Remove misleading
13422         FIXME.  Add MMIX_fp_rO_OFFSET.
13423         ("nonlocal_goto_receiver"): Don't have stack-frame address of
13424         saved rO as part of the pattern.  Remove FIXME.
13425         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
13426         here, at output-time.
13427
13428 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
13429
13430         PR middle-end/6100
13431         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
13432         REG_BR_PRED.
13433         (output_v9branch): Likewise.
13434
13435 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
13436
13437         * gcc.c: Revert previous patch for now.
13438         * config/i386/djgpp.h: Likewise.
13439
13440 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
13441
13442         * config/mmix/crti.asm (_init): Register _fini with atexit.
13443         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
13444
13445 2002-03-31  Richard Henderson  <rth@redhat.com>
13446
13447         PR target/3997
13448         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
13449         (ASM_OUTPUT_DEF_FROM_DECLS): New.
13450
13451 2002-03-31  Richard Henderson  <rth@redhat.com>
13452
13453         * libgcc2.c (__bb_exit_func): Make static.
13454
13455         * config/alpha/alpha.md (trap): New.
13456
13457 2002-03-31  Richard Henderson  <rth@redhat.com>
13458
13459         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
13460         promoted argument types; build trap.
13461         (expand_builtin_trap): New.
13462         (expand_builtin): Use it.
13463         * stmt.c (expand_nl_goto_receivers): Likewise.
13464         * expr.h (expand_builtin_trap): Declare.
13465         * libfuncs.h (LTI_abort, abort_libfunc): New.
13466         * optabs.c (init_optabs): Init abort_libfunc.
13467
13468 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
13469
13470         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
13471         (LINK_COMMAND_SPEC): ... from here.
13472         (init_gcc_specs): Duplicate it here too, omitting
13473         shared_name in the second copy.
13474         (init_spec): Test for duplicate
13475         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
13476
13477 2002-03-30  David S. Miller  <davem@redhat.com>
13478
13479         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
13480         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
13481
13482 2002-03-30  Roger Sayle <roger@eyesopen.com>
13483             Richard Henderson  <rth@redhat.com>
13484
13485         * regmove.c (combine_stack_adjustments_for_block): Avoid
13486         emitting a stack adjustment of zero bytes.  Let delete_insn
13487         update bb->head.
13488
13489 2002-03-30  Richard Henderson  <rth@redhat.com>
13490
13491         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
13492         (sparc_emitting_epilogue): New.
13493         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
13494         * config/sparc/sparc-protos.h: Update.
13495         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
13496         (TARGET_SWITCHES): Update.
13497         * config/sparc/sparc.md (return): Remove.
13498         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
13499         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
13500         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
13501         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
13502         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
13503         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
13504         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
13505         Remove MASK_EPILOGUE.
13506         * doc/invoke.texi: Update.
13507
13508 2002-03-30  Daniel Berlin  <dan@dberlin.org>
13509
13510         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
13511         CPP will start the file for us.
13512
13513 2002-03-30  Richard Henderson  <rth@redhat.com>
13514
13515         PR target/5446
13516         * config/ia64/ia64.c (group_barrier_needed_p): Special case
13517         prologue_allocate_stack.
13518         (ia64_single_set): Use insn codes for recognition of special
13519         cases, not rtl matching.
13520         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
13521
13522 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
13523
13524         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
13525
13526 2002-03-30  Richard Henderson  <rth@redhat.com>
13527
13528         PR target/6032
13529         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
13530         or -fomit-frame-pointer with profiling.
13531         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
13532         (FUNCTION_PROFILER): Do nothing.
13533         (PROFILE_HOOK): New.
13534         * config/sparc/sparc.c (sparc_override_options): Don't check
13535         code models for profiling.
13536         (sparc_function_profiler): Remove.
13537         (sparc_profile_hook): New.
13538         * config/sparc/sparc-protos.h: Update.
13539
13540 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
13541
13542         PR optimization/6086
13543         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
13544         of SUBREG of volatile MEM or because the MEM was mode dependent,
13545         return CLOBBER instead of unmodified SUBREG.
13546
13547 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13548
13549         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
13550         when not optimizing.
13551
13552         * toplev.c (rest_of_compilation): Cann mark_constant_function
13553         only when optimizing.
13554
13555         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
13556         are NULL.
13557
13558         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
13559         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
13560         (try_optimize_cfg): clear all AUX fields.
13561
13562         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
13563         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
13564         (ix86_address_cost): Be prepared for SUBREGed registers.
13565         (legitimate_address_p): Accept SUBREGed registers.
13566
13567 2002-03-29  Richard Henderson  <rth@redhat.com>
13568
13569         PR target/5672
13570         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
13571
13572 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13573
13574         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
13575         for aggregate and TFmode types.
13576
13577 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
13578
13579         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
13580
13581 2002-03-29  Richard Henderson  <rth@redhat.com>
13582
13583         PR target/5886
13584         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
13585         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
13586
13587 2002-03-29  Richard Henderson  <rth@redhat.com>
13588
13589         PR target/6041
13590         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
13591         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
13592         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
13593         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
13594         conditional.
13595         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
13596
13597 2002-03-29  Dale Johannesen <dalej@apple.com>
13598
13599         * loop.c (combine_movables): Do allow combination of pseudos.
13600
13601 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
13602
13603         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
13604         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
13605         No functional change except ...
13606         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
13607         * doc/install.texi (*-*-freebsd*): Document port configuration.
13608
13609 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13610
13611         * Makefile.in (convert.o, calls.o, expmed.o): Update.
13612         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
13613         Use new hooks.
13614         * builtin-types.def (BT_PTRMODE): Update.
13615         * c-common.c (type_for_size): Rename c_common_type_for_size.
13616         (type_for_mode): Similarly.
13617         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
13618         Use new hook.
13619         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
13620         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
13621         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
13622         Redefine.
13623         * c-typeck.c (common_type, comptypes, default_conversion):
13624         Use new hooks.
13625         * calls.c: Include langhooks.h.
13626         (emit_library_call_value_1): Use new hooks.  Avoid redundant
13627         calls.
13628         * convert.c: Include langhooks.h
13629         (convert_to_pointer, convert_to_integer): Use new hooks.
13630         * except.c (init_eh): Similarly.
13631         * expmed.c: Include langhooks.h.
13632         (expand_mult_add): Use new hooks.
13633         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
13634         try_casesi): Similarly.
13635         * fold-const.c (optimize_bit_field_compare, make_range,
13636         decode_field_reference, fold_truthop, fold): Similarly.
13637         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
13638         put_var_into_stack): Similarly.
13639         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
13640         LANG_HOOKS_TYPE_FOR_SIZE): New.
13641         (LANG_HOOKS_TYPES_INITIALIZER): Update.
13642         * langhooks.h (lang_hooks_for_types): New hooks.
13643         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
13644         * tree.c (get_unwidened, get_narrower): Similarly.
13645         * tree.h (type_for_mode, type_for_size): Remove.
13646         * varasm.c (force_const_mem): Use new hooks.
13647         * utils2.c (nonbinary_modular_operation): Update.
13648 objc:
13649         * objc-act.c (handle_impent): Update.
13650         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
13651         Redefine.
13652
13653 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
13654
13655         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
13656         * config/ia64/ia64.c (basereg_operand): New.
13657         * config/ia64/ia64-protos.h (basereg_operand): Declare.
13658         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
13659
13660 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
13661
13662         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
13663         unwind information when frame_pointer_needed.
13664         (mmix_assemble_integer): Tweak wording in comment.
13665
13666 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13667
13668         * Makefile.in (except.o): Update.
13669         * except.c: Include langhooks.h.
13670         (init_eh): Use langhook.
13671         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
13672         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
13673         (LANG_HOOKS_INITIALIZER): Update.
13674         * langhooks.h (lang_hooks_for_types): New.
13675         (struct lang_hooks): Add it.
13676         * tree.c (make_lang_type_fn, make_lang_type): Remove.
13677         * tree.h (make_lang_type_fn, make_lang_type): Remove.
13678 config:
13679         * alpha/alpha.c: Include langhooks.h.
13680         (alpha_build_va_list): Use langhook.
13681         * d30v/d30v.c: Include langhooks.h.
13682         (d30v_build_va_list): Use langhook.
13683         * i386/i386.c: Include langhooks.h.
13684         (ix86_build_va_list): Use langhook.
13685         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
13686         * s390/s390.c: Include langhooks.h.
13687         (s390_build_va_list): Use langhook.
13688         * stormy16/stormy16.c: Include langhooks.h.
13689         (stormy16_build_va_list): Use langhook.
13690
13691 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
13692
13693         PR c++/5964
13694         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
13695         attributes.
13696         (length): Compute variable length for branches/calls/jumps here.
13697         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
13698         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
13699         define branch_type attribute.
13700         (divsi3_sp32): Maximum length is 6 not 7.
13701         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
13702         call_address_untyped_struct_value_sp32,
13703         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
13704         * config/sparc/sparc.c (empty_delay_slot): New function.
13705         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
13706         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
13707
13708 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
13709
13710         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
13711         nonzero_bits if not needed.
13712         (nonzero_bits) [XOR]: Likewise.
13713         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
13714         reg_last_set_mode and mode are both MODE_INT, but not equal.
13715         (record_value_for_reg): Compute reg_last_set_nonzero_bits
13716         in nonzero_bits_mode for MODE_INT modes.
13717
13718 2002-03-28  Richard Henderson  <rth@redhat.com>
13719
13720         PR target/5715
13721         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
13722         to GAS.  Correct drift between alternatives.
13723
13724 2002-03-28  Richard Henderson  <rth@redhat.com>
13725
13726         PR target/6087
13727         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
13728
13729 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
13730
13731         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
13732         emulation to the linker.
13733
13734 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
13735
13736         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
13737         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
13738
13739 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
13740
13741         * combine.c (simplify_and_const_int): Make sure to apply mask
13742         when force_to_mode returns a constant integer.  PR3311.
13743
13744 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13745
13746         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
13747
13748 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13749
13750         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
13751         and Objective-C Dialect Options.
13752
13753 2002-03-28  Richard Henderson  <rth@redhat.com>
13754
13755         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
13756         comparison should be done vs !=0 not >0 return code.  Tidy cases.
13757
13758 2002-03-28  Richard Henderson  <rth@redhat.com>
13759
13760         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
13761         on to c_expand_body.
13762         * c-tree.h (finish_function): Update decl.
13763         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
13764
13765 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13766
13767         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
13768
13769 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
13770
13771         * rtlanal.c: Include flags.h
13772         (may_trap_p): Do not mark FP operations if trapping
13773         if !flag_trapping_math
13774         * Makefile.in (rtlanal.o): Add dependency on flag.h
13775         * ifcvt.c (noce_operand_ok): Avoid the lameness.
13776
13777 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
13778
13779         * mips.md: Use dconst1, not 1.0, as first argument of
13780         REAL_VALUE_LDEXP.  Don't use union real_extract.
13781
13782 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
13783
13784         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
13785         rather than $target.  Heed program_prefix and
13786         program_transform_name.  Search for gas in cross-compiler case too.
13787         "test -x" rather than "test -f".
13788         (gcc_cv_ld): Likewise.
13789         (gcc_cv_nm): Heed program_prefix and program_transform_name.
13790         (gcc_cv_objdump): Likewise.
13791         * configure: Regenerate.
13792
13793 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13794
13795         * Makefile.in (attribs.o): Update.
13796         * attribs.c: Include langhooks.h.
13797         (decl_attributes): Use langhook.
13798         * c-decl.c (insert_default_attributes): Rename.
13799         * c-tree.h (c_insert_default_attributes): New.
13800         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
13801         (LANG_HOOKS_INITIALIZER): Update.
13802         * langhooks.h (struct lang_hooks): New hook.
13803         * tree.h (insert_default_attributes): Remove.
13804 objc:
13805         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
13806
13807 2002-03-27  Andreas Schwab  <schwab@suse.de>
13808
13809         * config/i386/i386.c (classify_argument): Also check for
13810         QUAL_UNION_TYPE.
13811
13812 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13813
13814         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
13815         any more.
13816
13817 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13818
13819         * i960.md (ret): Set PC.
13820         (nonlocal_goto): Fix expander.
13821         * builtins.c (epxand_builin_longjmp): Check that we've emitted
13822         some jump or call.
13823
13824 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
13825
13826         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
13827         of libcall regions.
13828
13829 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13830
13831         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
13832         assigning to BLOCK_FOR_INSN directly.
13833
13834 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
13835
13836         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
13837
13838 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13839
13840         * c-common.c (c_expand_expr): Fix prototype.
13841         * c-common.h (c_expand_expr): Always declare, update.
13842         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
13843         * c-objc-common.c (c_objc_common_init): No global hook.
13844         * expr.c (expand_expr): Use langhook.
13845         * expr.h (enum expand_modifier): Conditionally declare.
13846         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
13847         (LANG_HOOKS_INITIALIZER): Update.
13848         * langhooks.c (lhd_expand_expr): New.
13849         * langhooks.h (struct lang_hooks): New hook.
13850         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
13851         (lang_independent_init): Don't default hook.
13852 objc:
13853         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
13854
13855 2002-03-27  Richard Henderson  <rth@redhat.com>
13856
13857         PR target/6054
13858         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
13859         TARGET_CONST_GP.  Simplify conditions.
13860
13861 2002-03-27  Richard Henderson  <rth@redhat.com>
13862
13863         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
13864         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
13865         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
13866
13867 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
13868
13869         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
13870         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
13871         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
13872         Remove unnecessary masks.
13873         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
13874         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
13875         -mwindows, -mdll switches and their negations.
13876
13877 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13878
13879         * gcc-common.c (lang_mark_false_label_stack): Remove.
13880         * ggc.h (lang_mark_false_label_stack): Similarly.
13881
13882 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
13883
13884         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
13885
13886         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
13887         or __rtems_ is defined.
13888
13889 2002-03-26  Richard Henderson  <rth@redhat.com>
13890
13891         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
13892         if a non-trivial load was emitted.
13893         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
13894         in high+extra+low case.
13895
13896 2002-03-26  Richard Henderson  <rth@redhat.com>
13897
13898         * config.gcc (sparc*-solaris): Use float_format=sparc.
13899
13900 2002-03-26  Richard Henderson  <rth@redhat.com>
13901
13902         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
13903         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
13904         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
13905         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
13906         (WINT_TYPE_SIZE): Fix at 32.
13907
13908 2002-03-26  Richard Henderson  <rth@redhat.com>
13909
13910         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
13911         until after eh landing pad generation.
13912         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
13913         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
13914
13915 2002-03-26  Richard Henderson  <rth@redhat.com>
13916
13917         * expr.h (ADD_PARM_SIZE): One more convert for INC.
13918
13919 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
13920
13921         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
13922         and warning switches.
13923         (cc1_options):  Likewise.
13924
13925 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
13926
13927         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
13928         Restore more of the signal context.  Set no_reg_stack_frame.
13929         * config/ia64/unwind-ia64.c (unw_state_record):
13930         Add no_reg_stack_frame, comments.
13931         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
13932         (uw_update_context): Adjust bsp when unwinding from leaf,
13933         but not signal frame.
13934
13935 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
13936
13937         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
13938
13939 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
13940
13941         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
13942
13943 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
13944
13945         PR target/5621
13946         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
13947         "Add a pool_range attribute", which was lost during the ARM/Thumb
13948         merge.
13949
13950 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
13951
13952         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
13953         a register into the MAC16 accumulator.
13954
13955 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
13956
13957         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
13958         (Warning Options): Document -Wswitch-enum.
13959         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
13960         -Wswitch.
13961         (warn_switch_enum): Define variables.
13962         * flags.h (warn_switch_enum): Declare variables.
13963         * stmt.c (expand_end_case_type): When warn_switch_enum /
13964         -Wswitch-enum, perform switch checks.
13965         Fix PR c/5044.
13966
13967 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
13968
13969         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
13970         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
13971         (reload_muladdsi_compare0_scratch): Delete.
13972
13973 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
13974
13975         * doc/install.texi (*-*-freebsd*): Update.
13976
13977 2002-03-26  Richard Henderson  <rth@redhat.com>
13978
13979         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
13980         (SUB_PARM_SIZE): Cast DEC to ssizetype.
13981
13982         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
13983         types from the normal argument frame.
13984
13985         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
13986         variable sized objects by reference.
13987         (sparc_va_arg): Receive them by reference too.
13988
13989 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
13990
13991         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
13992         code to not restoring global registers.
13993
13994 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
13995
13996         * Makefile.in (ggc-common.o): Update.
13997         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
13998         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
13999         * c-tree.h (c_mark_tree): New.
14000         * ggc-common.c: Include langhooks.h.
14001         (gcc_mark_trees): Use new langhook.
14002         * ggc-callbacks.c: Delete file.
14003         * ggc.h (lang_mark_tree): Remove.
14004         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
14005         (LANG_HOOKS_INITIALIZER): Update.
14006         * langhooks.h (struct lang_hooks): New hook.
14007 objc:
14008         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
14009
14010 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
14011
14012         * doc/cpp.texi: Exclude entire Top node from printed manual.
14013         Move option index after directive index.  Insert page breaks
14014         before GFDL and concept index.  Index environment variables
14015         with command line options.
14016         * doc/cppenv.texi: Use @vtable for environment variable list.
14017         Add paragraph explaining semantics of empty elements in path
14018         variables.  Exclude a cross-reference to Fishkill from the
14019         manpage.  Remove an unnecessary cross-reference of the entry
14020         right above the referer.  Don't use @anchor in text that goes
14021         into manpage.
14022         * doc/cppopts.texi: Cross-reference the environment variables
14023         section, not the specific environment variable, for consistency.
14024
14025 2002-03-25  Richard Henderson  <rth@redhat.com>
14026
14027         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
14028         anywhere in the block.  Don't refer to insns that have been
14029         removed from the chain.  Iterate backward through the new insns.
14030         Don't refer to edges that have been removed.
14031
14032 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
14033
14034         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
14035         test for overflow of constant.
14036
14037 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
14038
14039         PR target/2623
14040         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
14041         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
14042         these patterns on arm_archv4.
14043
14044 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
14045
14046         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
14047         int".
14048
14049 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
14050
14051         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
14052         float_handled, float_handler, float_signal, set_float_handler,
14053         and do_float_handler.  Set handler for SIGFPE to crash_signal.
14054         * toplev.h: Don't prototype do_float_handler.
14055
14056         * c-lex.c: Fold parse_float into lex_number.  Make warning
14057         about portability of hex float constants more informative, and
14058         don't issue it on top of a syntax error.
14059         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
14060         their callers.
14061         * real.h: Define REAL_VALUE_ABS here...
14062         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
14063         simplify_unary_real, simplify_binary_real, and
14064         simplify_binary_is2orm1 into their callers.
14065         * tree.c: Fold build_real_from_int_cst_1 into caller.
14066
14067         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
14068
14069         * tsystem.h: Include float.h here...
14070         * libgcc2.c: ... not here.
14071
14072 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
14073
14074         Fixes for: PR bootstrap/3591, target/5676
14075         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
14076         defined.  Do not disable exceptions or rtti.
14077         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
14078         mcore.h.  Disable exceptions and rtti, since they are not
14079         supported by EPOC.
14080
14081 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
14082
14083         * c-decl.c (maybe_build_cleanup): Remove.
14084         * expr.c (expand_expr): Use langhook.
14085         * langhooks-def.h (lhd_return_null_tree,
14086         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
14087         (LANGHOOKS_INITIALIZER): Update.
14088         * langhooks.c (lhd_return_null_tree): New.
14089         * langhooks.h (struct lang_hooks): New hook.
14090         * tree-inline.c (initialize_inlined_parameters): Use langhook.
14091         * tree.h (maybe_build_cleanup): Remove.
14092
14093 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14094
14095         * regrename.c (build_def_use): Move recog_memoized
14096         before extract_insn.
14097
14098 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14099
14100         PR target/6043
14101         * expr.c (emit_group_store): Handle storing into CONCAT.
14102
14103 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14104
14105         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
14106         corresponding MATCH_DUP.
14107
14108 2002-03-24  Richard Henderson  <rth@redhat.com>
14109
14110         * unroll.c (unroll_loop): Zero label_map.
14111
14112         * gcse.c: Include except.h.
14113         * Makefile.in (gcse.o): Update.
14114
14115 2002-03-24  Richard Henderson  <rth@redhat.com>
14116
14117         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
14118         Do resolve_unique_section before shared data clause.
14119
14120 2002-03-24  Richard Henderson  <rth@redhat.com>
14121
14122         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
14123
14124 2002-03-24  Richard Henderson  <rth@redhat.com>
14125
14126         * recog.c (peephole2_optimize): Split blocks when EH insns are
14127         generated in the middle of a block.  Do global life update if
14128         zapped EH edges.
14129
14130 2002-03-24  Richard Henderson  <rth@redhat.com>
14131
14132         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
14133
14134 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14135
14136         preprocessor/3951
14137         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
14138         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
14139         (init_dependency_output): Don't make no_output decision here.
14140
14141 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
14142
14143         * stmt.c (check_for_full_enumeration_handling): Remove tests of
14144         warn_switch.  Update description.
14145         (expand_end_case_type): Call check_for_full_enumeration_handling
14146         when warn_switch.
14147
14148 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14149
14150         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
14151         (m68hc11_split_move): Call it to see if the source and destination
14152         operands use the same direction auto inc/dec mode, otherwise make the
14153         source an offsetable memory operand and generate an add.
14154
14155 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14156
14157         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
14158         register for operand 2.
14159         ("*subsi3_zero_extendqi"): Likewise.
14160         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
14161         bits so that it is compatible with a pop.
14162         ("*andhi3_gen"): Likewise.
14163         ("xorhi3"): Likewise.
14164
14165 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14166
14167         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
14168         -pedantic here...
14169         (cpp_post_options): ... not here.
14170
14171 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14172             Aldy Hernandez  <aldyh@redhat.com>
14173
14174         Removal of separate preprocessor cpp0.
14175
14176         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
14177         cpp0, install-common): Update.
14178         * c-common.c (flag_preprocess_only): New.
14179         (c_common_init): Preprocess for -E.
14180         * c-common.h (flag_preprocess_only): New.
14181         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
14182         * c-objc-common.c (c_init_decl_processing): Exit quickly
14183         for NULL return from c_common_init.
14184         * cpplib.h (cpp_preprocess_file): New.
14185         * cppmain.c (main, general_init, pfile, progname): Remove.
14186         (do_preprocessing): Rename cpp_preprocess_file, don't call
14187         cpp_finish.  Don't close stdout here.
14188         (setup_callbacks): Update prototype.
14189         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
14190         Update.
14191         * tradcpp.c (main): Ignore -quiet.
14192 objc:
14193         * lang-specs.h (default_compilers): Preprocess with cc1obj.
14194
14195 2002-03-24  Richard Henderson  <rth@redhat.com>
14196
14197         PR optimization/5742
14198         * machmode.def: Add inner mode field to complex modes.
14199         * config/mips/mips.c (mips_function_value): Always define.  Add
14200         new argument to handle libcalls.
14201         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
14202         (FUNCTION_VALUE): Likewise.
14203         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
14204         * config/mips/mips-protos.h: Update.
14205
14206 2002-03-23  Richard Henderson  <rth@redhat.com>
14207
14208         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
14209         * config/sparc/sparc-protos.h: Update.
14210         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
14211
14212 2002-03-23  Richard Henderson  <rth@redhat.com>
14213
14214         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
14215         _start or _init begins the text segment.
14216
14217 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
14218
14219         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
14220         not HOST_WIDEST_INT.
14221         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
14222
14223 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
14224
14225         PR java/5489
14226         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
14227         operand argument to output_return_instruction.
14228         * arm.c (arm_print_operand, case 'd'): If the operand is
14229         const_true_rtx then just return.
14230         (arm_print_operand, case 'D'): If the operand is const_true_rtx
14231         then abort.
14232
14233 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
14234
14235         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
14236         (Warning Options): Document -Wswitch-default.
14237         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
14238         -Wswitch.
14239         (warn_switch_default): Define variable.
14240         (warn_switch): Update comment.
14241         * flags.h (warn_switch_default): Declare variable.
14242         (warn_switch): Update comment.
14243         * stmt.c (expand_end_case): Check for and, when
14244         warn_switch_no_default, warn of a missing default case.
14245
14246 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
14247
14248         * real.h (N): Special case 128 bit doubles.
14249
14250         * combine.c (simplify_comparison): When widening modes, ignore
14251         sign extension on CONST_INTs.
14252
14253 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
14254
14255         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
14256         passed to adjust_address.  Fix comment formatting.
14257
14258
14259 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
14260
14261         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
14262         Always make REAL_VALUE_TYPE a struct containing an array of
14263         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
14264         big it is.  Don't declare or use union real_extract.
14265
14266         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
14267         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
14268         (print_operand), config/arm/arm.c (output_move_double),
14269         config/arm/arm.md (consttable_4, consttable_8),
14270         config/romp/romp.c (output_fpops), config/s390/s390.h
14271         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
14272         (xtensa_output_literal): Don't use union real_extract.
14273
14274         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
14275         (sfmode_constant_to_ulong), config/ns32k/merlin.h
14276         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
14277         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
14278         (PRINT_OPERAND): Don't use local version of union
14279         real_extract.
14280
14281         * config/convex/convex.c (check_float_value), config/vax/vax.c
14282         (vax_float_literal), config/m88k/m88k.md (divdf3),
14283         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
14284         config/pdp11/pdp11.c (output_move_quad): Don't do host
14285         arithmetic on target floating point quantities.
14286
14287         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
14288         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
14289
14290         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
14291         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
14292
14293         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
14294         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
14295         INFINITY.
14296         * print-rtl.c (print_rtx): Disable code which needs
14297         floating-point emulator.
14298         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
14299         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
14300         depending on HOST_FLOAT_FORMAT to be defined properly.
14301
14302         * config/1750a/1750a.c (get_double, float_label): Delete.
14303         (print_operand): Delete huge commented-out chunk.  Use
14304         REAL_VALUE_TO_DECIMAL.
14305         * config/1750a/1750a-protos.h: Delete prototypes of deleted
14306         functions.
14307         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
14308         IEEE_FLOAT_FORMAT.
14309         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
14310         Use REAL_VALUE_TO_DECIMAL as ELF version does.
14311         * config/m88k/m88k.c (real_power_of_2_operand,
14312         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
14313         real_extract out of the union; run the input through
14314         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
14315         from that into the union.
14316         * config/pdp11/pdp11.c (output_move_double): Rearrange
14317         parentheses to make automatic indenter happy.
14318
14319         * doc/tm.texi (Cross-compilation): Rename node to "Floating
14320         Point" and rewrite to describe current situation.  Also adjust
14321         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
14322         match code.
14323         * doc/rtl.texi: Adjust cross reference.
14324
14325 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
14326
14327         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
14328         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
14329         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
14330         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
14331         prevent use of sp as a reload register.
14332         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
14333         non_acc_reg_operand.
14334         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
14335         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
14336         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
14337         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
14338
14339 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
14340
14341         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
14342         * cpplex.c (unterminated): Delete.
14343         (parse_string): No string literal may extend over multiple
14344         lines.  Suppress the error when preprocessing assembly.
14345         * cppmain.c (scan_translation_unit): Strings are single-line.
14346
14347         * doc/cpp.texi: Update to match.
14348
14349 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
14350
14351         PR optimization/5854
14352         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
14353         Shut up warnings.
14354         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
14355         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
14356         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
14357         const0 if scratch register was not allocated.
14358         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
14359         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
14360         with GEN_INT (...).
14361         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
14362         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
14363         with GEN_INT (...) everywhere.  Remove constraints in define_split
14364         patterns.
14365         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
14366         require scratch register for setting 0 into regs/non-pushable memory.
14367
14368 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
14369
14370         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
14371         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
14372
14373 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
14374
14375         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
14376         * cppinit.c (cpp_create_reader):  On by default.
14377         (cpp_handle_option):  Handle -W[no-]endif-labels.
14378         (cpp_post_options):  Also enable if -pedantic.
14379         * cpplib.c (do_else):  Use it.
14380         (do_endif):  Likewise.
14381         * doc/cppopts.texi:  Document new option.
14382         * doc/invoke.texi:  Document new option.
14383
14384 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
14385
14386         * config/i386/i386.c, config/i386/i386.md: Change all occurences
14387         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
14388
14389 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
14390
14391         * flow.c (calculate_global_regs_live): Clear aux fields of
14392         ENTRY and EXIT.
14393
14394 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
14395
14396         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
14397         REG or MEM subregs, pass rtx * instead of rtx to it.
14398         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
14399         rtx * instead of rtx to alter_subreg.
14400         * config/m32r/m32r.c (gen_split_move_double): Likewise.
14401         * config/pj/pj.c (pj_output_rval): Likewise.
14402
14403 2002-03-22  Richard Henderson  <rth@redhat.com>
14404
14405         PR target/3177
14406         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
14407         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
14408         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
14409         (ia64_expand_prologue): Look at int_regs, not words, for number
14410         of incomming int regs.
14411
14412 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
14413
14414         * expr.c (expand_expr): A RESULT_DECL is part of a call.
14415
14416 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
14417
14418         * toplev.c (flag_loop_optimize, flag_crossjumping):
14419         New static variables.
14420         (rest_of_compilation): Conditionalize crossjumping and
14421         loop optimizer.
14422         (parse_options_and_default_flags): Default loop_optimize and
14423         crossjumping.
14424         (lang_independent_options): Add -fcrossjumping and -floop-optimize
14425         * invoke.texi (crossjumping, loop-optimize): Document.
14426
14427 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14428
14429         * real.c (eiisneg): Move outside #ifdef NANS.
14430
14431 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
14432
14433         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
14434         frequencies match; avoid match on different loop depths.
14435         (try_crossjump_to_bb): Kill tests that no longer brings time
14436         savings.
14437         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
14438         updating code.
14439         (split_edge): Likewise.
14440
14441         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
14442         variable.
14443
14444         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
14445         * cfgrtl.c: Include insn-config.h
14446         (split_block) Dirtify block in presence of conditional execution
14447
14448 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14449
14450         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
14451         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
14452         (function_arg): Constify CUMULATIVE_ARGS.
14453         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
14454         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
14455         (UNITS_PER_DOUBLE): New macro.
14456         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
14457         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
14458         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
14459         fp_regs and stack_words.
14460         (EABI_FLOAT_VARARGS_P): New macro.
14461         * config/mips/mips.c (struct mips_arg_info): New.
14462         (mips_arg_info): New function.
14463         (function_arg_advance): Use it.  Add adjustment instructions here
14464         rather than in function_arg.
14465         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
14466         for VOIDmode at the beginning of the function.
14467         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
14468         (function_arg_pass_by_reference): Likewise.
14469         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
14470         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
14471         (mips_va_start): Likewise.  Use the new stack_words field of
14472         CUMULATIVE_ARGS to set up overflow area.  Reformat.
14473         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
14474         doubles and other types, aligning the overflow pointer for non-doubles
14475         too.  Remove some code duplication.  Replace hard-coded constants.
14476
14477 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
14478
14479         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
14480         (CLASS_UNITS): Undefine.
14481         (CLASS_MAX_NREGS): Use FP_INC.
14482         * config/mips/mips.c (compute_frame_size): Likewise.
14483         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
14484
14485 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
14486
14487         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
14488         prototype, and handle lexing numbers and identifiers.
14489         (parse_identifier): Update to new form of parse_slow.
14490         (parse_number): Fast path only, use parse_slow otherwise.
14491         (_cpp_lex_direct): Update calls to parse_number.
14492
14493 2002-03-21  DJ Delorie  <dj@redhat.com>
14494
14495         * bb-reorder.c (make_reorder_chain_1): Protect against
14496         when redundant edges are omitted.
14497         * predict.c (dump_prediction): Likewise.
14498
14499 2002-03-21  Richard Henderson  <rth@redhat.com>
14500
14501         PR target/5996
14502         * fixinc/inclhack.def (solaris_stdio_tag): New.
14503         * fixinc/fixincl.x: Regenerate.
14504
14505 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
14506
14507         PR c/5597
14508         * c-typeck.c (process_init_element): Flag non-static
14509         initialization of a flexible array member as illegal.
14510
14511 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
14512
14513         * config/rs6000/t-linux64: New.
14514         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
14515         t-ppccomm.  Use t-rs6000 and t-linux64.
14516         (powerpc64-*-gnu* <tmake_file>): Likewise.
14517         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
14518         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
14519         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
14520
14521 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
14522
14523         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
14524         flag_really_no_inline instead of optimize == 0.
14525
14526         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
14527
14528         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
14529
14530         * flags.h (flag_really_no_inline): New.
14531
14532         * c-common.c (c_common_post_options): Initialize
14533         flag_really_no_inline.
14534
14535         * toplev.c (flag_really_no_inline): New.
14536
14537 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
14538
14539         * config/avr/avr.md (length): Fix length computation for
14540         conditional branches.
14541
14542 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
14543
14544         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
14545         sdbout.o, profile.o): Update.
14546         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
14547         langhook.
14548         * c-common.h (gettags): Move here from tree.h.
14549         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
14550         insert_block, getdecls, kept_level_p, global_bindings_p): New.
14551         * dbxout.c (dbxout_init): Use getdecls langhook.
14552         * expr.c (expand_expr): Use insert_block langhook.
14553         * fold-const.c: Include langhooks.h.
14554         (fold_range_test, fold_binary_op_with_conditional_arg,
14555         fold): Use global_bindings_p langhook.
14556         * integrate.c (expand_inline_function): Use insert_block langhook.
14557         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
14558         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
14559         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
14560         LANG_HOOKS_GETDECLS): New.
14561         (LANG_HOOKS_INITIALIZER): Update.
14562         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
14563         langhook.
14564         * langhooks.h (struct lang_hooks_for_decls): New.
14565         (struct lang_hooks): Update.
14566         * profile.c: Include langhooks.h.
14567         (output_func_start_profiler): Use new langhooks.
14568         * sdbout.c: Include langhooks.h.
14569         (sdbout_init, sdbout_finish): Use getdecls langhook.
14570         * stmt.c: Include langhooks.h.
14571         (expand_fixup, fixup_gotos): Use new langhooks.
14572         * stor-layout.c: Include langhooks.h.
14573         (variable_size): Use global_bindings_p langhook.
14574         * toplev.c (compile_file): Use getdecls langhook.
14575         * tree-inline.c (remap_block): Use insert_block langhook.
14576         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
14577         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
14578
14579 2002-03-21  Richard Henderson  <rth@redhat.com>
14580
14581         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
14582         constants in .data when -fpic.
14583
14584 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14585
14586         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
14587         where appropriate.
14588
14589 2002-03-21  Tom Tromey  <tromey@redhat.com>
14590
14591         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
14592
14593 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14594
14595         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
14596
14597         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
14598
14599 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
14600             Richard Henderson  <rth@redhat.com>
14601
14602         PR c/5354
14603         * c-common.c (c_expand_expr): Preserve result of a statement
14604         expression if needed.
14605
14606 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
14607
14608         PR bootstrap/4195
14609         * genrecog.c (maybe_both_true_mode): Remove.
14610         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
14611         * machmode.def (Pmode): Likewise.
14612
14613 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
14614
14615         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
14616         (nonlocal_mentioned_p_1): New function.
14617         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
14618         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
14619         (mark_constant_function): Recognize pure functions.
14620         * rtl.h (global_reg_mentioned_p): New prototype.
14621         * rtlanal.c (global_reg_mentioned_p,
14622         global_reg_mentioned_p_1): New function.
14623
14624 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14625
14626         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
14627         UNIX assert.h.
14628         * fixinc/fixincl.x: Regenerate.
14629
14630 2002-03-20  Jason Merrill  <jason@redhat.com>
14631
14632         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
14633
14634 2002-03-20  Michael Meissner  <meissner@redhat.com>
14635
14636         * doc/invoke.texi (Optimize Options): Document that -O2 sets
14637         -fstrict-aliasing.
14638
14639 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
14640
14641         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
14642         ".literal_position" directive before the constant pool.
14643
14644 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14645
14646         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
14647         Add Craig Rodrigues.
14648         Add Brad Lucier to testers.
14649
14650 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14651
14652         PR target/4792
14653         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
14654         to if_then_else.
14655         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
14656         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
14657         instead of insn_extract.
14658
14659 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14660
14661         PR bootstrap/4192
14662         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
14663
14664         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
14665         stmt if some case has been output.
14666
14667 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
14668
14669         PR c/5972
14670         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
14671         movsfcc_1, movdfcc_1): Add %O2.
14672         * config/i386/i386.c (print_operand): Handle %ON.
14673         Print . before float condition codes in Sun as cmov syntax.
14674         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
14675         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
14676         no longer true.
14677
14678 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
14679
14680         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
14681         return instruction if PC was popped.
14682
14683 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
14684
14685         * config/xtensa/xtensa.md: Remove unused type attributes.
14686         (adddi_carry, subddi_carry): Change type attribute to "multi".
14687
14688 2002-03-19  Dale Johannesen  <dalej@apple.com>
14689
14690         PR optimization/5999, middle-end/5731
14691         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
14692         multiplications by reciprocals.
14693
14694 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
14695
14696         * Makefile.in: Update.
14697         * c-common.c: Include langhooks.h.
14698         (inline_forbidden_p): Use new hook.
14699         * diagnostic.c: Include langhooks.h.
14700         (format_with_decl, announce_function,
14701         default_print_error_function): Use new hook.
14702         * dwarf2out.c (dwarf2_name): Use new hook.
14703         * function.c: Include langhooks.h.
14704         (init_function_start): Use new hook.
14705         * langhooks-def.h (lhd_decl_printable_name): New.
14706         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
14707         (LANGHOOKS_INITIALIZER): Update.
14708         * langhooks.c (lhd_decl_printable_name): New.
14709         * langhooks.h (struct lang_hooks): New hook.
14710         * toplev.c (decl_name, decl_printable_name): Remove.
14711         (open_dump_file): Use new hook.
14712         (process_options): Remove old hook.
14713         * tree.h (decl_printable_name): Remove.
14714 objc:
14715         * objc-act.c (objc_init): Remove old hook.
14716         (objc_printable_name): Export.
14717         * objc-act.h (objc_printable_name): New.
14718         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
14719
14720 2002-03-19  Jim Blandy  <jimb@redhat.com>
14721
14722         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
14723         the start_source_file debug hook, not the current line number.
14724
14725 2002-03-19  Richard Henderson  <rth@redhat.com>
14726
14727         * flow.c (EH_USES): Provide default.
14728         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
14729         * doc/tm.texi (EH_USES): New.
14730
14731         * config/ia64/ia64.c (ia64_eh_uses): New.
14732         * config/ia64/ia64-protos.h: Update.
14733         * config/ia64/ia64.h (EH_USES): New.
14734
14735 2002-03-19  Richard Henderson  <rth@redhat.com>
14736
14737         * varasm.c (output_constant_def): Fix stupid typo.
14738
14739 2002-03-19  Richard Henderson  <rth@redhat.com>
14740
14741         PR 5879
14742         * except.c (current_function_has_exception_handlers): New.
14743         * except.h: Declare it.
14744         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
14745         Combine tests that disable all sibcalls for the function.
14746
14747 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
14748
14749         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
14750         for INTEGER_CST.
14751
14752 2002-03-19  Richard Henderson  <rth@redhat.com>
14753
14754         PR 5977, 5991
14755         * config/ia64/ia64.c: Revert 2002-03-01 patch.
14756         * config/ia64/ia64.h (INIT_EXPANDERS): New.
14757
14758 2002-03-19  Jim Blandy  <jimb@redhat.com>
14759
14760         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
14761         name, even if the replacement list contains no tokens, as required
14762         by Dwarf.
14763
14764 2002-03-19  Jason Merrill  <jason@redhat.com>
14765
14766         * varasm.c (globalize_decl): Get the name from the RTL, not
14767         DECL_ASSEMBLER_NAME.
14768
14769         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
14770
14771 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
14772
14773         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
14774         subdi_carry): Define.
14775
14776 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
14777
14778         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
14779         about -fpic/-fPIC if extra_warnings set.
14780
14781 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
14782
14783         * expr.c (expand_expr): Sign-extend CONST_INT generated from
14784         TREE_STRING_POINTER.
14785         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
14786
14787 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14788
14789         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
14790         in favor of SP if FRAME_POINTER_REQUIRED is false.
14791
14792 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
14793
14794         * emit-rtl.c (gen_int_mode): New function.
14795         * rtl.h: Prototype for it.
14796         * combine.c (make_extraction, simplify_comparison), expmed.c
14797         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
14798         (convert_modes, store_field), optabs.c (expand_fix),
14799         simplify-rtx.c (neg_const_int, simplify_unary_real),
14800
14801         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
14802         Use it instead of GEN_INT (trunc_int_for_mode (...)).
14803
14804 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
14805
14806         PR c/5656
14807         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
14808         convert_parm_for_inlining.
14809         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
14810         Define.
14811         * langhooks-def.h: Likewise.
14812         * objc/objc-lang.c: Likewise.
14813         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
14814         function.
14815         * tree-inline.c (initialize_inlined_parameters):
14816         Call convert_parm_for_inlining lang hook if needed.
14817         * c-typeck.c (c_convert_parm_for_inlining): New function.
14818         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
14819
14820 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
14821
14822         * calls.c (precompute_arguments): Do not assume that temporaries
14823         can be destroyed after expanding the argument.
14824         (expand_call): Likewise.
14825
14826 2002-03-15  Eric Christopher  <echristo@redhat.com>
14827
14828         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
14829         Fix register preference on last change.
14830         * config/mips/mips.c (mips_return_in_memory): New function.
14831         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
14832         * config/mips/mips-protos.h: Declare.
14833         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
14834         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
14835
14836 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
14837
14838         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
14839         a register too.
14840         (anddi3, iorsi3): Likewise.
14841
14842         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
14843         use %gprel for symbols that are going to be placed in linkonce
14844         sections.
14845
14846         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
14847         RETURN_ADDRESS_POINTER_REGNUM to $ra.
14848         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
14849         not needed.  Disregard leaf_function_p().
14850         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
14851         mips16 frame pointer.
14852         * config/mips/mips.md (store ra): Only to small SP offsets.
14853         2001-08-22  Graham Stott  <grahams@redhat.com>
14854         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
14855         return a REG rtx for the return address register.
14856
14857 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
14858
14859         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
14860         constant-pool addresses as "mode-dependent".
14861         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
14862
14863 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
14864
14865         PR target/5740
14866         * expr.c (emit_group_load): Use extract_bit_field if
14867         needed for CONCAT arguments.
14868
14869 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
14870
14871         PR target/4863
14872         * arm.md (tablejump): Make this a define_expand.  For PIC add the
14873         offset to the base of the table.
14874         (thumb_tablejump): Matcher for Thumb tablejump insn.
14875         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
14876         as the difference of two labels.
14877         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
14878         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
14879         tables in the code.
14880         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
14881         * arm.c (get_jump_table_size): If the table is not in the text
14882         section, return zero.
14883
14884 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
14885
14886         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
14887         of gen_rtx_SUBREG.
14888         (arm_reload_out_hi): Use gen_lowpart instead of
14889         gen_rtx_SUBREG to access QImode components.
14890         * config/arm/arm.md: Disable zero_extend split for QImode
14891         subregs in BIG_ENDIAN mode.
14892         (storehi_bigend): Match use of least significant byte.
14893         (storeinthi): Remove extraneous SUBREG.
14894         Add missing construction of operands[2].
14895         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
14896         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
14897         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
14898
14899 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
14900
14901         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
14902         any_operand.
14903
14904 2002-03-17  Richard Henderson  <rth@redhat.com>
14905
14906         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
14907         explicitly.
14908
14909 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
14910
14911         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
14912         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
14913
14914 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14915
14916         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
14917
14918         * predict.c (estimate_bb_frequencies): Delete unused variables.
14919
14920 2002-03-17  Richard Henderson  <rth@redhat.com>
14921
14922         * config/ia64/ia64.c (ia64_attribute_table): Move before
14923         targetm definition.  Make static.
14924
14925 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
14926
14927         * c-common.h (yyparse, c_common_parse_file): New.
14928         * c-lang.c: Include c-common.h.
14929         (LANG_HOOKS_PARSE_FILE): Redefine.
14930         * c-lex.c: Include c-common.h.
14931         (yyparse): Rename c_common_parse_file.  Call yyparse.
14932         * c-parse.in (yyparse): Remove macro.
14933         * c-tree.h (yyparse_1): Remove.
14934         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
14935         (LANG_HOOKS_INITIALIZER): Update.
14936         * langhooks.h (struct lang_hoooks): New hook parse_file.
14937         * toplev.c (compile_file): Use parse_file hook.
14938         * tree.h (yyparse): Remove.
14939         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
14940
14941 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
14942
14943         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
14944         float_truncate, not fix.
14945         ("*truncdfsf2_real"): Ditto.
14946         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
14947
14948         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
14949
14950 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
14951
14952         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
14953         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
14954         where appropriate.  Make the second reference to
14955         leaf_function_p a function call, as intended.  Reindented.
14956
14957         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
14958         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
14959
14960         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
14961         add register to non-constant into sp.
14962
14963         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
14964         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
14965         (mips16_gp_pseudo_rtx): Lose.
14966         (INIT_EXPANDERS): Deleted.
14967         * config/mips/mips.c (mips_init_machine_status): New.
14968         (mips_free_machine_status): New.
14969         (mips_mark_machine_status): New.
14970         (override_options): Set them.
14971         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
14972         (struct machine_function): ... new.  Replaced all references.
14973         (mips_add_gc_roots): Don't mark them.
14974         (embedded_pic_fnaddr_reg): New, extracted from...
14975         (embedded_pic_offset): ... here.
14976         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
14977         (movsi): Likewise.
14978
14979 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14980
14981         * cppinit.c: Revert -MD removal.
14982
14983 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14984
14985         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
14986         soft registers by default for 68HC12.
14987         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
14988         when compiling with -fomit-frame-pointer.
14989         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
14990         (expand_epilogue): Likewise.
14991         (m68hc11_gen_rotate): Use exg when rotating by 8.
14992
14993 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14994
14995         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
14996         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
14997         (splits): Remove unused add splits.
14998         ("*addhi3_68hc12"): Tune constraints.
14999         ("addhi_sp"): Try to use X instead of Y in all cases and if the
15000         constant fits in 8-bits and D is dead use abx/aby instructions.
15001         ("*addhi3"): Remove extern declaration of ix_reg.
15002         ("*subsi3"): Optimize and provide new split.
15003         ("subhi3"): Cleanup.
15004         ("*subhi3_sp"): Avoid saving X if we know it is dead.
15005         (arith splits): For 68hc12 save the address register on the stack
15006         and do the arithmetic operation with a pop.
15007
15008 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15009
15010         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
15011         allocating QImode in address registers.
15012         ("*movqi_m68hc11"): Likewise.
15013
15014 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
15015
15016         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
15017
15018 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
15019
15020         * cppinit.c (print_help): Display -MD and -MMD.
15021         Don't display usage string.  Update assertion syntax and
15022         typo.
15023         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
15024         (cpp_handle_option): Update.
15025
15026 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
15027
15028         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
15029         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
15030         and define it so that regardless of target CPU size,
15031         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
15032         of "int" rather than "long."
15033
15034 2002-03-15  Richard Henderson  <rth@redhat.com>
15035
15036         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
15037         size as a tree.
15038
15039 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15040
15041         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
15042         ("tstqi" split): Avoid using memory for tstqi on address register.
15043         (splits): Remove constraints.
15044         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
15045         ("cmpdf", "cmpsf"): Remove since not used.
15046         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
15047         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
15048
15049 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15050
15051         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
15052         ("neghi2"): Tighten constraints.
15053         ("one_cmplsi2"): Optimize and simplify split.
15054         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
15055
15056 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15057
15058         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
15059         and split of AND operation to clear the upper bits.
15060         ("*logicalsi3_zextqi"): Likewise.
15061         ("*logicallhi3_zexthi_ashift8"): Likewise.
15062         ("*logicalsi3_silshr16"): Likewise.
15063         ("logicalsi3_silshl16"): Likewise.
15064         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
15065
15066 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15067
15068         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
15069         (m68hc11_indirect_p): New function.
15070         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
15071         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
15072         TARGET_M6812.
15073         (asm_print_register): Likewise.
15074         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
15075         (m68hc11_indirect_p): Declare.
15076         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
15077         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
15078         (TARGET_SWITCHES): New option -mrelax.
15079         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
15080         destination.
15081         ("iorsi3", "xorsi3"): Likewise.
15082         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
15083         ("*andhi3_mem"): New to handle destination in memory with bclr
15084         and a scratch register.
15085         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
15086         ("*andhi3_const"): New when operand2 is constant.
15087         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
15088         ("*andhi3_gen"): Cleanup of the old "andhi3".
15089         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
15090         ("xorqi3"): Update constraints.
15091
15092 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15093
15094         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
15095         for reg_equiv_memory_loc when the operand is a register that does
15096         not get a hard register (stack location).
15097         (tst_operand): After reload, accept all memory operand.
15098         (symbolic_memory_operand): Fix detection of symbolic references.
15099         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
15100         accept symbols and any constant.
15101
15102 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15103
15104         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
15105         note on the insn that sets the soft frame register.
15106         (must_parenthesize): ix and iy are also reserved names.
15107         (print_operand_address): One more place where parenthesis are required
15108         to avoid confusion with register names.
15109         (m68hc11_gen_movhi): Allow push of stack pointer.
15110         (m68hc11_check_z_replacement): Fix handling of parallel with a
15111         clobber.
15112         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
15113         the replacement register is.
15114         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
15115         and D8_REGS classes.
15116         (MODES_TIEABLE_P): All modes are tieable except QImode.
15117
15118 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15119
15120         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
15121         (___subdi3): Likewise.
15122         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
15123         (__map_data_section): Optimize 68hc11 case.
15124
15125 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15126
15127         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
15128         than a shift to avoid adding a register with itself.
15129         (m68hc11_memory_move_cost): Take into account NO_REGS.
15130         (m68hc11_register_move_cost): Update and use memory move cost
15131         for soft registers.
15132         (m68hc11_address_cost): Make cost of valid offset not 0 so that
15133         it gives more opportunities to cse to optimize.
15134         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
15135         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
15136
15137 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
15138
15139         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
15140         * c-common.def (CLEANUP_STMT): New tree node.
15141         * c-common.h (CLEANUP_DECL): New macro.
15142         (CLEANUP_EXPR): Likewise.
15143         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
15144         * expr.c (expand_expr): Tidy.
15145         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
15146         * tree-inline.c (initialize_inlined_parameters): Clean up
15147         new local variables.
15148
15149 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
15150
15151         PR bootstrap/4128
15152         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
15153         before movrXX only, use reg_overlap_mentioned_p.
15154         Only special case NE if just one insn can be generated.
15155
15156 2002-03-15  Jason Merrill  <jason@redhat.com>
15157
15158         * varasm.c (assemble_variable): Call resolve_unique_section before
15159         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
15160         of error_mark_node.
15161
15162 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15163
15164         PR target/5170
15165         * arm.md (split pattern for thumb shiftable immediates): Add comment
15166         explaining non-obvious test.
15167
15168 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15169
15170         PR target/5712
15171         * arm.md (movaddr, movaddr_insn): Delete.
15172
15173 2002-03-15  Jason Merrill  <jason@redhat.com>
15174
15175         * toplev.c (wrapup_global_declarations): Clarify variable handling.
15176         -fkeep-static-consts doesn't apply to comdats.
15177
15178 2002-03-14  Richard Henderson  <rth@redhat.com>
15179
15180         * c-decl.c: Include c-pragma.h.
15181         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
15182         (finish_function): Tidy.
15183         * c-pragma.c: Include c-common.h.
15184         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
15185         (handle_pragma_weak): Use them.
15186         (init_pragma): Register pending_weaks.
15187         * c-pragma.h (maybe_apply_pragma_weak): Declare.
15188         * print-tree.c (print_node): Print DECL_WEAK.
15189         * varasm.c (mark_weak_decls): Remove.
15190         (remove_from_pending_weak_list): Remove.
15191         (add_weak): Remove.
15192         (asm_emit_uninitialised): Call globalize_decl for weak commons.
15193         (weak_decls): Make a tree_list.
15194         (declare_weak): Cons weak_decls directly.
15195         (globalize_decl): Remove weak_decls elements directly.
15196         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
15197         symbols.  Don't pretend to handle aliases.
15198         (init_varasm_once): Update weak_decls registry.
15199         * Makefile.in: Update dependencies.
15200
15201 2002-03-14  Richard Henderson  <rth@redhat.com>
15202
15203         PR target/5312
15204         * config/ia64/ia64.c: Include tm_p.h last.
15205         (gen_nop_type): Remove duplicate definition.
15206         (cycle_end_fill_slots): Set sched_data for second L slot.
15207         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
15208         (nop_cycles_until): Fix typos.
15209
15210 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
15211
15212         PR optimization/5891
15213         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
15214
15215 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
15216
15217         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
15218           descriptors correctly.
15219
15220 2002-03-14  Michael Meissner  <meissner@redhat.com>
15221
15222         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
15223         100, allowing MAX_UNROLLED_INSNS to be overridden.
15224
15225         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
15226         --param.
15227
15228         * unroll.c (params.h): Include.
15229         (MAX_UNROLLED_INSNS): Delete, now in params.h.
15230
15231         * doc/invoke.texi (--param max-unroll-insns): Document.
15232
15233         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
15234
15235 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
15236
15237         * arm.md: Fix warnings about constraints in peepholes and splits.
15238
15239 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
15240
15241         * cpphash.h (struct lexer_state): Remove line_extension member.
15242         * cpplib.c (dequote_string, do_linemarker): New functions.
15243         (linemarker_dir): New data object.
15244         (DIRECTIVE_TABLE): No longer need to interpret #line in
15245         preprocessed source.  Delete obsolete comment about return
15246         values of handlers.
15247         (end_directive, directive_diagnostics, _cpp_handle_directive):
15248         Don't muck with line_extension.
15249         (directive_diagnostics): No need to issue warnings for
15250         linemarkers here.
15251         (_cpp_handle_directive): Issue warnings for linemarkers here,
15252         when appropriate.  Dispatch linemarkers to do_linemarker, not
15253         do_line.
15254         (do_line): Code to handle linemarkers split out to do_linemarker.
15255         Convert escape sequences in filename argument, both places.
15256
15257         * cppmacro.c (quote_string): Rename cpp_quote_string and
15258         export.  All callers changed.
15259         * cpplib.h (cpp_quote_string): Prototype.
15260         * cppmain.c (print_line): Call cpp_quote_string on to_file
15261         before printing it.
15262
15263         * doc/cpp.texi: Document that escapes are now interpreted in
15264         #line and in linemarkers, and that non-printing characters are
15265         converted to octal escapes when linemarkers are generated.
15266
15267 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15268
15269         * emit-rtl.c (try_split): Use delete_insns.
15270         * recog.c (split_all_insns): Fix terminating condition.
15271
15272 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
15273             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
15274
15275         PR target/5828
15276         * arm.c (arm_output_epilogue): Fix floating-point register save
15277         adjustment when using a frame pointer.
15278
15279 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
15280
15281         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
15282         * config/mips/mips.c (compute_frame_size): Retrofit them here.
15283         (save_restore_insns, mips_expand_epilogue): And here.
15284         (build_mips16_call_stub): And here.
15285         (mips_function_value): Use the new macros to decide whether a single
15286         or complex float can be returned in floating-point registers.  Return
15287         a parallel rtx in the complex case.
15288
15289 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15290
15291         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
15292         call after liveness analysis.
15293
15294         * recog.c (split_insn): Use delete_insn_and_edges.
15295
15296         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
15297         instructions to have branch prediction notes.
15298         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
15299
15300 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
15301
15302         * configure.in: Don't pass -Wno-long-long to a ADA compiler
15303         that doesn't support it.
15304         * configure: Regenerate.
15305
15306 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15307
15308         PR target/5626
15309         * config/sparc/sparc.md (normal_branch, inverted_branch,
15310         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
15311         inverted_fp_branch): Adjust calls to output_cbranch.
15312         Set length attribute.
15313         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
15314         output_v9branch.  Set length attribute.
15315         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
15316         predicates.
15317         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
15318         (output_cbranch): Likewise.  Handle far branches.
15319         (output_v9branch): Handle far branches.
15320         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
15321         Adjust prototypes.
15322         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
15323         noov_compare64_op predicates.
15324
15325 2002-03-13  Jason Merrill  <jason@redhat.com>
15326
15327         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
15328         into the function and constify it.
15329         * gthr-dce.h, gthr-solaris.h: Likewise.
15330
15331 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
15332
15333         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
15334         * config/rs6000/rs6000.c (rs6000_va_arg): Use
15335         std_expand_builtin_va_arg if not ABI_V4.
15336
15337 2002-03-13  Jason Merrill  <jason@redhat.com>
15338
15339         * varasm.c (globalize_decl): New fn.
15340         (assemble_start_function): Use it.
15341         (asm_emit_uninitialized): Use it.
15342         (assemble_alias): Use it.
15343         (assemble_variable): Use it.
15344
15345 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
15346
15347         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
15348         2002-03-12 internal visibility change.
15349         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
15350         visibility into SYMBOL_REF_FLAG.
15351
15352 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
15353
15354         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
15355         VOIDmode operand.  Add compile-time optimization for constant results.
15356
15357 2002-03-12  Jason Merrill  <jason@redhat.com>
15358
15359         * c-typeck.c (convert_for_assignment): Don't allow conversions
15360         between pointers and references.  Only allow lvalues to convert to
15361         reference.
15362
15363 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
15364
15365         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
15366         before prologue, to avoid scheduling problems.
15367
15368 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15369
15370         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
15371         (ELIMINABLE_REGS): Add sfp->sp.
15372         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
15373
15374 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15375
15376         PR optimization/5892
15377         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
15378
15379 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
15380
15381         * loop.c (basic_induction_var): Don't call convert_modes if mode
15382         classes are different.
15383
15384 2002-03-12  Richard Henderson  <rth@redhat.com>
15385
15386         PR optimization/5901
15387         * function.c (reposition_prologue_and_epilogue_notes): Position
15388         the markers after/before the last/first insn not deleted.
15389
15390 2002-03-12  Richard Henderson  <rth@redhat.com>
15391
15392         PR optimization/5878
15393         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
15394         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
15395         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
15396
15397         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
15398         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
15399         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
15400
15401         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
15402         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
15403         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
15404         also.  Don't set it if not flag_pic.
15405         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
15406         to be INVALID_REGNUM when not used.
15407
15408 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
15409
15410         * expmed.c (store_bit_field): Reset alias set for memory.
15411         (extract_bit_field): Same.
15412
15413 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15414
15415         * c-common.c (c_tree_code_type, c_tree_code_length,
15416         c_tree_code_name, add_c_tree_codes): Delete.
15417         * c-common.h (add_c_tree_codes): Delete.
15418         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
15419         Define.
15420         * c-objc-common.c (c_objc_common_init): Don't call
15421         add_c_tree_codes, instead set lang_unsafe_for_reeval.
15422         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
15423         objc_tree_code_name, add_objc_tree_codes): Delete.
15424         (objc_init): Don't call add_objc_tree_codes.
15425         * objc/objc-lang.c (tree_code_type, tree_code_length,
15426         tree_code_name): Define.
15427         * toplev.c (lang_independent_init): Don't set
15428         tree_code_length[IDENTIFIER_NODE].
15429         * tree.c (tree_code_type, tree_code_length, tree_code_name):
15430         Delete definitions, moved to language front-ends.
15431         * tree.def (IDENTIFIER_NODE): Hardwire the length.
15432         * tree.h (tree_code_type, tree_code_length, tree_code_name):
15433         Const-ify.
15434         (tree_code_length): Change type to unsigned char.
15435
15436 2002-03-12  Richard Henderson  <rth@redhat.com>
15437
15438         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
15439         internal visibility change.
15440
15441 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15442
15443         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
15444         validize_mem() instead of change_address to avoid clobbering
15445         memory attributes.
15446
15447 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
15448
15449         * c-lex.h (position_after_whitespace): Remove.
15450
15451 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
15452
15453         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
15454         (lex_string): Use unsigned char pointers.
15455
15456 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
15457
15458         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
15459         is not a valid memory_operand.
15460
15461 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15462
15463         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
15464         * config/xtensa/lib1funcs.asm: Fix copyright to include
15465         special case for libgcc files.
15466         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
15467         (__divsi3): Likewise.
15468         (__umodsi3): Likewise.
15469         (__modsi3): Likewise.
15470         * config/xtensa/lib2funcs.S: Fix copyright to include
15471         special case for libgcc files.
15472
15473 2002-03-12  Tom Rix  <trix@redhat.com>
15474
15475         * collect2.c (resolve_lib_name): Move outside of
15476         OBJECT_FORMAT_COFF ifdef.
15477         (ignore_library): Same.
15478
15479 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15480
15481         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
15482
15483 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
15484
15485         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
15486         to function_section before writing out the constant pool.
15487
15488 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
15489
15490         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
15491         zero_constant.
15492         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
15493
15494 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
15495
15496         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
15497         (adddi3): Likewise.
15498         (movdf): Likewise.
15499         (movdi): Likewise.
15500         (cmpsi splitter): Likewise.
15501         (modsi3): Fail if <= 0.
15502         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
15503         redundant test when HOST_BITS_PER_WIDE_INT != 32.
15504         (reg_or_sub_cint64_operand): Likewise.
15505         (num_insns_constant_wide): Optimize sign extension.
15506         (rs6000_legitimize_address): Likewise.
15507
15508 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
15509
15510         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15511         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15512
15513 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
15514
15515         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
15516         address calculation.
15517
15518 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
15519
15520         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
15521         scratch register to DImode / TImode.
15522         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
15523         register used does not overlap the target.
15524
15525 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15526
15527         * Makefile.in (debug.o): Depend on debug.h.
15528         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
15529         * debug.c (do_nothing_debug_hooks): Likewise.
15530         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
15531         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
15532         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
15533         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15534         * dwarfout.c (dwarf_debug_hooks): Likewise.
15535         * integrate.c (output_inline_function): Likewise.
15536         * objc/objc-act.c (synth_module_prologue): Likewise.
15537         * sdbout.c (sdb_debug_hooks): Likewise.
15538         * toplev.c (debug_hooks): Likewise.
15539         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15540
15541 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15542
15543         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
15544         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
15545         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
15546         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
15547         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
15548         * defaults.h (POINTER_SIZE): Define.
15549         * doc/tm.texi (POINTER_SIZE): Document default.
15550
15551 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15552
15553         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
15554
15555 2002-03-11  Richard Henderson  <rth@redhat.com>
15556
15557         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
15558         if rebuild_label_notes_after_reload.
15559
15560 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
15561
15562         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
15563         emit pic register load if "internal" visibility.
15564         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
15565         (cris_expand_builtin_va_arg): Do all computations on trees.
15566
15567 2002-03-11  Richard Henderson  <rth@redhat.com>
15568
15569         * rtlanal.c: Include recog.h.
15570         (keep_with_call_p): Fix thinko.
15571         * Makefile.in (rtlanal.o): Update dependencies.
15572
15573 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
15574
15575         * genflags.c (gen_insn): Use IS_VSPACE.
15576         * genoutput.c (output_insn_data): Likewise.
15577         (process_template): Likewise.
15578
15579 2002-03-11  Richard Henderson  <rth@redhat.com>
15580
15581         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
15582
15583 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
15584
15585         * Makefile.in: Update.
15586         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
15587         Update documentation.
15588         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
15589         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
15590
15591 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
15592
15593         * Makefile.in: Give texi2pod its input file as a command line
15594         argument, not on stdin.
15595
15596 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
15597             Daniel Berlin  <dan@dberlin.org>
15598
15599         C++ alias analysis improvement.
15600         * alias.c (record_component_aliases): Record aliases for base
15601         classes too.
15602
15603 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
15604
15605         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
15606
15607 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
15608
15609         * toplev.c (vms_fopen): Remove, not needed.
15610
15611         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
15612
15613         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
15614
15615         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
15616         for FP, already done later.
15617
15618         * toplev.c (debug_args): Add entry for VMS_DEBUG.
15619         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
15620
15621 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
15622
15623         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
15624         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
15625         LARGEST_EXPONENT_IS_NORMAL for the given mode.
15626         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
15627         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
15628         (ediv, emul, eldexp, esqrt): Likewise.
15629         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
15630         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
15631         (saturate): New function.
15632         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
15633         (make_nan): Use a saturation value instead of a NaN if
15634         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
15635         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
15636         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
15637         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
15638         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
15639         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
15640         !ROUND_TOWARDS_ZERO.
15641         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
15642         (ROUND_TOWARDS_ZERO): Document.
15643
15644 2002-03-11  Andreas Jaeger  <aj@suse.de>
15645
15646         * cfg.c (dump_flow_info): Remove unused variable.
15647
15648 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
15649
15650         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
15651         computations on trees.
15652
15653 2002-03-10  Richard Henderson  <rth@redhat.com>
15654
15655         PR 5693:
15656         * reload.c (copy_replacements_1): New.
15657         (copy_replacements): Use it to recurse through the rtx.
15658
15659 2002-03-10  Richard Henderson  <rth@redhat.com>
15660
15661         * loop.c (strength_reduce): Compute number of iterations as
15662         unsigned HOST_WIDE_INT.
15663
15664 2002-03-10  Richard Henderson  <rth@redhat.com>
15665
15666         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
15667         to move away from the end of the block.
15668
15669 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
15670
15671         PR preprocessor/5899
15672         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
15673
15674 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15675
15676         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
15677
15678         * attribs.c (decl_attributes): Fix signed/unsigned warning.
15679
15680 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
15681
15682         * config/mmix/mmix.c: Improve comments.
15683         (mmix_target_asm_function_prologue): Drop variable
15684         empty_stack_frame.  Don't allocate unused slot above fp.
15685         (mmix_target_asm_function_epilogue): Mirror prologue changes.
15686         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
15687         brace in first column.
15688         (enum reg_class): Ditto.
15689         (FIRST_PARM_OFFSET): Now 0.
15690         (USER_LABEL_PREFIX): Remove #if 0:d definition.
15691
15692 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15693
15694         * combine.c (make_extraction): Fix error in last change.
15695
15696 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15697
15698         * c4x.c (c4x_fp_reglist): Const-ify.
15699         * cris.c (cris_print_operand): Likewise.
15700         * i386.c (ix86_va_arg): Likewise.
15701         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
15702         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
15703         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
15704         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
15705         * mcore.h (regno_reg_class): Likewise.
15706         * mips.c (gen_int_relational): Likewise.
15707         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
15708         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
15709         * pdp11.c (move_costs): Likewise.
15710         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
15711         * s390.c (s390_branch_condition_mnemonic, regclass_map):
15712         Likewise.
15713         * s390.h (regclass_map): Likewise.
15714         * sh.c (shift_amounts): Likewise.
15715         * sh.md (rotlsi3): Likewise.
15716
15717 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
15718
15719         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
15720         (ne0+5): Use new clobber to generate proper shift pattern.
15721         Patch by Michael Matz <matz@kde.org>.
15722
15723 2002-03-09  Andreas Schwab  <schwab@suse.de>
15724
15725         * gcc.c (validate_all_switches): Also handle `%W{...}'.
15726
15727 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
15728
15729         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
15730
15731 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
15732
15733         PR middle-end/5877
15734         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
15735         even for non-representable constants.
15736
15737 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15738
15739         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
15740         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
15741         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
15742         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
15743         (pop_function_context): Compute MAY_SHARE parameter for
15744         fixup_var_refs.
15745         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
15746         (gen_mem_addressof): Call fixup_var_refs with new parm.
15747
15748         * combine.c (make_extraction): Don't make extension of CONST_INT.
15749
15750 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
15751
15752         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
15753         in o32 and o64 ABIs.
15754         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
15755         but getting fixed-size structs passed in registers regardless of
15756         padding in o32 and o64 ABIs.
15757
15758         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
15759         offset before loading address of argument passed by transparent
15760         reference.
15761
15762 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15763
15764         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
15765
15766 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
15767
15768         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
15769         marker such that registers after it are saved.
15770
15771 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15772
15773         * sparc.c (arith_4096_operand): Fix error in last change.
15774
15775 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
15776
15777         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
15778         defaults for MEABI.
15779
15780 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
15781
15782         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
15783         vectors.
15784
15785 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
15786
15787         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
15788
15789 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
15790
15791         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
15792         removed; fix return value.
15793         * combine.c (combine_instructions): Dirtify blocks where we failed to
15794         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
15795         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
15796
15797 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15798
15799         * gcse.c (insert_insn_end_bb): Fix typo in last change.
15800
15801 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
15802
15803         * recog.c (peephole2_optimize): Re-distribute EH edges.
15804
15805 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
15806
15807         * expr.c (expand_expr): Use unsave lang hook.
15808         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
15809         (LANG_HOOKS_INITIALIZER): Update.
15810         * langhooks.h (struct lang_hooks): New hook unsave.
15811         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
15812         (unsave_expr_1): Remove unused lang_unsave_expr_now.
15813         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
15814         (unsave_expr_now): Remove.
15815         * tree.h (unsave_expr_now, lang_unsave,
15816         lang_unsave_expr_now): Remove.
15817         (lhd_unsave): New.
15818
15819 2002-03-08  Andreas Jaeger  <aj@suse.de>
15820
15821         * flow.c (propagate_block_delete_insn): Remove unused variable.
15822
15823 2002-03-08  Kazu Hirata  <kazu@hxi.com>
15824
15825         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
15826         insn length for memory load/store.
15827
15828 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15829
15830         * doc/install.texi (--with-libiconv-prefix): Document.
15831
15832 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
15833
15834         * doc/sourcebuild.texi: Fix typo.
15835
15836 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
15837
15838         PR c/3711
15839         * builtins.c (std_expand_builtin_va_arg): Do all computations on
15840         trees.
15841
15842 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15843
15844         * rtl.c (copy_most_rtx): Move from here ...
15845         * emit-rtl.c (copy_most_rtx): ... to here.
15846
15847 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
15848
15849         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
15850         SUBTARGET_CPP_SIZE_SPEC.
15851         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
15852
15853         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
15854
15855 2002-03-07  Matt Hiller  <hiller@redhat.com>
15856
15857         * gensupport.c (first_dir_md_include): Renamed from include;
15858         change all references.
15859         (last_dir_md_include): Renamed from last_include; change all
15860         references.
15861         (init_md_reader): Unconditionally initialize base_dir whether or
15862         not filename is a relative path.
15863
15864 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
15865
15866         * config/fp-bit.c (_unord_f2): Compile it in even if
15867         US_SOFTWARE_GOFAST is enabled.
15868
15869         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
15870         NULL_RTX.  Set all HFmode operations as NULL_RTX.
15871         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
15872         NULL_RTX, try reversing the comparison and the operands.
15873
15874 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
15875
15876         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
15877         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
15878         and MATCH_OP_DUP.
15879
15880 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
15881
15882         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
15883
15884 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15885
15886         * basic-block.h (fixup_abnormal_edges): Declare.
15887         * reload1.c (fixup_abnormal_edges): New function.
15888         * reg-stack.c (convert_regs): Use it.
15889
15890         * gcse.c (insert_insn_end_bb): Handle trapping insns.
15891
15892         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
15893
15894 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
15895
15896         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
15897         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
15898         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
15899         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
15900         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
15901         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
15902         unless x and y could be infinite.
15903         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
15904         Check that the common type of both arguments is a real, even for
15905         targets without unordered comparisons.  Allow an integer argument
15906         to be compared against a real.
15907         (expand_tree_builtin): Use expand_unordered_cmp.
15908         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
15909         * cse.c (fold_rtx): Likewise.  Fix indentation.
15910         * fold-const.c (fold_real_zero_addition_p): New.
15911         (fold): Use it, and the new HONOR_... macros.
15912         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
15913         * jump.c (reversed_comparison_code_parts): After searching for
15914         the true comparison mode, use HONOR_NANS to decide whether it
15915         can be safely reversed.
15916         (reverse_condition_maybe_unordered): Remove IEEE check.
15917         * simplify-rtx.c (simplify_binary_operation): Use the new macros
15918         to decide which simplifications are valid.  Allow the following
15919         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
15920         and (a - -b) to (a + b).
15921         (simplify_relational_operation): Use HONOR_NANS.
15922         * doc/tm.texi: Document the MODE_HAS_... macros.
15923
15924 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
15925
15926         * combine.c (simplify_comparison): If simplifying a logical shift
15927         right and compare with constant, force the comparison to unsigned.
15928
15929 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
15930
15931         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
15932
15933         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
15934         -mabi=no-altivec
15935         (alt_reg_names): Remove % for vrsave.
15936
15937 2002-03-06  Richard Henderson  <rth@redhat.com>
15938
15939         PR optimization/5844
15940         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
15941         if used indicates we've already emitted one copy of an operand.
15942         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
15943         (gen_split): Supply a non-null used.
15944
15945 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
15946
15947         * reload1.c (reload): Unshare all rtl after reload is done.
15948
15949         * simplify-rtx.c (simplify_plus_minus): Do not abort,
15950         but simply fail if the expression is too complex to simplify.
15951         (simplify_gen_binary): Handle simplify_plus_minus failures.
15952
15953 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
15954
15955         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
15956         consistently call delete_trivially_dead_insns after CSE and GCSE;
15957         fix DFI_life dumping; do jump threading after liveness; do crossjumping
15958         after liveness2; update comment in last crossjumping.
15959         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
15960
15961 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
15962
15963         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
15964         after completing fast dead code elimination.
15965
15966         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
15967         COMPARE operator.
15968
15969 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
15970
15971         * version.c:  Fix misplaced leading blanks on first line.
15972
15973 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
15974
15975         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
15976
15977 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
15978
15979         * cfgcleanup.c (mentions_nonequal_regs): New function.
15980         (thread_jump): Use it.
15981         * toplev.c (rest_of_compilation): Run jump threading after
15982         liveness.
15983
15984 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
15985
15986         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
15987         patch.
15988
15989 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
15990
15991         * predict.c (estimate_bb_frequencies): Do not reload the
15992         frequencies from notes.
15993
15994 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
15995
15996         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
15997         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
15998
15999         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
16000         delete_noop_moves): Return indeger.
16001         * flow.c (ndead): New variable.
16002         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
16003         BB argument; update callers.
16004         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
16005         (life_analysis): Do not call purge_all_dead_edges.
16006         (update_life_info): Return number of deleted insns; print statistics.
16007         (update_life_info_in_dirty_blocks): likewise.
16008         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
16009         return number of insns deleted.
16010
16011         * cse.c: Include timevar.h
16012         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
16013         iterate until stabilizes; print statistics; return number of killed
16014         insns.
16015         * Makefile.in: (cse.o): Add timevar.h dependency
16016         * rtl.h (delete_trivially_dead_insns): New.
16017         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
16018         * toplev.c (rest_of_compilation): Update callers.
16019
16020         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
16021         (try_optimize_cfg): Do not update liveness.
16022         (cleanup-cfg): Loop until try_optimize_cfg and dead code
16023         removal stabilizes; use delete_trivially_dead_insns.
16024
16025         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
16026
16027 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
16028
16029         * cppmain.c (setup_callbacks): Disable #pragma and #ident
16030         callbacks when processing assembly language.
16031
16032 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16033
16034         * pa.h (ASM_FILE_END): Define.
16035         * som.h (ASM_FILE_END): Delete.
16036
16037         * pa.c (function_arg): Don't pass floats in general registers in
16038         indirect calls if TARGET_ELF32.
16039
16040 2002-03-05  Richard Henderson  <rth@redhat.com>
16041
16042         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
16043
16044 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
16045
16046         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
16047
16048 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16049
16050         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
16051         -r command line.  Don't hide any symbols if not building
16052         shared libgcc.
16053
16054 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
16055
16056         * cfg.c (dump_flow_info): Warn about profile mismatches.
16057         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
16058         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
16059
16060 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16061
16062         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
16063         wide volatile memory by parts.
16064
16065 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16066
16067         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
16068         is NULL.
16069
16070 2002-03-05  Richard Henderson  <rth@redhat.com>
16071
16072         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
16073
16074 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16075
16076         * toplev.c (documented_lang_options): Document more
16077         language-specific options.
16078         * doc/invoke.texi (Warning Options): Correct documentation for
16079         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
16080         * c-decl.c (c_decode_option): Use a table to handle warning options.
16081
16082 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
16083
16084         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
16085         parameter to mmix_encode_section_info.
16086         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
16087         relocatably.  Always produce ELF, not mmo if linking relocatably.
16088         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
16089         first is non-zero, don't add symbol prefix.
16090         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
16091         prototype accordingly.
16092
16093 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
16094
16095         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
16096
16097 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
16098
16099         * configure.in: Increase required makeinfo version to 4.1.
16100         * configure: Regenerate.
16101
16102 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16103
16104         * .cvsignore: Remove *.info* and genrtl*; these files are generated
16105         elsewhere now.
16106
16107 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
16108
16109         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
16110         * doc/invoke.texi: Fix @math uses.
16111
16112 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
16113
16114         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
16115         removal
16116
16117 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
16118
16119         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
16120         (powerpc-*-eabisimaltivec*): Same.
16121
16122         * config/rs6000/t-ppcendian: New.
16123
16124 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16125
16126         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
16127         nonimmediate_src_operand and nonimmediate_lsrc_operand to
16128         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
16129
16130 2002-03-03  Richard Henderson  <rth@redhat.com>
16131
16132         * toplev.c (rest_of_decl_compilation): Revert last two changes.
16133
16134 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
16135
16136         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
16137         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
16138         tree.c, config/m68k/m68k.c:
16139         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
16140         REAL_ARITHMETIC blocks unconditional.  Delete some further
16141         #ifdef blocks predicated on REAL_ARITHMETIC.
16142         * flags.h, toplev.c: Delete remaining references to
16143         flag_pretend_float.
16144
16145         * doc/invoke.texi: Remove documentation of -fpretend-float.
16146         * doc/tm.texi: Describe the various REAL_* macros as provided by
16147         real.h, not by the target configuration files.
16148
16149         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
16150         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
16151         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16152         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
16153         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
16154         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
16155         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
16156         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
16157         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
16158         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
16159         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
16160         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
16161         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
16162         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
16163         config/xtensa/xtensa.h:
16164         Do not define, undefine, or mention in comments any of
16165         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
16166         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
16167         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
16168         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
16169         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
16170         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
16171         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
16172         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
16173         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
16174
16175 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16176
16177         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
16178         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
16179         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
16180         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
16181         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
16182         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
16183         Delete.
16184         * defaults.h (BITS_PER_WORD): Define.
16185         * doc/tm.texi (BITS_PER_WORD): Document default value.
16186
16187         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
16188         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
16189         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
16190
16191 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16192
16193         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
16194         lieu of explicit sizeof/sizeof.
16195         * i386.c (override_options, ix86_init_mmx_sse_builtins,
16196         ix86_expand_builtin): Likewise.
16197         * mips.c (mips_add_gc_roots): Likewise.
16198         * mmix.c (mmix_output_condition): Likewise.
16199         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
16200         altivec_init_builtins): Likewise.
16201         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
16202         * cppexp.c (Nsuff, parse_number): Likewise.
16203         * cppinit.c (builtin_array_end): Likewise.
16204         * gcc.c (n_default_compilers, process_command): Likewise.
16205         * genpreds.c (output_predicate_decls): Likewise.
16206         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
16207         * lcm.c (N_ENTITIES): Likewise.
16208         * stor-layout.c (set_sizetype): Likewise.
16209
16210 2002-03-03  Richard Henderson  <rth@redhat.com>
16211
16212         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
16213         for types or labels.
16214
16215 2002-03-03  Richard Henderson  <rth@redhat.com>
16216
16217         * c-decl.c (start_decl): Initialized variables are not common.
16218
16219 2002-03-02  Per Bothner  <per@bothner.com>
16220
16221         * gcc.c (option_map):  Suport new --bootclasspath option.
16222         --CLASSPATH is now just an alias for --classpath.
16223
16224 2002-03-02  Richard Henderson  <rth@redhat.com>
16225
16226         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
16227         load if "internal" visibility.
16228         * doc/extend.texi: Document visibility meanings.
16229
16230 2002-03-02  Richard Henderson  <rth@redhat.com>
16231
16232         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
16233         to functions as well.
16234
16235 2002-03-02  Richard Henderson  <rth@redhat.com>
16236
16237         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
16238         (handle_visibility_attribute): Don't call assemble_visibility.
16239         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
16240         without asmspec.  Invoke assemble_alias when needed.
16241         * varasm.c (maybe_assemble_visibility): New.
16242         (assemble_start_function, assemble_variable, assemble_alias): Use it.
16243
16244 2002-03-02  Richard Henderson  <rth@redhat.com>
16245
16246         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
16247         invoke ENCODE_SECTION_INFO with first call flag.
16248
16249         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
16250         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
16251         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
16252         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
16253         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
16254         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
16255         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
16256         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
16257         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
16258         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
16259         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
16260         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
16261         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
16262         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
16263         config/mcore/mcore-protos.h, config/mcore/mcore.c,
16264         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
16265         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
16266         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
16267         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
16268         config/sh/sh.h, config/sparc/sparc.h,
16269         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
16270         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
16271         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
16272         FIRST argument.  As needed, examine it and do nothing.
16273
16274         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
16275         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16276         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
16277
16278         * config/arm/t-pe (pe.o): Add dependencies.
16279
16280 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16281
16282         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
16283         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
16284         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
16285         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
16286         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
16287         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
16288         * defaults.h (BITS_PER_UNIT): Define.
16289         * doc/tm.texi (BITS_PER_UNIT): Document default value.
16290
16291 2002-03-02  Kazu Hirata  <kazu@hxi.com>
16292
16293         * config/h8300/h8300-protos.h: Add a prototype for
16294         compute_a_shift_length.
16295         * config/h8300/h8300.c (h8300_asm_insn_count): New.
16296         (compute_a_shift_length): Likewise.
16297         (h8300_adjust_insn_length): Do not adjust insn length of shift
16298         insns.
16299         * config/h8300/h8300.md (anonymous shift patterns): Use
16300         compute_a_shift_length.
16301
16302 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16303
16304         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
16305         trunc_int_for_mode.
16306
16307         * emit-rtl.c (offset_address): Call update_temp_slot_address.
16308
16309 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16310
16311         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
16312         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
16313         * flags.h (flag_zero_initialized_in_bss): Declare.
16314         * toplev.c (flag_zero_initialized_in_bss): New flag.
16315         (lang_independent_options): Add flag_zero_initialized_in_bss.
16316         * tree.c (initializer_zerop): New function.
16317         * tree.h (initializer_zerop): Declare.
16318         * varasm.c (assemble_variable): If we can emit bss, put zero
16319         initializers in the bss section.
16320
16321 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
16322
16323         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
16324         like more than one symbol per .weak directive.
16325
16326 2002-03-01  Richard Henderson  <rth@redhat.com>
16327
16328         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
16329         adjust argument_pointer by pretend_args_size.
16330         (ia64_va_start): Adjust va_start address by -pretend_args_size.
16331
16332 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16333
16334         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
16335
16336 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
16337
16338         * toplev.c (rest_of_compilation): Delete dead jumptables before
16339         loop.
16340         * flow.c (delete_dead_jumptables): Make global.
16341         * rtl.h (delete_dead_jumptables): Declare.
16342
16343 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
16344
16345         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
16346         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
16347         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
16348
16349 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16350
16351         * config/h8300/h8300-protos.h: Fix formatting.
16352         * config/h8300/h8300.c: Likewise.
16353         * config/h8300/h8300.h: Likewise.
16354
16355 2002-03-01  Kazu Hirata  <kazu@hxi.com>
16356
16357         * config/h8300/h8300.c (print_operand): Support 16-bit
16358         constant addresses.
16359         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
16360
16361 2002-02-28  Richard Henderson  <rth@redhat.com>
16362
16363         * expmed.c (store_bit_field): Prevent generation of CONCATs;
16364         pun complex values as integers; use gen_lowpart instead of
16365         gen_rtx_SUBREG.
16366         (extract_bit_field): Likewise.
16367
16368 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
16369             David Edelsohn  <edelsohn@gnu.org>
16370
16371         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
16372         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
16373         (SUPPORTS_WEAK): Likewise.
16374         * output.h (add_weak): Add tree param.
16375         * varasm.c (add_weak): Likewise.  Save decl.
16376         (struct weak_syms): Add decl field.
16377         (mark_weak_decls): New function.
16378         (init_varasm_once): ggc_add_root mark_weak_decls.
16379         (assemble_start_function): Use ASM_WEAKEN_DECL.
16380         (assemble_variable): Likewise.
16381         (assemble_alias): Likewise.
16382         (declare_weak): Pass decl to add_weak.
16383         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
16384         (remove_from_pending_weak_list): Declare and define for
16385         ASM_WEAKEN_DECL.
16386         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
16387         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
16388         * defaults.h (SUPPORTS_WEAK): Likewise.
16389         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
16390         .weak for code sym.  Do emit .size for descriptor sym.
16391         (ASM_DECLARE_FUNCTION_SIZE): Define.
16392         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
16393         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
16394         .lglobl unless TARGET_XCOFF.  Formatting fixes.
16395         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
16396         .weak for code sym.
16397         (HANDLE_PRAGMA_WEAK): Remove.
16398         (ASM_WEAKEN_LABEL): Remove.
16399         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
16400
16401 2002-03-01  Jason Merrill  <jason@redhat.com>
16402
16403         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
16404         (TARGET_EXPR_CLEANUP): New macro.
16405
16406 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
16407
16408         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
16409         to take ptr_extend into account as third type of extension.
16410         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
16411         fields used by SUBREG_PROMOTED_UNSIGNED_P.
16412         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
16413         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
16414         * calls.c (precompute_arguments): Use new macro.
16415         (expand_call): Ditto.
16416         * combine.c (nonzero_bits): Ditto.
16417         (record_promoted_value): Ditto.
16418         * expr.c (store_expr): Ditto.
16419         (expand_expr): Ditto.
16420         * function.c (assign_parms): Ditto.
16421
16422 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
16423
16424         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
16425         override -shared and -shared-libgcc.
16426
16427 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
16428
16429         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
16430         of "ultrasparc".
16431         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
16432         to be broken.
16433
16434 2002-02-28  Richard Henderson  <rth@redhat.com>
16435
16436         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
16437         4 cycle latency from MM producers.
16438         (ia64_internal_sched_reorder): Likewise with pipeline flush.
16439
16440 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
16441
16442         * mklibgcc.in: Don't use GNU make extension.
16443
16444 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
16445
16446         * c-parse.in (STATIC): New terminal.
16447         (scspec): New non-terminal.  Update productions accordingly.
16448         (program): Remove bogus ifc / end ifc.
16449         (array_declarator): Simplify production using STATIC.
16450
16451 2002-02-28  Jim Meyering  <meyering@lucent.com>
16452
16453         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
16454         \a still means TARGET_BELL.
16455
16456 2002-02-28  Richard Henderson  <rth@redhat.com>
16457
16458         * haifa-sched.c (sched_emit_insn): New.
16459         (schedule_block): Use last_scheduled_insn to track last insn.
16460         * sched-int.h (sched_emit_insn): Prototype.
16461         * config/ia64/ia64.c (last_issued): Remove.
16462         (ia64_variable_issue): Don't set it.
16463         (nop_cycles_until): Use sched_emit_insn.
16464
16465 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
16466
16467         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
16468         extended constants.
16469
16470 2002-02-28  Kazu Hirata  <kazu@hxi.com>
16471
16472         * config/h8300/h8300.c: Fix formatting.
16473         * config/h8300/h8300.h: Likewise.
16474
16475 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16476
16477         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
16478         which may overwrite the high byte of the frame pointer.
16479
16480 2002-02-28  Bo Thorsen  <bo@suse.de>
16481
16482         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
16483         (STARTFILE_SPEC): Add 64 bit files.
16484         (ENDFILE_SPEC): Likewise.
16485
16486 2002-02-28  Jason Merrill  <jason@redhat.com>
16487
16488         * c-decl.c (finish_function): Only warn about missing return
16489         statement with -Wreturn-type.
16490
16491 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
16492
16493         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
16494
16495         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
16496         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
16497
16498 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
16499
16500         * basic-block.h (BB_REACHABLE): Renumber.
16501         (BB_DIRTY, BB_NEW): New flags.
16502         (clear_bb_flags): Declare.
16503         (update_life_info_in_dirty_blocks): Declare.
16504         * cfg.c (clear_bb_flags): New function.
16505         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
16506         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
16507         reorder_insns, emit_insn_after): Mark block as dirty.
16508         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
16509         (update_life_info_in_dirty_blocks): New function.
16510         * recog.c (apply_change_group): Dirtify block.
16511
16512         * cse.c (cse_insn): Reorder emitting of jump insn to keep
16513         cfg consistent.
16514         * gcse.c (delete_null_pointer_checks): Likewise.
16515
16516         * toplev.c (dump_file_index): Move cse2 after bp,
16517         add DFI_null
16518         (dump_file_info): Similary.
16519         (rest_of_compilation): Avoid most of CFG rebuilds;
16520         do first if converision after null pointer checks, do cse2
16521         after branch prediction; avoid full liveness rebuild after
16522         initializing subregs.
16523         * invoke.texi (-d options): Document -du, renumber.
16524
16525         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
16526         (notice_new_block): Do not set BB_UPDATE_LIFE.
16527         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
16528          merge_blocks_move_successor_nojumps, merge_blocks,
16529          try_crossjump_to_edge): Likewise.
16530         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
16531         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
16532         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
16533         (merge_of_block): Do not use life_data_ok.
16534         (find_if_case_1): Do not use SET_UPDATE_LIFE.
16535         (if_convert): Use BB_DIRTY mechanizm to update life.
16536         * lcm.c (optimize_mode_switching): Update
16537         update_life_info_in_dirty_blocks
16538
16539 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
16540
16541         * Makefile.in (integrate.o): Update.
16542         * c-decl.c (copy_lang_decl): Rename.
16543         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
16544         * integrate.c: Include langhooks.h.
16545         (copy_decl_for_inlining): Update to use langhook.
16546         * langhooks-def.h (lhd_do_nothing_t,
16547         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
16548         (LANG_HOOKS_INITIALIZER): Update.
16549         * langhooks.c (lhd_do_nothing_t): New.
16550         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
16551         * tree.h (copy_lang_decl): Remove.
16552 objc:
16553         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
16554
16555 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
16556
16557         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
16558         POST_DEC, and POST_MODIFY.
16559
16560 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16561
16562         * c-typeck.c (digest_init): Remove unused parameter; all
16563         callers changed.
16564
16565 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
16566
16567         * expmed.c (expand_shift): Correctly test for low part of a
16568         subreg.
16569
16570 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
16571
16572         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
16573         insn UIDs with insn addresses.
16574
16575 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16576
16577         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
16578         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
16579         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
16580         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
16581         gcc.c, toplev.c: Delete code implementing -traditional mode.
16582
16583         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
16584         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
16585         Document removal of -traditional mode for compilation, and
16586         remove documentation only relevant to that mode.
16587
16588         * config/nextstep.h, config/ptx4.h, config/svr4.h,
16589         config/convex/convex.h, config/d30v/d30v.h,
16590         config/i386/dgux.h, config/i386/osf1elf.h,
16591         config/i386/osfelf.h, config/i386/osfrose.h,
16592         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
16593         config/m68k/hp310.h, config/m88k/dgux.h,
16594         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
16595         config/m88k/m88k.h, config/m88k/openbsd.h,
16596         config/mips/abi64.h, config/mips/osfrose.h,
16597         config/mips/svr4-5.h, config/mips/svr4-t.h,
16598         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
16599         config/stormy16/stormy16.h: Remove all references to
16600         -traditional from target specs.  Delete all mention of the
16601         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
16602         delete a couple of commented-out definitions of
16603         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
16604         to -traditional.
16605
16606         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
16607         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
16608
16609 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
16610
16611         * mklibgcc.in: Don't use \n in a line subject to
16612         interpretation by echo.
16613
16614 2002-02-27  Graham Stott  <grahams@redhat.com>
16615
16616         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
16617         Constify NAME.
16618
16619         * loop.c (prescan_loop): Handle PARALLEL.
16620
16621         * unroll.c (loop_iterations): Return 0 if the add_val for
16622         a BIV is REG.
16623
16624         * final.c (output_operand_lossage): Constify PFX_STR.
16625
16626         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
16627
16628 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
16629
16630         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
16631         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
16632
16633 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
16634
16635         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16636
16637 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
16638
16639         * cpplex.c (_cpp_lex_token): Handle directives in macro
16640         arguments.
16641         * cpplib.c (_cpp_handle_directive): Save and restore state
16642         if parsing macro args when entering a directive.
16643         * cppmacro.c (collect_args): No need to handle directives
16644         in macro arguments.
16645         (enter_macro_context, replace_args): Use the original macro
16646         definition in case it was redefined whilst collecting arguments.
16647 doc:
16648         * cpp.texi: Update.
16649
16650 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
16651
16652         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
16653         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
16654         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
16655         method on AIX.
16656         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
16657         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
16658         (load_toc_v4_PIC_2): Same.
16659
16660 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
16661
16662         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
16663
16664 2002-02-26  Richard Henderson  <rth@redhat.com>
16665
16666         * config/alpha/alpha.md (ashldi_se): Re-enable.
16667
16668 2002-02-26  Richard Henderson  <rth@redhat.com>
16669
16670         * config/alpha/alpha.c (alpha_encode_section_info): Examine
16671         MODULE_LOCAL_P; improve commentary.
16672
16673 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
16674
16675         * doc/cpp.texi: Clarify documentation of relationship between
16676         #line and #include.
16677
16678 2002-02-26  Kazu Hirata  <kazu@hxi.com>
16679
16680         * config/h8300/h8300-protos.h: Update the prototype for
16681         compute_logical_op_length.  Add the prototype for
16682         compute_logical_op_cc.
16683         * config/h8300/h8300.c (compute_logical_op_length): Figure out
16684         code from operands.
16685         (compute_logical_op_cc): New.
16686         * config/h8300/h8300.md: Combine all the logical op patterns
16687         in HImode and SImode.  Use compute_logical_op_cc.
16688
16689 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
16690
16691         * config/i386/i386.c (print_operand): Don't append ATT-style
16692         length suffixs to x87 opcodes when in Intel mode.
16693
16694 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
16695
16696         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
16697         (init_emit_once): Update calls.
16698         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
16699         (init_syntax_once): Prototype.
16700
16701 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16702
16703         * pa-linux.h (LIB_SPEC): Update definition.
16704         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
16705
16706 2002-02-26  Richard Henderson  <rth@redhat.com>
16707
16708         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
16709         if we emitted a stop bit.
16710
16711 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16712
16713         * configure.in (libgcc_visibility): Substitute.
16714         * configure: Rebuilt.
16715         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
16716         defined symbols .hidden.
16717
16718 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16719
16720         * attribs.c (c_common_attribute_table): Add visibility.
16721         (handle_visibility_attribute): New function.
16722         * varasm.c (assemble_visibility): New function.
16723         * output.h (assemble_visibility): Add prototype.
16724         * tree.h (MODULE_LOCAL_P): Define.
16725         * crtstuff.c (__dso_handle): Use visibility attribute.
16726         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
16727         for MODULE_LOCAL_P symbols too.
16728         * config/ia64/ia64.c (ia64_encode_section_info): Handle
16729         MODULE_LOCAL_P symbols the same way as local symbols.
16730         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
16731         into .sdata/.sbss by the user.
16732         * doc/extend.texi (Function Attributes): Document visibility
16733         attribute.
16734
16735 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
16736
16737         PR debug/5770
16738         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
16739         STRING_CST initializer spanning the whole variable without
16740         embedded zeros.
16741         If expand_expr returned MEM, don't use it.
16742
16743 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
16744
16745         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
16746         generate a die for the lexical block.
16747
16748 2002-02-26  Kazu Hirata  <kazu@hxi.com>
16749
16750         * config/h8300/h8300-protos.h: Add a prototype for
16751         compute_logical_op_length.
16752         * config/h8300/h8300.c (compute_logical_op_length): New.
16753         * config/h8300/h8300.md (anonymous logical patterns): Use
16754         compute_logical_op_length for length.
16755
16756 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16757
16758         * dwarf2out.c (modified_type_die): Do not call type_main_variant
16759         for vectors.
16760         (gen_type_die): Same.
16761
16762         * attribs.c (handle_vector_size_attribute): Set debug information.
16763
16764 2002-02-26  Daniel Egger  <degger@fhm.edu>
16765
16766         * config/rs6000/rs6000.md: Swap define_insn attributes to
16767         fix incorrect generation of merge high instructions instead
16768         of merge low.
16769
16770 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16771
16772         * c-typeck.c (really_start_incremental_init): Use
16773         bitsize_zero_node for vectors.
16774
16775 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
16776
16777         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
16778         ("*set_vrsave_internal"): Same.
16779
16780 2002-02-25  Richard Henderson  <rth@redhat.com>
16781
16782         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
16783         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
16784
16785 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
16786
16787         PR target/5755
16788         * config/i386/i386.c (ix86_return_pops_args): Only pop
16789         fake structure return argument if it was passed on the stack.
16790
16791 2002-02-25  Jason Merrill  <jason@redhat.com>
16792
16793         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
16794         RESULT_DECL.
16795
16796 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
16797
16798         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
16799         link with shared_name only.
16800         * doc/invoke.texi (Link Options): Document new behavior.
16801
16802 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
16803
16804         * c-typeck.c (push_init_level): Handle vectors.
16805
16806 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
16807
16808         * config/sparc/sparc.c (const64_high_operand): Zero-extend
16809         operands of SPARC_SETHI_P.
16810         (input_operand): Likewise.
16811         (sparc_emit_set_const32): Likewise.
16812         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
16813         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
16814         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
16815         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
16816         (movdi_insn_sp64_vis): Likewise.
16817         (movdi split, movdf split): Use SETHI32.
16818         * doc/md.texi: Document SPARC constraints L, M and N.
16819
16820 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
16821
16822         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
16823         ("*set_vrsave_internal"): use mfspr for Darwin.
16824
16825         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
16826         gen_get_vrsave_internal.
16827
16828 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16829
16830         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
16831
16832 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
16833
16834         * cpplex.c (cpp_interpret_charconst): Get signedness or
16835         otherwise of wide character constants correct.
16836         * cppexp.c (lex): Get signedness of wide charconsts correct.
16837
16838 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16839
16840         * optabs.c (widen_operand): Only call convert_modes for
16841         promoted SUBREG if signedness matches.
16842         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
16843
16844 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16845
16846         * cpplib.c (glue_header_name): Use local buffer to build up
16847         header name.
16848
16849 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16850
16851         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
16852
16853 2002-02-23  Kazu Hirata  <kazu@hxi.com>
16854
16855         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
16856         H8/300[HS] separately.
16857         * config/h8300/h8300.md: Remove the early clobber constraint
16858         from bit field patterns.
16859
16860 2002-02-23  Kazu Hirata  <kazu@hxi.com>
16861
16862         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
16863         register_operand.
16864         (mulhisi3): Likewise.
16865         (umulqisi3): Likewise.
16866         (umulhisi3): Likewise.
16867
16868 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16869
16870         * cppinit.c (output_deps): Correct test for stdout output.
16871         (init_dependency_output): Cure warning.
16872
16873 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16874
16875         * expr.c (store_expr): When converting expression to promoted
16876         equivalent type, allow using SUBREG_REG of TARGET as the target
16877         of the expansion of EXP.
16878         * loop.c (basic_induction_var, case SUBREG): Always look inside.
16879         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
16880         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
16881         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
16882         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
16883
16884 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
16885
16886         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
16887         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
16888         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
16889
16890 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
16891
16892         PR optimization/5747
16893         * loop.c (scan_loop): Update reg info if move_movables created new
16894         pseudos.
16895
16896 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
16897
16898         * gcc.c (init_gcc_spec): Revert last change.
16899
16900 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
16901
16902         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
16903         gpc_reg_operand constraint.
16904
16905 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
16906
16907         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
16908         Simplify comparison of `low'.
16909         (add_operand): Fix formatting.
16910         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
16911         (mask_operand): Disallow mask to wrap in 64-bit mode.
16912         (rs6000_stack_info): Remove redundant test setting push_p.
16913         (output_toc): Fix formatting.
16914         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
16915         cc_reg_not_cr0_operand constraint.
16916         (booldi3, boolcdi3 splitters): Same.
16917
16918 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
16919
16920         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
16921
16922 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
16923
16924         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
16925         gcc invoked with -shared-libgcc.
16926
16927 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
16928
16929         PR c++/5748
16930         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
16931         decl if any of elements was TREE_USED.
16932
16933 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
16934
16935         * config/sparc/sol2.h: Don't include sys/mman.h.
16936         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
16937         (arith_4096_operand): Don't throw high bits away.
16938         (const64_operand): Take sign extension of CONST_INTs into account.
16939         (const64_high_operand, sparc_emit_set_const32): Likewise.
16940         (GEN_HIGHINT64): Likewise.
16941         (sparc_emit_set_const64_quick1): Likewise.
16942         (const64_is_2insns): Likewise.
16943         (print_operand): Use trunc_int_for_mode for sign extension.
16944         * config/sparc/sparc.h (SMALL_INT32): Likewise.
16945         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
16946         chars.  Assume CONST_INT is already properly sign-extended.
16947         (movdi split): Sign-extend each SImode part.
16948         (andsi3 split): Don't mask high bits off, so that result
16949         remains properly sign-extend.
16950         (iorsi3 split): Likewise.
16951         (xorsi3 split): Likewise.
16952
16953 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
16954
16955         * fold-const.c (fold): Fix typo in comments.
16956
16957 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
16958
16959         * Makefile.in (langhooks.o): Update dependencies.
16960
16961 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
16962
16963         * langhooks.c: Include flags.h.
16964
16965 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
16966
16967         * testsuite/gcc.dg/attr-alwaysinline.c: New.
16968
16969         * c-common.c (c_common_post_options): Set inline trees by
16970         default.
16971
16972         * doc/extend.texi (Function Attributes): Document always_inline
16973         attribute.
16974         Update documentation about inlining when not optimizing.
16975
16976         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
16977
16978         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
16979         unless DECL_ALWAYS_INLINE.
16980
16981         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
16982         unless DECL_ALWAYS_INLINE.
16983         (c_disregard_inline_limits): Disregard if always_inline set.
16984
16985         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
16986         Disregard if always_inline set.
16987         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
16988         unless DECL_ALWAYS_INLINE.
16989
16990         * attribs.c (handle_always_inline_attribute): New.
16991         (c_common_attribute_table): Add always_inline.
16992
16993         * config/rs6000/altivec.h: Add prototypes for builtins
16994         requiring the always_inline attribute.
16995
16996 2002-02-21  Eric Christopher  <echristo@redhat.com>
16997
16998         * expmed.c (store_bit_field): Try to simplify the subreg
16999         before generating a new one when when the mode size of
17000         value is less than maxmode.
17001
17002 2002-02-21  Richard Henderson  <rth@redhat.com>
17003
17004         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
17005         than gen_rtx_PLUS to form the sum.
17006         * explow.c (force_reg): Rearrange to not allocate new pseudo
17007         when force_operand returns a register.
17008         * expr.c (expand_assignment): Allow offset_rtx expansion to
17009         return a sum.  Do not force addresses into registers.
17010         (expand_expr): Likewise.
17011         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
17012         to canonicalize arithmetic that didn't simpify.
17013         (simplify_plus_minus): New argument force; update
17014         all callers.  Don't split CONST unless we can do something with it,
17015         and wouldn't lose the constness of the operands.
17016
17017         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
17018         that we generated earlier.
17019
17020 2002-02-21  Tom Tromey  <tromey@redhat.com>
17021
17022         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17023         (output_line_info): Use constant `1', with a long explanatory
17024         comment.
17025         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
17026
17027 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
17028
17029         * jump.c (redirect_jump): If old label has no UID, don't try to
17030         delete it.
17031
17032 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
17033
17034         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
17035         If input is constant, do shifts at compile time.
17036
17037 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
17038
17039         * doc/extend.texi: Fix some more overfull hboxes.
17040
17041 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17042
17043         PR optimization/4994
17044         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
17045         register moves.
17046
17047 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17048
17049         PR c++/4574
17050         * expr.h (expand_and): Add mode argument.
17051         * expmed.c (expand_and): Add mode argument.
17052         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
17053         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
17054         * except.c (expand_builtin_extract_return_addr): Likewise.
17055         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
17056         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
17057         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
17058         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
17059         * config/c4x/c4x.md: Use GEN_INT (x) instead of
17060         gen_rtx (CONST_INT, VOIDmode, x).
17061
17062 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17063
17064         PR c/4697:
17065         * stmt.c (warn_if_unused_value): Move side effects test once more.
17066
17067 2002-02-20  Torbjorn Granlund  <tege@swox.com>
17068
17069         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
17070         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
17071
17072 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
17073
17074         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
17075         SUBREG or ZERO_EXTEND.
17076
17077 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
17078
17079         * sh.h (current_function_anonymous_args): Remove.
17080         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
17081         of current_function_varargs and current_function_stdarg is set.
17082         * sh.c (sh_expand_prologue): Check current_function_varargs /
17083         current_function_stdarg / TARGET_SH5 instead of
17084         current_function_anonymous_args.
17085
17086         * sh64.h (TARGET_VERSION): Define.
17087
17088 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
17089
17090         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
17091         VRSAVE_REGNO on TARGET_ALTIVEC.
17092
17093 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
17094
17095         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
17096         bits of SImode const_int.
17097         (includes_rshift_p): Likewise.
17098         (print_operand): Call mask_operand and mask64_operand with correct
17099         mode.
17100         (rs6000_output_function_epilogue): Pad traceback table to word.
17101         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
17102         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
17103         mask64_operand with correct mode.
17104         (FUNCTION_ARG_REGNO_P): Correct parentheses.
17105
17106 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17107
17108         PR debug/4461
17109         * varasm.c (get_pool_constant_mark): New.
17110         * rtl.h (get_pool_constant_mark): Add prototype.
17111         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
17112         be represented if it has not been output.
17113
17114 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17115
17116         * combine.c (do_SUBST): Sanity check substitutions of
17117         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
17118         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
17119         CONST_INT into its operand.
17120         (known_cond): Likewise, for ZERO_EXTEND.
17121         * simplify-rtx.c (simplify_unary_operation): Fix condition to
17122         allow for simplification of wide modes.  Reject CONST_INTs in
17123         ZERO_EXTEND when their actual mode is not given.
17124
17125 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17126
17127         * c-decl.c (pushdecl): If no global declaration is found for an
17128         extern declaration in block scope, try a limbo one.
17129
17130 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17131
17132         PR c++/4401
17133         * c-common.c (pointer_int_sum): Moved from...
17134         * c-typeck.c (pointer_int_sum): ...here.
17135         * c-common.h (pointer_int_sum): Add prototype.
17136
17137 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17138
17139         PR c++/5713
17140         * c-decl.c (duplicate_decls): Return 0 if issued error about
17141         redeclaration.
17142
17143 2002-02-20  Roger Sayle  <roger@eyesopen.com>
17144             Jakub Jelinek  <jakub@redhat.com>
17145
17146         PR c/4389
17147         * tree.c (host_integerp): Ensure that the constant integer is
17148         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
17149         when pos is zero or non-zero respectively.  Clarify comment.
17150         * c-format.c (check_format_info_recurse): Fix host_integerp
17151         usage; the pos argument should be zero when assigning to a
17152         signed HOST_WIDE_INT.
17153
17154 2002-02-20  Richard Henderson  <rth@redhat.com>
17155
17156         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
17157         of the operand, rather than assuming TImode.
17158         (ix86_expand_binop_builtin): Cope with commutative patterns
17159         using nonimmediate_operand for both operands.
17160         (ix86_expand_timode_binop_builtin): Likewise.
17161         (ix86_expand_store_builtin): Validate operand 1.
17162         (ix86_expand_unop1_builtin): Likewise.
17163
17164 2002-02-20  Philip Blundell  <philb@gnu.org>
17165
17166         PR 5705
17167         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
17168
17169 2002-02-20  Richard Henderson  <rth@redhat.com>
17170
17171         PR c/5615
17172         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
17173
17174 2002-02-20  Tom Tromey  <tromey@redhat.com>
17175
17176         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17177         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17178         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17179         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17180         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
17181         unconditionally.
17182
17183 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
17184
17185         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
17186           for (const_int 0) in X not just INTVAL.
17187
17188 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
17189
17190         * doc/extend.texi: Avoid or reduce overfull hboxes.
17191
17192 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
17193
17194         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
17195         operations if the field does not start at a mode boundary.
17196
17197 2001-02-20      Joel Sherrill <joel@OARcorp.com>
17198
17199         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
17200         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
17201         Also done for -Acpu and -Amachine.
17202
17203 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
17204
17205         * cppinit.c (init_dependency_output): Take deps output file
17206         from -o if none given with -MF.  Suppress normal output.
17207         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
17208         * doc/cpp.texi, doc/invoke.texi: Update.
17209
17210 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
17211
17212         * toplev.c (output_quoted_string): Write unprintable
17213         characters with octal escapes.
17214
17215 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
17216
17217         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
17218         really_call_used[VRSAVE_REGNO] if not Altivec.
17219
17220 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
17221
17222         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
17223         MODE_MASK.
17224         (constant_pool_expr_1): Fix formatting.
17225         (rs6000_legitimize_reload_address): Likewise.
17226
17227 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17228
17229         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
17230         now that we have one.
17231
17232 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
17233
17234         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
17235         end of first block of bitfields (which was only seven bits);
17236         rename dummy to unused_1; remove comment which is no longer true.
17237
17238 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
17239
17240         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
17241
17242 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
17243
17244         PR 5399
17245         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
17246         if generating PIC.
17247
17248         PR 5054
17249         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
17250         arm_is_longcall_p rather than inspecting call-type cookie
17251         directly.
17252         (call_value_insn) [TARGET_THUMB]: Likewise.
17253
17254 2002-02-19  Graham Stott  <grahams@redhat.com>
17255
17256         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
17257
17258 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
17259
17260         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
17261         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
17262         (FP_SAVE_INLINE): Delete.
17263
17264         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
17265         * config/rs6000/eabi.asm: Remove ABI save restore routines.
17266         * config/rs6000/t-ppccomm: Build crtsavres.o.
17267         * config/rs6000/crtsavres.asm: New file.
17268
17269 2002-02-19  Philip Blundell  <philb@gnu.org>
17270
17271         * config/arm/arm.c (use_return_insn): Don't reject interrupt
17272         functions.
17273         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
17274         (output_return_instruction): Allow interrupt functions to return with
17275         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
17276         (arm_expand_prologue): Subtract 4 before stacking LR in an
17277         interrupt function.
17278
17279 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
17280
17281         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
17282         decl, not just FUNCTION_DECL.
17283         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
17284         (arm_assemble_integer): Likewise.
17285         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
17286         marked local.
17287
17288 2002-02-19  matthew green  <mrg@eterna.com.au>
17289
17290         * config.gcc (sparc-*-netbsdelf*): Enable target.
17291         (sparc64-*-netbsd*): New target.
17292         * config/sparc/netbsd-elf.h: New file.
17293         * config/sparc/t-netbsd64: New file.
17294
17295 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
17296
17297         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
17298
17299 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
17300
17301         * doc/invoke.texi: explicitly list the style guidelines that
17302         -Weffc++ checks for.
17303
17304 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
17305
17306         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
17307
17308 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
17309
17310         PR other/5718
17311         * gcc.c (cpp_unique_options): Treat -o as indicating object file
17312         only if not -E.  If -E, pass -o through to the preprocessor.
17313
17314 2002-02-19  Kazu Hirata  <kazu@hxi.com>
17315
17316         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
17317         register number with an appropriate macro.
17318
17319 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
17320
17321         * doc/rtl.texi (Constants): Close @code tag.
17322
17323 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
17324
17325         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
17326         ("mmx_uavgv4hi3"): Same.
17327         ("pmulhrwv4hi3"): Same.
17328
17329         * tree-inline.c (walk_tree): Handle vectors.
17330
17331         * c-common.c (constant_expression_warning): Handle vectors.
17332         (overflow_warning): Same.
17333
17334         * sched-deps.c (sched_analyze_2): Handle vectors.
17335
17336         * rtlanal.c (rtx_unstable_p): Handle vectors.
17337         (rtx_varies_p): Same.
17338         (count_occurrences): Same.
17339         (regs_set_between_p): Same.
17340         (modified_between_p): Same.
17341         (modified_in_p): Same.
17342         (volatile_insn_p): Same.
17343         (volatile_refs_p): Same.
17344         (side_effects_p): Same.
17345         (may_trap_p): Same.
17346         (inequality_comparisons_p): Same.
17347         (replace_regs): Same.
17348         (computed_jump_p_1): Same.
17349
17350         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
17351         argument.
17352         (inner_mode_array): New.
17353         (copy_rtx): Handle vectors.
17354         (copy_most_rtx): Same.
17355         (rtx_equal_p): Same.
17356         (get_mode_alignment): Adjust for vectors.
17357
17358         * resource.c (mark_referenced_resources): Handle vectors.
17359         (mark_set_resources): Same.
17360
17361         * reload1.c (eliminate_regs): Handle vectors.
17362         (elimination_effects): Same.
17363         (scan_paradoxical_subregs): Same.
17364
17365         * reload.c (subst_reg_equivs): Handle vectors.
17366
17367         * regrename.c (scan_rtx): Handle vectors.
17368
17369         * regclass.c (reg_scan_mark_refs): Handle vectors.
17370
17371         * recog.c (find_single_use_1): Handle vectors.
17372
17373         * local-alloc.c (equiv_init_varies_p): Handle vectors.
17374         (contains_replace_regs): Same.
17375         (memref_referenced_p): Same.
17376
17377         * integrate.c (copy_rtx_and_substitute): Handle vectors.
17378         (subst_constants): Same.
17379
17380         * genattrtab.c (attr_copy_rtx): Handle vectors.
17381         (encode_units_mask): Same.
17382         (clear_struct_flag): Same.
17383         (count_sub_rtxs): Same.
17384
17385         * gcse.c (want_to_gcse_p): Handle vectors.
17386         (oprs_unchanged_p): Same.
17387         (hash_expr_1): Same.
17388         (oprs_not_set_p): Same.
17389         (expr_killed_p): Same.
17390         (compute_transp): Same.
17391         (store_ops_ok): Same.
17392
17393         * function.c (purge_addressof_1): Do not allow paradoxical subregs
17394         of vectors.
17395         (fixup_var_refs_1): Same.
17396         (instantiate_virtual_regs_1): Same.
17397
17398         * fold-const.c (operand_equal_p): Handle vectors.
17399         (fold): Same.
17400         (rtl_expr_nonnegative_p): Same.
17401
17402         * flow.c (mark_used_regs): Handle vectors.
17403
17404         * df.c (df_uses_record): Handle vectors.
17405
17406         * cselib.c (cselib_subst_to_values): Handle vectors.
17407         (cselib_mem_conflict_p): Same.
17408         (hash_rtx): Same.
17409
17410         * cse.c (canon_reg): Handle vectors.
17411         (fold_rt): Same.
17412         (cse_process_notes): Same.
17413         (count_reg_usage): Same.
17414         (canon_hash): Same.
17415
17416         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
17417
17418         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
17419
17420         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
17421         (gen_rtx): Handle CONST_VECTOR.
17422         (gen_const_vector_0): New.
17423         (copy_rtx_if_shared): CONST_VECTORs can be shared.
17424         (reset_used_flags): Same.
17425         (copy_insn_1): Same.
17426         (initializer_constant_valid_p): Handle VECTOR_CST.
17427
17428         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
17429
17430         * doc/rtl.texi (Constants): Document const_vector.
17431         (CONST0_RTX): Update for vectors.
17432         (RTL sharing): Same.
17433
17434         * print-tree.c (print_node): Add case for VECTOR_CST.
17435
17436         * tree.h (TREE_VECTOR_CST_ELTS): New.
17437         (struct tree_vector): New.
17438         (union tree_node): Add vector node.
17439         (build_vector): Add prototype.
17440
17441         * tree.def (VECTOR_CST): New.
17442
17443         * tree.c (build_vector): New.
17444
17445         * expmed.c (make_tree): Handle CONST_VECTOR.
17446
17447         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
17448         (CONST_VECTOR_ELT): New.
17449         (CONST_VECTOR_NUNITS): New.
17450
17451         * machmode.h (GET_MODE_INNER): New.
17452         (DEF_MACHMODE): Accept 8th arg.
17453
17454         * machmode.def: Add 8th argument for vector inner mode.
17455         Add inner vector modes for vectors.
17456
17457         * rtl.def (VEC_CONST): Remove.
17458         (CONST_VECTOR): New.
17459
17460         * expr.c (clear_storage): Allow vectors.
17461         (is_zeros_p): Handle VECTOR_CST.
17462
17463         * varasm.c (output_constant_pool): Handle vectors.
17464         (rtx_const): Add veclo and vechi fields.
17465         (kind): Add RTX_VECTOR.
17466         (decode_rtx_const): Add case for vector.
17467
17468         * config/rs6000/rs6000-protos.h: Add zero_constant.
17469
17470         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
17471         constants.  Force easy vector constants into memory.
17472         (easy_vector_constant): New.
17473         (emit_easy_vector_constant): New.
17474         (rs6000_legitimize_reload_address): Do not generate bad reloads on
17475         darwin.
17476
17477         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
17478         instruction does.
17479         ("altivec_lvxl"): Same.
17480         (altivec_lvebx): Same.
17481         (altivec_lvehx): Same.
17482         (altivec_lvewx): Same.
17483         ("*movv4si_const0"): New.
17484         ("*movv4sf_const0"): New.
17485         ("*movv8hi_const0"): New.
17486         ("*movv16qi_const0"): New.
17487
17488 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17489
17490         * config/h8300/h8300.c (notice_update_cc): Use
17491         cc_status.value2.
17492
17493 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17494
17495         * config/h8300/h8300.md (divmod patterns): Change the
17496         constraints for operands[1] to register_operand.
17497
17498 2002-02-18  Kazu Hirata  <kazu@hxi.com>
17499
17500         * config/h8300/h8300-protos.h: Remove the prototype for
17501         p_operand.
17502         * config/h8300/h8300.c (p_operand): Remove.
17503         * config/h8300/h8300.md: Replace p_operand with
17504         const_int_operand.
17505
17506 2002-02-18 Philip Blundell <pb@nexus.co.uk>
17507
17508         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
17509         comment.
17510         (output_return_instruction): Allow use of LDR to unstack
17511         return addresss even for interrupt handlers or when
17512         interworking.  If compiling for ARMv5, use interworking-safe
17513         return instructions by default.  Remove duplicated code and
17514         lengthy "strcat" sequences.
17515
17516 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17517
17518         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
17519         (LINK_EH_SPEC): Define.
17520         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
17521
17522 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
17523
17524         * config/s390/s390.c (s390_emit_prologue): Do not set the
17525         frame_related flag for call-clobbered registers.
17526
17527 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
17528
17529         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
17530         (construct_container): Fix handling of SSE operands.
17531         (ix86_expand_builtin): Fix handling of 64bit pointers.
17532         (mmx_maskmovq_rex): New pattern.
17533
17534 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17535
17536         * regrename.c (kill_set_value): Handle subregs properly.
17537
17538 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
17539
17540         * objc/objc-act.c (handle_impent): Remove leading '*'
17541         from objc_class_name.
17542
17543 2002-02-17  Richard Henderson  <rth@redhat.com>
17544
17545         * config/alpha/alpha.c (some_small_symbolic_operand,
17546         some_small_symbolic_operand_1, split_small_symbolic_operand,
17547         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
17548         Handle small SYMBOL_REFs anywhere, not just inside memories.
17549         * config/alpha/alpha-protos.h: Update.
17550         * config/alpha/alpha.h (PREDICATE_CODES): Update.
17551         * config/alpha/alpha.md (small symbolic operand splitter): Update.
17552
17553 2002-02-17  Roland McGrath  <roland@frob.com>
17554
17555         * config.gcc (powerpc-*-gnu-gnualtivec*,
17556         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
17557         * config/rs6000/gnu.h: New file.
17558         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
17559         Grok "gnu" in rs6000_abi_name.
17560         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
17561         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
17562         Grok -mcall-gnu analogous to -mcall-linux et al.
17563         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17564         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
17565         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
17566
17567 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
17568
17569         PR c/3444:
17570         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
17571         shortening.
17572
17573 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17574
17575         * config/cris/cris.h: Undefine STARTFILE_SPEC and
17576         ENDFILE_SPEC before (re)defining them.
17577
17578 2002-02-17  Kazu Hirata  <kazu@hxi.com>
17579
17580         * config/h8300/h8300.c: Fix formatting.
17581         * config/h8300/h8300.h: Likewise.
17582
17583 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17584
17585         * doc/tm.texi: Explain why empty strings should not be
17586         marked for translation.
17587
17588 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17589
17590         * final.c (output_operand_lossage): Changed to accept
17591         printf style arguments. Change calls where necessary.
17592         * output.h (output_operand_lossage): Change declaration
17593         accordingly. Update copyright.
17594         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
17595         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
17596         Update copyright date where necessary.
17597
17598         * config/i386/i386.c (print_operand): Likewise. Remove use of
17599         sprintf.
17600
17601         * config/cris/cris.c (cris_operand_lossage): Likewise.
17602         Rename parameter so that exgettext recognizes it as
17603         translatable message.
17604         (LOSE_AND_RETURN): Rename parameter to msgid.
17605
17606 2002-02-17  Kazu Hirata  <kazu@hxi.com>
17607
17608         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
17609         hard coded register number with an appropriate macro.
17610         (HARD_REGNO_MODE_OK): Likewise.
17611         (ARG_POINTER_REGNUM): Likewise.
17612         (STATIC_CHAIN_REGNUM): Likewise.
17613         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
17614         * config/h8300/h8300.md (define_constants): Define more
17615         register numbers.
17616
17617 2002-02-17  Philipp Thomas  <pthomas@suse.de>
17618
17619         * config/i386/i386.h: Don't mark empty strings for translation.
17620
17621 2002-02-16  H.J. Lu <hjl@gnu.org>
17622
17623         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
17624
17625 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
17626
17627         * cppinit.c (merge_include_chains): Check for brack being
17628         NULL before attempting to merge it with qtail.
17629
17630 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
17631
17632         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
17633         DBX_DEBUG.
17634
17635 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17636
17637         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
17638
17639 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17640
17641         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
17642         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
17643         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
17644
17645 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17646
17647         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
17648         now only if !TARGET_FIX.
17649         (*movsi_nt_vms_fix): New pattern.
17650
17651 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
17652
17653         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
17654         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
17655         (alpha_sa_mask, alpha_sa_size): Reflect above change.
17656         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
17657         (alpha_start_function, alpha_expand_epilogue): Likewise.
17658         (unicosmk_gen_dsib): Likewise.
17659
17660 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17661
17662         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
17663
17664 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
17665
17666         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
17667         check_and_change_labels, s390_final_chunkify): Delete.
17668         (s390_split_branches, s390_chunkify_pool): New functions.
17669         (s390_function_prologue): Call them.
17670
17671         * config/s390/s390.h (S390_REL_MAX): Delete.
17672         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
17673
17674         * config/s390/s390.md (cjump, icjump, jump): Fix length
17675         attribute calculation.
17676
17677
17678 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
17679
17680         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
17681         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
17682
17683 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17684
17685         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
17686         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
17687         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
17688
17689 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
17690
17691         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
17692
17693 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
17694
17695         * reload.c (find_dummy_reload): Check that an output register
17696         is valid for its mode.
17697
17698 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
17699
17700         * combine.c (known_cond): After replacing the REG of a SUBREG, try
17701         to simplify it.
17702
17703         * function.c (assign_parms): Demote promoted argument passed by
17704         transparent reference.
17705
17706 2001-02-14      Joel Sherrill <joel@OARcorp.com>
17707
17708         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
17709         -Acpu() and -Amachine() to eliminate warnings.
17710
17711 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
17712
17713         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
17714
17715 2002-02-14  Kazu Hirata  <kazu@hxi.com>
17716
17717         * config/h8300/h8300-protos.h: Update the prototype for
17718         const_costs.
17719         * config/h8300/h8300.c (const_costs): Treat SET as a little
17720         more expensive operation.
17721         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
17722         reference to const_costs.
17723
17724 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
17725
17726         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
17727
17728 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
17729
17730         PR c/5503:
17731         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
17732         use arguments from newtype.
17733
17734 2002-02-13  Eric Christopher  <echristo@redhat.com>
17735
17736         * config/mips/mips.c (override_options): Add check for march/mipsX
17737         on the same command line. Fix error message in cpu processing.
17738         Remove architecture and ISA checks.
17739
17740 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
17741
17742         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
17743
17744         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
17745
17746 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
17747
17748         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
17749         alternatives.
17750         ("*movv8hi_internal1"): Same.
17751         ("*movv16qi_internal1"): Same.
17752         ("*movv4sf_internal1"): Same.
17753
17754         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
17755         not push_reload for altivec modes.
17756
17757 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
17758
17759         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
17760         all RTEMS targets including removal of #includes from config/*/rtems*.h
17761         file and adding them to tm_file setting. Added xm_defines=POSIX to
17762         many targets.
17763         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
17764         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
17765         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
17766         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
17767         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
17768         config/m68k/rtemself.h: Ditto.
17769         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
17770         config/mips/rtems64.h: Ditto.
17771         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
17772         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
17773         Ditto.
17774         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
17775         config/sparc/rtemself.h: Ditto.
17776         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
17777         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
17778         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
17779         more like arm-elf.
17780         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
17781         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
17782         target made more similar to i386-elf.
17783         * config/i386/t-rtems-i386: Added soft float support and multilibs.
17784         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
17785         be similar to config/m68k/t-m68kelf.
17786         * gthr-rtems.h: Encapsulate with extern "C" for C++.
17787
17788 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
17789
17790         * regmove.c (kill_value): Handle subregs.
17791
17792 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
17793
17794         * i386.md (mul patterns): Allow memory operand to be first;
17795         add expanders where needed; fix constraints.
17796         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
17797         Allow memory operand to be the first.
17798
17799         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
17800         operands.
17801
17802 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
17803
17804         PR c/5681:
17805         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
17806         GET_MODE (x).
17807
17808 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
17809
17810         PR optimization/5547:
17811         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
17812         all valid IA-32 address modes involving non-scaled %ebx and
17813         GOT/GOTOFF as displacement.
17814
17815 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
17816
17817         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
17818         after emitting ltorg insns.
17819
17820         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
17821         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
17822         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
17823         *abssf2): Fix "op_type" attribute.
17824
17825 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
17826
17827         * mkconfig.sh: Avoid using a subshell redirect.
17828         ($output.T): Change to $(output)T.
17829         (ENABLE_NLS): Remove unneeded undef.
17830
17831         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
17832         * config/alpha/x-vms (libsubdir): Define.
17833
17834         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
17835         register frame procedures. Optimize retrieving context.
17836
17837         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
17838         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
17839         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
17840
17841 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17842
17843         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
17844         Make same change as for find_base_value.
17845
17846 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17847
17848         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
17849         of QImode and SImode.
17850
17851 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17852
17853         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
17854         length computation of movsi.
17855         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
17856
17857 2002-02-13  Kazu Hirata  <kazu@hxi.com>
17858
17859         * config/h8300/h8300.md (subqi3): Tighten the predicate for
17860         operands[2] to register_operand.
17861
17862 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
17863
17864         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
17865
17866 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
17867
17868         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
17869         for altivec_lvx* and altivec_stvx*.
17870         ("*movv4si_internal"): Add constraint for loading from GPRs.
17871         ("*movv8hi_internal1"): Same.
17872         ("*movv16qi_internal1"): Same.
17873         ("*movv4sf_internal1"): Same.
17874
17875         * config/rs6000/rs6000.c (altivec_register_operand): New.
17876
17877         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17878         altivec_register_operand.
17879
17880 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
17881
17882         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
17883         handle SYMBOL_REF.
17884
17885 2002-02-13  Stan Shebs  <shebs@apple.com>
17886
17887         * c-typeck.c (digest_init): Handle vectors.
17888         (really_start_incremental_init): Same.
17889         (pop_init_level): Same.
17890         (process_init_element): Same.
17891
17892         * varasm.c (output_constant): Same.
17893
17894         * expr.c (clear_storage): Same.
17895         (store_constructor): Same.
17896
17897 2002-02-12  Eric Christopher  <echristo@redhat.com>
17898
17899         * explow.c (hard_function_value): Add comment explaining
17900         signed/unsigned comparison.
17901
17902 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
17903
17904         * jump.c (never_reached_warning): Add finish argument.
17905         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
17906         real insn after end.
17907         * rtl.h (never_reached_warning): Adjust prototype.
17908         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
17909         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
17910         never_reached_warning.
17911
17912 2002-02-12  Graham Stott  <grahams@redhat.com>
17913
17914         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
17915
17916 2002-02-12  Kazu Hirata  <kazu@hxi.com>
17917
17918         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
17919         logical shifts on H8/300.
17920         (shift_alg_si): Improve several shifts on H8/300.
17921         (get_shift_alg): Likewise.
17922
17923 2002-02-12  Graham Stott  <grahams@redhat.com>
17924
17925         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
17926
17927 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17928
17929         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
17930         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
17931
17932 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
17933
17934         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
17935         non-CONST_INT through default_assemble_integer.
17936         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
17937         <case 8>: Abort for CONST_DOUBLE.
17938
17939 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17940
17941         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
17942         is specified.
17943         * config/pa/pa-linux.h (LIB_SPEC): Delete.
17944         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
17945
17946 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
17947
17948         * config/stormy16/stormy16.md (zero_extendqihi2): New.
17949
17950 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
17951
17952         * regrename.c (regrename_optimize): Don't accept a
17953         part-clobbered register if the replaced register is not part
17954         clobbered.
17955
17956         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
17957         take padding into account when computing the argument value.
17958
17959         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
17960
17961         * combine.c (try_combine): Apply substitutions in
17962         CALL_INSN_FUNCTION_USAGE too.
17963
17964 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
17965
17966         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
17967         __builtin_altivec_abs*.
17968         (bdesc_abs): New.
17969
17970         * config/rs6000/rs6000.h (rs6000_builtins): Add
17971         ALTIVEC_BUILTIN_ABS*.
17972
17973         * config/rs6000/altivec.h: Use const char for builtins expecting
17974         literals.
17975         (vec_abs): New versions for C and C++.
17976         (vec_abss): Same.
17977
17978 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17979
17980         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
17981         using Pmode.
17982
17983 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17984
17985         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
17986         constant definition from h8300.md.
17987         (FRAME_POINTER_REGNUM): Likewise.
17988         * config/h8300/h8300.md (define_constants): Add FP_REG.
17989
17990 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17991
17992         * config/h8300/h8300.c (print_operand): Remove redundant code.
17993
17994 2002-02-10  Kazu Hirata  <kazu@hxi.com>
17995
17996         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
17997         * config/h8300/h8300.c (byte_reg): Make it static.
17998
17999 2002-02-10  Richard Henderson  <rth@redhat.com>
18000
18001         PR c/5623
18002         * c-typeck.c (incomplete_type_error): Handle flexible array members.
18003
18004 2002-02-10  Richard Henderson  <rth@redhat.com>
18005
18006         PR c++/5624
18007         * tree.c (append_random_chars): Don't abort if main_input_filename
18008         does not exist.
18009
18010 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
18011
18012         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
18013
18014 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18015
18016         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
18017         (pushhi1): Likewise.
18018
18019 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18020
18021         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
18022         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
18023
18024 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
18025
18026         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
18027         remove MASK_VIS.
18028         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
18029
18030 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18031
18032         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
18033         a half of an SImode register on H8/300.
18034
18035 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
18036
18037         * i386.md (movdi_2): Add missing '!'.
18038
18039 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18040
18041         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
18042         definitions.
18043
18044 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18045
18046         * config/h8300/h8300.md (length): Correct the distance valid
18047         for the short branch.
18048
18049 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18050
18051         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
18052
18053 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18054
18055         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
18056         registers in SImode.
18057         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
18058         part-clobbered.
18059
18060         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
18061         patch.
18062
18063         Contribute sh64-elf.
18064         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18065         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
18066         (sh_cannot_modify_jumps_p): New function.
18067         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
18068         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
18069         (sh_ms_bitfield_layout_p): New function.
18070         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
18071                     Zack Weinberg  <zack@codesourcery.com>
18072         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
18073         expand_simple_binop instead of expand_binop.
18074         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
18075         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
18076         use of .quad and .uaquad.
18077         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
18078         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
18079         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18080         * config/sh/sh.md (movdi_const, movdi_const_32bit,
18081         movdi_const_16bit): Make sure all CONSTs have modes.
18082         (sym2PIC): Ditto, but by adjusting all callers.
18083         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
18084         if the prologue calls the SHmedia argument decoder or register
18085         saver.
18086         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18087         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
18088         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
18089         (sh_expand_epilogue): Don't emit USE of return target register.
18090         (prepare_move_operands): Legitimize DImode PIC addresses.
18091         (sh_media_register_for_return): Skip tr0, used to initialize the
18092         PIC register.
18093         (sh_expand_prologue): Remove explicit USE of return register.
18094         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
18095         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
18096         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
18097         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
18098         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
18099         EXTRA_CONSTRAINT_T.
18100         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
18101         (MOVI_SHORI_BASE_OPERAND_P): New.
18102         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
18103         (EXTRA_CONSTRAINT_T): Define in terms of them.
18104         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
18105         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
18106         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
18107         alternatives supporting TARGET_REGS.
18108         (UNSPEC_GOTPLT): New constant.
18109         (movdi split): Move incrementing of LABEL_NUSES...
18110         (movdi_const, movdi_const_32bit): Here.  Use
18111         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
18112         (movdi_const_16bit): New.
18113         (call, call_value) [flag_pic]: Use GOTPLT.
18114         (call_pop, call_value_pop): New expands.
18115         (call_pop_compact, call_pop_rettramp): New insns.
18116         (call_value_pop_compact, call_value_pop_rettramp): New insns.
18117         (sibcall) [flag_pic]: Use GOT.
18118         (builtint_setjmp_receiver): Remove bogus, unused expand.
18119         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
18120         (*pt, *ptb, ptrel): New insns.
18121         (sym2GOT): Handle DImode GOT.
18122         (sym2GOTPLT, symGOTPLT2reg): New expands.
18123         (sym2PIC): New expand.
18124         (shcompact_return_tramp): Use GOTPLT to return trampoline.
18125         (shcompact_return_tramp_i): Use return register explicitly.
18126         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
18127         disable flag_reorder_blocks.
18128         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
18129         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
18130         clobbers, for clarity.
18131         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
18132         restoring of r0 in macl as MAYBE_DEAD.
18133         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
18134         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
18135         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
18136         alter_subreg all over.
18137         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
18138         reload, instead of emitting instructions that would require
18139         reloading.
18140         (casesi_load_media): Add missing modes.
18141         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
18142         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
18143         as used if the argument decoder is called.
18144         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18145         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
18146         Pmode, then extend it to DImode if necessary.
18147         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18148         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
18149         constants in FPU-enabled SHmedia, let them be loaded from memory.
18150         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18151         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
18152         Adjust whitespace in assembly output templates.
18153         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18154         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
18155         mode of if_then_else.
18156         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
18157         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
18158         sh.h.
18159         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
18160                     Joern Rennecke <amylaar@redhat.com>
18161         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
18162         (SUBTARGET_CPP_PTR_SPEC): New.
18163         (SUBTARGET_CPP_SPEC): Remove.
18164         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18165         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18166         Fix typo in previous checkin.
18167         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
18168         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
18169         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
18170                     Alexandre Oliva  <aoliva@redhat.com>
18171         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
18172         what single FP register can hold for SHmedia target.
18173         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18174                     Alexandre Oliva  <aoliva@redhat.com>
18175         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18176         Do not split into SUBREG.
18177         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
18178         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
18179         and added new functions as specified in SH5 ABI r9.
18180         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
18181         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
18182         8-byte boundary.
18183         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
18184         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
18185         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
18186         and consttable_window_ends.
18187         2001-06-03  Graham Stott  <grahams@redhat,com>
18188         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
18189         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
18190         * config/sh/sh.c (print_operand): Handle floating-point pair,
18191         vector and matrix registers.
18192         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
18193         vector modes into account.
18194         * config/sh/sh.md (movv2sf): Split move between registers into
18195         movdf.
18196         (movv4sf, movv16sf): Introduce insns that get split only after
18197         reload.
18198         * config/sh/shmedia.h: Fix Copyright dates.
18199         * config/sh/ushmedia.h: Likewise.  Move loop counter
18200         declarations into conditionals that uses them.
18201         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
18202         loop boundary.
18203         * config/sh/sshmedia.h: Fix Copyright dates.
18204         (sh_media_PUTCFG): Fix constraints.
18205         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
18206         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
18207         ptrmemfunc_vbit_in_delta for SH5.
18208         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
18209         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
18210         * invoke.texi: Likewise.
18211         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
18212         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
18213         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
18214         GCC_pop_shmedia_regs_nofpu): New global symbols.
18215         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
18216         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
18217         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
18218         compact function with nonlocal labels.
18219         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
18220         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
18221         (initial_elimination_offset): Account for their stack space.
18222         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
18223         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
18224         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
18225         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
18226         least one of the operands to be a register.
18227         (movv2sf): Likewise.  Renamed to movv2sf_i.
18228         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
18229         prepare_move_operands() before emitting SHmedia insns.
18230         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
18231         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
18232         Don't save nor initialize r12.  Don't mis-align the stack.
18233         Pad the code with a nop.
18234         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
18235         stack.
18236         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
18237         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
18238         [__SHMEDIA__]: Implement.
18239         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
18240         * config/sh/sh.md: Set latency of `pt' closer to reality.
18241         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
18242         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
18243         Set move, load and store type attributes.
18244         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
18245         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
18246         profiling.
18247         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
18248         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
18249         * config/sh/sh.c (sh_media_register_for_return): New function.
18250         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
18251         branch-target register.
18252         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
18253         * config/sh/sh.md (return_media_i): Use any call-clobbered
18254         branch-target register.
18255         (return_media): If r18 wasn't copied in the prologue, copy it
18256         here.
18257         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
18258         Clear class FP0_REGS.
18259         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
18260         from elf.h.
18261         2001-03-08  DJ Delorie  <dj@redhat.com>
18262         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
18263         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
18264         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
18265         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
18266         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
18267         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
18268         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
18269         return value correctly for call_cookie.
18270         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
18271         * config/sh/crt1.asm (start): Modified so as to call
18272         ___setup_argv_and_call_main.
18273         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
18274         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
18275         SHmedia mode.
18276         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
18277         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
18278         (STRIP_NAME_ENCODING): Use it.
18279         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
18280         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
18281         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
18282         prepare_scc_operands().
18283         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
18284         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
18285         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
18286         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
18287         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
18288         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
18289         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
18290         used in shcompact_incoming_args.
18291         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
18292         change.
18293         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
18294         mode.
18295         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
18296         Adjust accordingly.
18297         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
18298         Simplify.  Adjust.  Add sanity check.
18299         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
18300         FPU_SINGLE_BIT.
18301         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
18302         TARGET_SHCOMPACT.
18303         (udivsi3, divsi3): Use them.
18304         (force_mode_for_call): New insn.
18305         (call, call_value, sibcall_value): Emit it before SHcompact
18306         calls.
18307         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
18308         * config/sh/sh.md (call, call_value, sibcall): Make sure the
18309         call cookie is non-NULL before taking its value.
18310         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
18311         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
18312         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
18313         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
18314         block.
18315         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
18316         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
18317         temporary for stack adjusts.  Use MACL and MACH to pass
18318         arguments to shcompact_incoming_args.
18319         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
18320         clobber r1.
18321         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
18322         (nested_trampoline): Load static chain address into r1.
18323         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
18324         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
18325         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
18326         fp_arith_reg_operand().
18327         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
18328         * config/sh/sh.md (casesi): Sign-extend the first two operands,
18329         and use signed compares for them.
18330         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
18331         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
18332         ones properly aligned.
18333         (find_barrier): Account for extra alignment needed for 8-byte wide
18334         constants.
18335         (machine_dependent_reorg): Require a label for the second 4-byte
18336         constant after an 8-byte one.
18337         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
18338         change.
18339         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
18340         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
18341         last_float when switching float modes.
18342         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
18343         auto-increment for general-purpose registers.
18344         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
18345         result.
18346         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
18347         for stack adjust.
18348         * config/sh/sh.c (sh_builtin_saveregs): Support using all
18349         registers for varargs.
18350         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
18351         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
18352         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
18353         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
18354         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
18355         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
18356         call_cookie accordingly.
18357         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
18358         (SHCOMPACT_BYREF): Likewise.
18359         (SHCOMPACT_FORCE_ON_STACK): New macro.
18360         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
18361         (sh_builtin_saveregs): Likewise.
18362         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18363         shcompact_incoming_args): Use new shift values.  Support
18364         sequences of consecutive and non-consecutive pushes/pops.
18365         * config/sh/sh.md (return): Don't explicitly use PR_REG.
18366         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
18367         * config/sh/sh.h (TEXT_SECTION): Define.
18368         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
18369         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
18370         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
18371         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
18372         return values on FPU-enabled SHmedia.
18373         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
18374         FPU-enabled SHmedia.
18375         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
18376         value is returned in a non-FP reg and is not returned by
18377         reference.
18378         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
18379         jump_ind.
18380         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
18381         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
18382         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
18383         quad-aligned to be passed by callee-copy reference.
18384         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
18385         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
18386         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
18387         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
18388         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
18389         copying low-numbered FP regs to r7 and r8.
18390         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
18391         FP regs to general-purpose regs only if the copy was passed on the
18392         stack.
18393         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
18394         copying FP reg to r9.
18395         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
18396         copy FP regs to general-purpose regs only in outgoing calls.
18397         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
18398         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
18399         HOST_WIDE_INT.
18400         * config/sh/sh.h (struct sh_args): Document all fields.
18401         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
18402         passed partially on the stack should not consider making
18403         sibcalls.
18404         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
18405         stack_regs only for incoming calls.  When passing FP args,
18406         make sure there are FP regs available before modifying
18407         call_cookie.
18408         (SHCOMPACT_BYREF): Pass double args in general-purpose
18409         registers by reference.
18410         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
18411         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
18412         attempt to generate sibcalls if the caller got any arguments
18413         by reference.
18414         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
18415         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
18416         to 8-byte boundaries.
18417         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
18418         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
18419         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
18420         stored in the stack.
18421         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
18422         for the offsets to have the ISA bit set.
18423         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
18424         invocation.  Use beq instead of bgt to mark end of sequence of
18425         loads.
18426         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
18427         bgt to mark end of sequence of stores.
18428         * config/sh/sh.c (arith_operand): Don't check whether
18429         CONST_OK_FOR_J for now.
18430         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
18431         instead of long for conversion.
18432         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
18433         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
18434         before passing it to fprintf.
18435         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
18436         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
18437         Call set_fpscr before reading/writing SR.
18438         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
18439         Call set_fpscr.
18440         * config/sh/lib1funcs.asm: Add `.align 2' directives before
18441         SHmedia code.
18442         (FMOVD_WORKS): Define on SH5 with FPU.
18443         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
18444         setting.
18445         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
18446         _fpscr_values.
18447         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
18448         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
18449         address.
18450         (ia_main_table): Ditto.
18451         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
18452         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
18453         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
18454         the definitions from sh.h.
18455         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
18456         TARGET_SH5.
18457         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
18458         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
18459         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
18460         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
18461         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
18462         Increment LABEL_NUSES.
18463
18464         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
18465         TARGET_SH5.
18466         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
18467         defined.
18468         * config/sh/elf.h (SIZE_TYPE): Likewise.
18469         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
18470         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18471         shcompact_incoming_args): Load switch table addresses using
18472         datalabel.
18473         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
18474         (NO_BUILTIN_SIZE_TYPE): Define.
18475         (SIZE_TYPE): Don't define.
18476         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
18477         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
18478         definition of __SH5__=32 for -m5-compact-nofpu.
18479         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
18480         ADDR_DIFF_VEC.
18481         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
18482         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
18483         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
18484         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
18485         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
18486         (INSN_LENGTH_ALIGNMENT): Likewise.
18487         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18488         * config/sh/sh.md (call, call_value, sibcall): Simplify
18489         copying of non-branch-target register.
18490         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18491         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
18492         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
18493         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
18494         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
18495         floating-point values as structs.
18496         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
18497         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
18498         general-purpose register.
18499         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
18500         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
18501         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
18502         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
18503         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
18504         (ENCODE_SECTION_INFO): Enclose variables and constants in
18505         DATALABEL unspecs.
18506         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
18507         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
18508         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
18509         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
18510         only for LABEL_REFs.  For SYMBOL_REFs, prepend
18511         SH_DATALABEL_ENCODING to the symbol name.
18512         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
18513         convert_mode().
18514         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
18515         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
18516         UNSPEC_DATALABEL.
18517         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
18518         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
18519         (DATALABEL_REF_P): Don't require CONST.
18520         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
18521         REL label.
18522         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
18523         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
18524         right.
18525         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
18526         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
18527         Use shallow_copy_rtx and PUT_MODE to change the mode of
18528         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
18529         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
18530         on SHmedia using GENERAL_REGs.
18531         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
18532         bltu_media_i): Fix reversion of conditions.
18533         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
18534         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
18535         * config/sh/sh.c (output_far_jump): Save r13 in macl.
18536         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
18537         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
18538         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
18539         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
18540         (GCC_nested_trampoline): Likewise.
18541         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
18542         * config/sh/sh.c (gen_datalabel_ref): Define.
18543         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
18544         (INITIALIZE_TRAMPOLINE): Likewise.
18545         (TRAMPOLINE_ADJUST_ADDRESS): Define.
18546         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
18547         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
18548         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
18549         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
18550         (ic_invalidate): Adjust for SH5.
18551         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
18552         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
18553         _nested_trampoline.
18554         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
18555         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
18556         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
18557         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
18558         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
18559         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
18560         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
18561         * config/sh/sh.c (target_reg_operand): Match only target-branch
18562         registers and pseudos that aren't virtual registers.
18563         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
18564         Copy operands that don't match target_reg_operand to pseudos.
18565         (call_media, call_value_media, sibcall_media): Use
18566         target_reg_operand instead of target_operand.
18567         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
18568         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
18569         * config/sh/sh.c (target_reg_operand): Match hardware registers
18570         other than branch-target registers.
18571         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
18572         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
18573         (fpscr_values) [SH5 == 32]: Define.
18574         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
18575         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
18576         Handle function addresses coming in SUBREGs.
18577         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
18578         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
18579         shcompact_return_trampoline): Use datalabel where appropriate.
18580         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
18581         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
18582         general-purpose register to copy one branch-target register to
18583         another.
18584         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
18585         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
18586         SYMBOL_REFs with VOIDmode.
18587         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
18588         bltu_media_i): New insns.
18589         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
18590         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
18591         (INIT_CUMULATIVE_ARGS): Likewise.
18592         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
18593         * machmode.def (V16SFmode): New mode.
18594         * c-common.c (type_for_mode): Support V2SF and V16SF.
18595         * tree.c (build_common_tree_nodes_2): Likewise.
18596         * tree.h (tree_index): Likewise.
18597         * calls.c (emit_call_1): Take args_so_far.  Adjust all
18598         callers.  Introduce CALL_POPS_ARGS.
18599         * tm.texi (CALL_POPS_ARGS): Document.
18600         * config/sh/crt1.asm: Implement in SHmedia mode.
18601         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
18602         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
18603         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
18604         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
18605         Implement divsi and udivsi in SHmedia mode.  Introduce
18606         SHcompact trampolines.
18607         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
18608         only in SHmedia64.
18609         (regno_reg_class): Rewrite.
18610         (fp_reg_names): Remove.
18611         (sh_register_names, sh_additional_register_names): New.
18612         (print_operand): Added `u'.  Support SUBREGs in addresses.
18613         Add parentheses around shifted CONSTs.
18614         (output_file_start): Output .mode and .abi directives.
18615         (shiftcosts, addsubcosts, multcosts): Adjust.
18616         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
18617         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
18618         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
18619         bytes, not registers.  Take into account the need for the
18620         SHcompact incoming args trampoline.  Adjust all callers.
18621         (sh_expand_prologue): Take stack_regs into account.  Call
18622         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
18623         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
18624         stack aligned as per SH5 ABI.
18625         (sh_builtin_saveregs): Support SH5 ABI.
18626         (sh_build_va_list, sh_va_start): Likewise.
18627         (initial_elimination_offset): Take alignment into account.
18628         Compute location of PR according to the SH5 stack frame.
18629         (arith_reg_operand): Reject branch-target registers.
18630         (shmedia_6bit_operand): New.
18631         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
18632         (target_reg_operand): Match DImode only.  Accept SUBREGs.
18633         (target_operand): New.
18634         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
18635         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
18636         SIBCALL_REGS for SHmedia.
18637         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
18638         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
18639         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
18640         (TARGET_SWITCHES): New SH5 flags.
18641         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
18642         VALID_REGISTER_P to disable unsupported registers.
18643         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
18644         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
18645         (FUNCTION_ARG_PADDING): Define.
18646         (FASTEST_ALIGNMENT): Adjust.
18647         (SH_REGISTER_NAMES_INITIALIZER): New.
18648         (sh_register_names): Declare.
18649         (DEBUG_REGISTER_NAMES): Define.
18650         (REGISTER_NAMES): Define based on sh_register_names.
18651         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
18652         (sh_additional_register_names): Declare.
18653         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
18654         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
18655         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
18656         (REGISTER_NATURAL_MODE): Define.
18657         (FIRST_PSEUDO_REGISTER): Adjust.
18658         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
18659         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
18660         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
18661         (VECTOR_MODE_SUPPORTED_P): Define.
18662         (REG_CLASS_CONTENTS): Adjust.
18663         (SMALL_REGISTER_CLASSES): Adjust.
18664         (REG_ALLOC_ORDER): Adjust.
18665         (INDEX_REG_CLASS): Adjust.
18666         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
18667         (CONST_OK_FOR_LETTER_P): Adjust.
18668         (PREFERRED_RELOAD_CLASS): Adjust.
18669         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
18670         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
18671         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
18672         (FIRST_FP_PARM_REG): Adjust.
18673         (CALL_POPS_ARGS): Define.
18674         (FUNCTION_ARG_REGNO_P): Adjust.
18675         (struct sh_args): New fields.
18676         (GET_SH_ARG_CLASS): Adjust.
18677         (INIT_CUMULATIVE_ARGS): Adjust.
18678         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
18679         (FUNCTION_ARG_ADVANCE): Adjust.
18680         (FUNCTION_ARG): Adjust.
18681         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
18682         (FUNCTION_ARG_CALLEE_COPIES): Define.
18683         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
18684         (STRICT_ARGUMENT_NAMING): Define.
18685         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
18686         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
18687         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
18688         (SETUP_INCOMING_VARARGS): Adjust.
18689         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
18690         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
18691         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
18692         (SUBREG_OK_FOR_INDEX_P): Adjust.
18693         (EXTRA_CONSTRAINT_S): Update.
18694         (EXTRA_CONSTRAINT_T): New.
18695         (EXTRA_CONSTRAINT): Adjust.
18696         (GO_IF_LEGITIMATE_INDEX): Adjust.
18697         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
18698         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
18699         (MOVE_MAX): Adjust.
18700         (MAX_MOVE_MAX): Define.
18701         (Pmode): Adjust.
18702         (CONST_COSTS): Adjust.
18703         (REGISTER_MOVE_COST): Adjust.
18704         (BRANCH_COST): Adjust.
18705         (TEXT_SECTION_ASM_OP): Adjust.
18706         (DBX_REGISTER_NUMBER): Adjust.
18707         (ASM_OUTPUT_DOUBLE_INT): New.
18708         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
18709         (PREDICATE_CODES): Adjust.
18710         (PROMOTE_MODE): Adjust.
18711         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
18712         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
18713         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
18714         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
18715         (DR0_REG, DR2_REG, DR4_REG): Renumber.
18716         (TR0_REG, TR1_REG, TR2_REG): New.
18717         (XD0_REG): Renumber.
18718         (UNSPEC_COMPACT_ARGS): New.
18719         (type): Added pt and ptabs.
18720         (length): Default to 4 on SHmedia.  Default pt length to 12
18721         and     20 on SHmedia32 and SHmedia64, respectively.
18722         (pt): New function unit.
18723         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
18724         Add whitespace between operands of SHmedia instructions.
18725         (movdicc): Fix.
18726         (adddi3_media, addsi3_media): Adjust constraints.
18727         (subsi3) [SHmedia]: Force operand 1 into a register.
18728         (udivsi3_i1_media, udivsi3_i4_media): New.
18729         (udivsi3): Support SHmedia.
18730         (divsi3_i1_media, divsi3_i4_media): New.
18731         (divsi3): Support SHmedia.
18732         (anddi3, iordi3, xordi3): Adjust constraints.
18733         (zero_extendhidi2, zero_extendqidi2): New.
18734         (extendsidi2, extendhidi2, extendqidi2): New.
18735         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
18736         (pop_e, pop_fpul, pop_4): Likewise.
18737         (movsi_media): Support FP and BT registers.
18738         (movsi_media_nofpu): New.  Adjust splits to DImode.
18739         (lduw, ldub): Renamed to zero_extend* above.
18740         (movqi_media): Fix typo.
18741         (movdi_media): Support FP and BT registers.
18742         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
18743         (movdi_const_32bit): New.
18744         (shori_media): Require immediate operand.  Use `u' for output.
18745         (movdf_media, movsf_media): Simplified.
18746         (movdf_media_nofpu, movsf_media_nofpu): New.
18747         (movdf, movsf): Adjust
18748         (movv2sf, movv2sf, movv16sf): New.
18749         (beq_media, beq_media_i): Adjust constraints.  Don't use
18750         scratch BT register.
18751         (bne_media, bne_media_i): Likewise.
18752         (bgt_media, bgt_media_i): Likewise.
18753         (bge_media, bge_media_i): Likewise.
18754         (bgtu_media, bgtu_media_i): Likewise.
18755         (bgeu_media, bgeu_media_i): Likewise.
18756         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
18757         bunordered): Emit jump insn.  Force operands to registers when
18758         needed.
18759         (jump_media, jump): Simplify.
18760         (call_compact, call_compact_rettramp): New.
18761         (call_value_compact, call_value_compact_rettramp): New.
18762         (call_media, call_value_media): Simplify.
18763         (sibcall_compact, sibcall_media): New.
18764         (call, call_value): Adjust for SHmedia and SHcompact.
18765         (sibcall, sibcall_value, untyped_call): Likewise.
18766         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
18767         (indirect_jump): Adjust for SHmedia.
18768         (casesi_jump_media): New.
18769         (nop): Re-enable for SHmedia.
18770         (call_site): Restrict to SH1.
18771         (casesi): Adjust for SHmedia.
18772         (casesi_shift_media, casesi_load_media): New.
18773         (return): Explicitly use PR register.  Call return trampoline
18774         on SHcompact.
18775         (return_i): Explicitly use PR register.
18776         (shcompact_return_tramp, shcompact_return_tramp_i): New.
18777         (return_media): Adjust.
18778         (shcompact_incoming_args): New.
18779         (epilogue): Adjust.
18780         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
18781         (movstrsi): Disable on SH5.
18782         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
18783         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
18784         (subsf3, subsf3_media): Likewise.
18785         (mulsf3, mulsf3_media, mac_media): Likewise.
18786         (divsf3, divsf3_media): Likewise.
18787         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
18788         (floatsisf2, fux_truncsfsi2): Likewise.
18789         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
18790         constraints.
18791         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
18792         (cmpunsf_media, cmpsf): Likewise.
18793         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
18794         (abssf2, abssf2_media): Likewise.
18795         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
18796         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
18797         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
18798         (floatsidf2, fix_truncdfsi2): Likewise.
18799         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
18800         constraints.
18801         (cmpeqdf_media, cmpgtdf_media): Likewise.
18802         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
18803         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
18804         (absdf2, absdf2_media): Likewise.
18805         (extendsfdf2, extendsfdf2_media): Likewise.
18806         (truncsfdf2, truncsfdf2_media): Likewise.
18807         * config/sh/sh64.h: New file.
18808         * config/sh/t-sh64: New file.
18809         * config/sh/shmedia.h: New file.
18810         * config/sh/ushmedia.h: New file.
18811         * config/sh/sshmedia.h: New file.
18812         * configure.in: Added sh64-*-elf.
18813         * configure: Rebuilt.
18814         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
18815         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
18816         (reg_class_from_letter): Use `b' for TARGET_REGS.
18817         (print_operand): Support `%M', `%m', `AND' and
18818         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
18819         (andcosts): Adjust for SHmedia.
18820         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
18821         Likewise.
18822         (target_reg_operand): New function.
18823         * config/sh/sh-protos.h (target_reg_operand): Declare.
18824         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
18825         FP registers on SH5.
18826         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
18827         on SH4.
18828         (TARGET_REGISTER_P): New macro.
18829         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
18830         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
18831         (EXTRA_CONSTRAINT_S): New macro.
18832         (EXTRA_CONSTRAINT): Adjust.
18833         (FLOAT_TYPE_SIZE): Define to 32.
18834         (Pmode): DImode on SHmedia.
18835         (CONST_COSTS): Adjust for SHmedia literals.
18836         (PREDICATE_CODES): Added target_reg_operand.
18837         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
18838         * config/sh/sh.md: Remove all attrs from SHmedia insns.
18839         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
18840         (cmpdi): Accept SHmedia.
18841         (movdicc_false, movdicc_true): New insns.
18842         (movdicc): New expand.
18843         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
18844         no_new_pseudos.
18845         (addsi3_media): Match `S' constraint.
18846         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
18847         (negdi2): Expand for SHmedia.
18848         (one_cmpldi2): New expand.
18849         (zero_extendsidi2): Change from expand to insn.
18850         (extendsidi2): Add constraints.
18851         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
18852         LD/ST address.  Fix SI immediate loading split.
18853         (movhi_media, movqi_media, lduw, ldub): New insns.
18854         (movhi, movqi): Accept SHmedia.
18855         (shori_media, movdi_media): Relax input constraints.  Split
18856         symbolic constants.
18857         (movdf_media, movsf_media): New insn.  New split to movdi.
18858         (movdf, movsf): Match on SHmedia.
18859         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
18860         bgeu_media): New insns and splits.  New insns with `_i' suffix.
18861         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
18862         (bunordered): New expand.
18863         (jump_compact): Renamed from `jump'.
18864         (jump_media): New insn.
18865         (jump): New expand.
18866         (call_media, call_value_media): New insns.
18867         (call, call_value): Adjust.
18868         (indirect_jump_compact): Renamed from `indirect_jump'.
18869         (indirect_jump_media): New insn.
18870         (indirect_jump): New expand.
18871         (untyped_call, return): Accept SHmedia.
18872         (return_media): New insn.
18873         (prologue, epilogue, blockage): Accept SHmedia.
18874         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
18875         (sunordered): New expand.
18876         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
18877         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
18878         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
18879         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
18880         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
18881         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
18882         abssf2_media): New insns.
18883         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
18884         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
18885         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
18886         floatdidf2, floatsidf2_media, fix_truncdfdi2,
18887         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
18888         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
18889         absdf2_media): New insns.
18890         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
18891         (extendsfdf2_media, truncdfsf2_media): New insns.
18892         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
18893         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
18894         * config/sh/sh.h (CONST_OK_FOR_J): Document.
18895         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
18896         * config/sh/sh.md (adddi3): New expand.
18897         (adddi3_media, adddi3z_media): New insns.
18898         (adddi3_compact): Renamed from adddi3.
18899         (addsi3_media): Use add.l r63 to add constant zero.
18900         (subdi3): New expand.
18901         (subdi3_media): New insn.
18902         (subdi3_compact): Renamed from subdi3.
18903         (mulsidi3): New expand.
18904         (mulsidi3_media): New insn.
18905         (mulsidi3_compact): Renamed from mulsidi3.
18906         (umulsidi3): New expand.
18907         (umulsidi3_media): New insn.
18908         (umulsidi3_compact): Renamed from umulsidi3.
18909         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
18910         (ashlsi3, ashrsi3, lshrsi3): Use them.
18911         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
18912         (ashldi3, ashrdi3, lshrdi3): Use them.
18913         (zero_extendsidi2): New expand.
18914         (extendsidi2): New insn.
18915         (movsi_media): New insn.  Split to movdi to load constants.
18916         (movsi): Enable for shmedia.
18917         (movdi_media): New insn.  Use shori_media to load wide constants.
18918         (short_media): New insn.
18919         (movdi): Enable for shmedia.
18920         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
18921         * config/sh/sh.h (CPP_SPEC): Added `m5'.
18922         (SUBTARGET_CPP_SPEC): Added `!m5'.
18923         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
18924         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
18925         to all other SH variants.
18926         (TARGET_DEFAULT): Set to SH1_BIT.
18927         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
18928         (BITS_PER_WORD): Raise to 64 on shmedia.
18929         (MAX_BITS_PER_WORD): Change to 64.
18930         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
18931         (INT_TYPE_SIZE): Keep as 32.
18932         (UNITS_PER_WORD): Raise to 8 on shmedia.
18933         (MIN_UNITS_PER_WORD): Keep as 4.
18934         (POINTER_SIZE): Raise to 64 on shmedia.
18935         (CONST_OK_FOR_J): New macro.
18936         (CONST_OK_FOR_LETTER_P): Use it.
18937         (processor_type): Add PROCESSOR_SH5.
18938         * config/sh/sh.md: Conditionalize all expands, insns and
18939         splits to TARGET_SH1.
18940         (cpu): Added sh5.
18941         (addsi3_compact): Renamed from...
18942         (addsi3): Now an expand.
18943         (addsi3_media, subsi3_media): New insns.
18944         (subsi3): Don't negate constants with SHmedia.
18945
18946         * hooks.c: New file.
18947         * hooks.h: New file.
18948         * Makefile.in (HOOKS_H): New.
18949         (TARGET_DEF_H): Added $(HOOKS_H).
18950         (OBJS): Added hooks.o.
18951         (cfgcleanup.o, bb-reorder.o): Added target.h.
18952         (hooks.o): Added dependencies.
18953         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
18954         (TARGET_INITIALIZER): this.
18955         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
18956         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
18957         * bb-reorder.c: Include target.h.
18958         (reorder_basic_blocks): Skip if cannot modify jumps.
18959         * cfgcleanup.c: Include target.h.
18960         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
18961
18962 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
18963
18964         * config/mips/mips.md (casesi_internal, casesi_internal_di):
18965         Protect jump delay slot instructions with .set noreorder and
18966         .set nomacro.
18967
18968 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
18969
18970         * config/mips/mips.md (casesi_internal_di): Calculate
18971         the index into the target offset table correctly.
18972
18973 2002-02-08  Richard Henderson  <rth@redhat.com>
18974
18975         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
18976         * final.c (output_addr_const): Accept and discard SUBREG.
18977         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
18978         mark them unknown instead.
18979         (simplify_subtraction): Handle RTX_UNKNOWN.
18980         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
18981
18982 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
18983
18984         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
18985
18986 2002-02-08  Richard Henderson  <rth@redhat.com>
18987
18988         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
18989
18990 2002-02-08  Andreas Jaeger  <aj@suse.de>
18991
18992         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
18993         * config/i386/t-linux64: New file.
18994
18995 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
18996
18997         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
18998         * c-parse.in (compstmt): Clear last_expr_type.
18999
19000 2002-02-07  Richard Henderson  <rth@redhat.com>
19001
19002         * loop.c (strength_reduce): Sink final_value when not
19003         eliminating a biv.
19004
19005 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
19006
19007         * config/sparc/freebsd.h: Fix mismatched spec {.
19008
19009 2002-02-07  Richard Henderson  <rth@redhat.com>
19010
19011         * cfgrtl.c: Include recog.h and insn-config.h.
19012         (keep_with_call_p): Fix general_operand invocation.
19013         * Makefile.in (cfgrtl.o): Update dependencies.
19014
19015 2002-02-07  Kazu Hirata  <kazu@hxi.com>
19016
19017         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
19018         comment.  Accept HImode only if TARGET_H8300.
19019
19020 2002-02-07  Eric Christopher  <echristo@redhat.com>
19021
19022         * config/mips/crtn.asm: Cleanup #ifdefs.
19023
19024 2002-02-07  Eric Christopher  <echristo@redhat.com>
19025
19026         * config/mips/crti.asm: Add changes for mips16. mips16 uses
19027         register 7 as RA instead of $31.
19028         * config/mips/crtn.asm: Ditto.
19029         * config/mips/mips.c (mips_move_2words): Add case for
19030         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
19031         (compute_frame_size): Fix typo.
19032         (save_restore_insns): Ditto.  Make documentation about using
19033         register $7 as return register more precise.
19034         (mips_expand_epilogue): Fix comment. Add code to work around not
19035         being able to add to the stack pointer directly.
19036         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
19037         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
19038         epilogue.
19039
19040 2002-02-07  Tom Rix  <trix@redhat.com>
19041
19042         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
19043         immediates in ldu and stdu DS opcode field.
19044         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
19045         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
19046         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
19047
19048 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
19049
19050         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
19051         offset for stack bias.
19052
19053 2002-02-07  H.J. Lu <hjl@gnu.org>
19054
19055         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
19056
19057 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
19058
19059         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
19060
19061 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
19062
19063         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
19064         * i386.c (x86_order_regs_for_local_alloc): New global function.
19065         * i386.h (REG_ALLOC_ORDER): CLeanup.
19066         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
19067
19068 2002-02-07  Richard Henderson  <rth@redhat.com>
19069
19070         PR optimization/2463
19071         * alias.c (find_base_value): Recall base values for fixed hard regs.
19072         * loop.c (loop_regs_update): Don't use single_set on non-insns.
19073
19074 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
19075
19076         * config/mips/mips.md (define_delay) [mips16]: Adjust required
19077         length.
19078
19079 2002-02-06  Richard Henderson  <rth@redhat.com>
19080
19081         PR c/5609
19082         * stmt.c (resolve_operand_name_1): Take more care with mixed
19083         named and unnamed operands.
19084
19085 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
19086             Jan Hubicka  <jh@suse.cz>
19087
19088         * loop.c (remove_constant_addition): Avoid clobbering a shared
19089         CONST expression.
19090
19091 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19092
19093         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
19094         * config/s390/t-linux64: New file.
19095         * config/s390/libgcc-glibc.ver: New file.
19096
19097 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19098
19099         * config/s390/linux64.h: Delete file.
19100         * config/s390/s390x.h: New file.
19101         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
19102         as target header file.
19103         * config/s390/linux.h (TARGET_VERSION): Define depending on
19104         DEFAULT_TARGET_64BIT.
19105         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
19106         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
19107         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
19108         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
19109         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
19110         (EXTRA_SPEC): New define.
19111         * config/s390/s390.h (TARGET_VERSION): Define depending on
19112         DEFAULT_TARGET_64BIT.
19113         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
19114
19115 2002-02-06  Jason Merrill  <jason@redhat.com>
19116
19117         * c-decl.c (finish_function): Warn about a non-void function with
19118         no return statement and no abnormal exit.
19119         (current_function_returns_abnormally): New variable.
19120         (start_function): Clear it.
19121         (struct c_language_function): Add returns_abnormally.
19122         (push_c_function_context): Save it.
19123         (pop_c_function_context): Restore it.
19124         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
19125         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
19126         an explicit return type.
19127         * c-tree.h: Declare current_function_returns_abnormally.
19128         (C_FUNCTION_IMPLICIT_INT): New macro.
19129         * c-typeck.c (build_function_call): Set it.
19130         (c_expand_return): Set current_function_returns_value even if the
19131         value is erroneous.
19132
19133 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19134
19135         PR c/5420:
19136         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
19137         unsafe for reevaluation.
19138
19139 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19140
19141         PR c/5482:
19142         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
19143         EXPR_STMT, but COMPOUND_STMT, recurse into it.
19144
19145 2002-02-06  Richard Henderson  <rth@redhat.com>
19146
19147         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
19148         be a general_operand.  Dest for function value must be a pseudo.
19149
19150 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
19151
19152         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
19153         as SYMBOL_REFs from the constant pool.
19154
19155 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
19156
19157         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
19158         passed by invisible reference.
19159
19160 2002-02-05  Richard Henderson  <rth@redhat.com>
19161
19162         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
19163
19164 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
19165
19166         Implement using "base addresses" in insn operands as default.
19167         * config/mmix/mmix.c (mmix_conditional_register_usage): if
19168         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
19169         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
19170         used to read the rtx value.
19171         (mmix_target_asm_function_epilogue): Fix spacing.
19172         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
19173         (mmix_legitimate_address): Ditto.
19174         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
19175         should be loaded with a GETA insn.  Don't allocate needless extra
19176         char for nul termination and fix misleading comment.
19177         (mmix_print_operand_address): Handle constants if
19178         TARGET_BASE_ADDRESSES.
19179         (mmix_output_register_setting): Use base addressing if
19180         TARGET_BASE_ADDRESSES and the number of insns is 3.
19181         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
19182         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
19183         to use R as constraint, add LDA to match s.
19184         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
19185         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
19186         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
19187         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
19188         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
19189         order with other fixed registers.
19190         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
19191         other parameter/call-clobbered registers.
19192         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
19193         -mbase-addresses, -mno-base-addresses.
19194         (MMIX Options): Ditto.
19195
19196 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19197
19198         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
19199
19200 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
19201
19202         * config/rs6000/altivec.h: Change elem to _S_elem.
19203
19204 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
19205
19206         * config/netbsd.h (WCHAR_TYPE): Define.
19207         (WCHAR_TYPE_SIZE): Ditto.
19208         (WINT_TYPE): Ditto.
19209         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
19210         (WCHAR_UNSIGNED): Ditto.
19211         (WCHAR_TYPE_SIZE): Ditto.
19212         (WINT_TYPE): Ditto.
19213         * config/arm/netbsd.h: Likewise.
19214         * config/i386/netbsd-elf.h: Likewise.
19215         * config/i386/netbsd.h: Likewise.
19216         * config/m68k/netbsd-elf.h: Likewise.
19217         * config/m68k/netbsd.h: Likewise.
19218         * config/ns32k/netbsd.h: Likewise.
19219         * config/sparc/netbsd.h: Likewise.
19220         * config/vax/netbsd.: Likewise.
19221
19222 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
19223
19224         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
19225         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
19226         (TARGET_INITIALIZER): this.
19227         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
19228         (BITFIELD_NBYTES_LIMITED): Markup fix.
19229         * tree.h (default_ms_bitfield_layout_p): Declare.
19230         (record_layout_info): Added prev_field.
19231         * tree.c (default_ms_bitfield_layout_p): New fn.
19232         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
19233         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
19234         * stor-layout.c: Include target.h.
19235         (start_record_layout): Initialize prev_field.
19236         (place_field): Handle MS bit-field layout, and disregard
19237         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
19238         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
19239         * Makefile.in (stor-layout.o): Adjust dependencies.
19240
19241 2002-02-05  Jason Merrill  <jason@redhat.com>
19242
19243         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
19244
19245 2002-02-05  Andreas Jaeger  <aj@suse.de>
19246
19247         * crtstuff.c: Fix comments.
19248
19249 2002-02-05  Richard Henderson  <rth@redhat.com>
19250
19251         PR fortran/3393
19252         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
19253         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
19254
19255         PR fortran/3392
19256         * config/mips/mips.c (function_arg): Handle TImode.
19257         (function_arg_advance): Likewise.
19258
19259 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19260
19261         * config/rs6000/altivec.h (vec_step_help): Rename to
19262         __vec_step_help.
19263
19264 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19265
19266         * config/rs6000/altivec.h: Fix typos.
19267
19268 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
19269
19270         * config/arm/netbsd.h: Correct a comment.
19271
19272 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19273
19274         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
19275         building void typed builtins.
19276
19277         * config/rs6000/altivec.h (vec_ld*): Fix typos.
19278         (vec_step): Implement for C++.
19279
19280 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19281
19282         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
19283
19284 2002-02-04  Richard Henderson  <rth@redhat.com>
19285
19286         * combine.c (nonzero_bits): Re-introduce special case for
19287         sp/fp/ap wrt REGNO_POINTER_ALIGN.
19288
19289 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
19290
19291         * doc/extend.texi: Warn about unsupported usage of altivec
19292         builtins.
19293
19294         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
19295         (altivec_predicate_*): New.
19296
19297         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
19298         Add C++ version of vec_*() functions.
19299
19300         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
19301         (bdesc_2arg): Remove altivec predicates.
19302         (altivec_expand_builtin): Handle predicates.
19303         (altivec_init_builtins): Handle predicates.
19304         (altivec_expand_predicate_builtin): New.
19305
19306 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19307
19308         * pa.c (DO_FRAME_NOTES): Move forward.
19309         (store_reg): Revise handling of frame notes.
19310         (load_reg): Likewise.
19311         (set_reg_plus_d): Likewise.
19312         (hppa_expand_prologue): Likewise.
19313         (hppa_expand_epilogue): Likewise.
19314
19315 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19316
19317         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
19318
19319 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19320
19321         PR c/4475, c++/3780:
19322         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
19323         * c-common.h (SWITCH_TYPE): Define.
19324         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
19325         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
19326         Rename spareness variable to sparseness.
19327         (expand_end_case_type): Renamed from expand_end_case, use orig_type
19328         if non-NULL instead of TREE_TYPE (orig_index).
19329         * tree.h (expand_end_case_type): Renamed from expand_end_case.
19330         (expand_end_case): Define using expand_end_case_type.
19331         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
19332         to expand_end_case_type.
19333         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
19334
19335 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19336
19337         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
19338         (BIGGEST_ALIGNMENT): Change to 128.
19339
19340 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19341
19342         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
19343
19344 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19345
19346         * pa.md (call_internal_reg_64bit): Remove unused variable.
19347
19348 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
19349
19350         * config/arm/arm.h (machine_function): Add uses_anonymous_args
19351         field.
19352         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
19353         * config/arm/arm.c (current_function_anonymous_args): Delete,
19354         replace uses with cfun->machine->uses_anonymous_args.
19355         (arm_reorg): Do not reset uses_anonymous_args.
19356
19357         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
19358         any geenral register.
19359
19360 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
19361
19362         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
19363         the entry block.
19364
19365 2002-02-04  Richard Henderson  <rth@redhat.com>
19366
19367         * combine.c (force_to_mode): Remove STACK_BIAS code.
19368         (nonzero_bits): Likewise.  Replace sp/fp special case with
19369         REGNO_POINTER_ALIGN.
19370
19371         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
19372         (HARD_FRAME_POINTER_REGNUM): New.
19373         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
19374         (FIXED_REGS, CALL_USED_REGS): Update.
19375         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
19376         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
19377         (HARD_REGNO_NREGS): Update for SFP.
19378         (STACK_POINTER_OFFSET): Include bias here ...
19379         (FIRST_PARM_OFFSET): ... not here.
19380         (STACK_BIAS): Remove.
19381         (INIT_EXPANDERS): New.
19382         (STARTING_FRAME_OFFSET): Do not include bias.
19383         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
19384         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
19385         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
19386         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
19387         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
19388         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
19389         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
19390         (MUST_SAVE_REGISTER): Likewise.
19391         (sparc_flat_function_prologue): Likewise.
19392         (sparc_flat_function_epilogue): Likewise.
19393         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
19394         (sparc_init_modes): SFP is GENERAL_REGS.
19395         (sparc_builtin_saveregs): SFP does not have bias applied.
19396
19397 2002-02-04  Richard Henderson  <rth@redhat.com>
19398
19399         * config/alpha/alpha.c (current_function_is_thunk): Don't check
19400         current_function_is_thunk.
19401         (alpha_sa_mask): Distinguish between current_function_is_thunk
19402         called from ASM_OUTPUT_MI_THUNK and not.
19403         (alpha_does_function_need_gp): Thunks always need gp.
19404         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19405         (alpha_output_mi_thunk_osf): New.
19406         * config/alpha/alpha-protos.h: Update.
19407         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
19408
19409 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
19410
19411         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
19412         function types, not when they're taken away.
19413
19414 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
19415
19416         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
19417         CODE_LABEL and jump table when replacing a table jump with a
19418         simple jump.
19419
19420 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
19421
19422         * config/s390/s390-protos.h (legitimize_la_operand,
19423         s390_secondary_input_reload_class, s390_plus_operand,
19424         s390_expand_plus_operand): Add prototypes.
19425
19426         config/s390/s390.c (s390_secondary_input_reload_class,
19427         s390_plus_operand, s390_expand_plus_operand): New functions.
19428
19429         (struct s390_address): New member 'pointer'.
19430         (s390_decompose_address): Compute it.
19431         (legitimate_la_operand_p): Use it.
19432         (legitimize_la_operand): New function.
19433         (movti, movdi, movdf splitters): Call it.
19434
19435         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
19436         (PREDICATE_CODES): Add s390_plus_operand.
19437
19438         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
19439         (la_ccclobber): Allow GENERAL_REGS as output operand.
19440
19441         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
19442         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
19443         (*la_64, *la_31, reload_indi, reload_insi): ... these.
19444
19445 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
19446
19447         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
19448         register names for regular asm () construct.
19449
19450 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19451
19452         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
19453         registers.
19454
19455 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
19456
19457         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
19458         pat for recog.
19459
19460 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
19461
19462         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
19463         constant pool to be identical by string address and index.
19464
19465 2002-02-04  Anthony Green  <green@redhat.com>
19466
19467         * output.h (SECTION_OVERRIDE): Define.
19468         * varasm.c (named_section): Obey SECTION_OVERRIDE.
19469
19470 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
19471
19472         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
19473         by existing arm*-*-netbsd* (a.out) target.
19474         (ns32k-*-netbsdelf*): Likewise.
19475         (sparc-*-netbsdelf*): Likewise.
19476         (vax-*-netbsdelf*): Likewise.
19477
19478 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
19479
19480         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
19481         headers and libobjc headers.
19482
19483 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
19484
19485         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
19486         (_mingw.h): Remove duplicate include.
19487
19488 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
19489
19490         * config.gcc: Set cpu_type to m68k for 68010, as well.
19491         (m68010-*-netbsdelf*): New...
19492         (m68k*-*-netbsdelf*): ...targets.
19493         * config/m68k/netbsd-elf.h: New file.
19494
19495 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19496
19497         * config/h8300/h8300.c (hand_list): Move inside function_arg.
19498
19499 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19500
19501         * config/h8300/h8300.c (h8_push_ops): Move inside
19502         h8300_init_once.
19503         (h8_pop_ops): Likewise.
19504         (h8_move_ops): Likewise.
19505
19506 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19507
19508         * config/h8300/h8300.c (os_task): Make it static.
19509         (monitor): Likewise.
19510         (pragma_saveall): Likewise.
19511
19512 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
19513
19514         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
19515         constant is a valid sign-extension for Pmode.
19516
19517 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19518
19519         * config/h8300/h8300.c: Fix formatting.
19520
19521 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19522
19523         * config/h8300/h8300.md: Fix formatting.
19524
19525 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19526
19527         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
19528         predicates of operands[1].  Split the patterns for each
19529         processor variant.
19530
19531 2002-02-02  Kazu Hirata  <kazu@hxi.com>
19532
19533         * config/h8300/h8300.md (xor patterns): Tighten the predicates
19534         of operands[1] to register_operand.
19535
19536 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
19537
19538         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
19539         * cpphash.c (_cpp_init_hashtable): Similarly.
19540         * cppinit.c (cpp_create_reader): Default the signed_char flag.
19541         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
19542         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
19543         (cpp_handle_option): Handle the new options.
19544         * cpplex.c (cpp_interpret_charconst): Use new flag.
19545         * cpplib.h (struct cpp_options): New member signed_char.
19546         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
19547         (cpp_options): Handle -fsigned-char and -funsigned-char.
19548         (static_specs): Remove signed_char_spec.
19549         (do_spec1): Don't handle %c.
19550         * system.h: Poison SIGNED_CHAR_SPEC.
19551         * tradcif.y (yylex): Use flag_signed_char.
19552         * tradcpp.h (flag_signed_char): New.
19553         * tradcpp.c (flag_signed_char): New.
19554         (main): Handle new command-line options.
19555         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
19556 config:
19557         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
19558         * avr/avr.h: Remove old comments.
19559         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
19560         (CC1_SPEC): Pass -fsigned-char if -mic*.
19561         (SIGNED_CHAR_SPEC): Remove.
19562 doc:
19563         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
19564
19565 2002-02-01  Eric Christopher  <echristo@redhat.com>
19566
19567         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
19568         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
19569         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
19570         (ASM_OUTPUT_REG_POP): Ditto.
19571
19572 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
19573
19574         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
19575         patch.
19576
19577 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
19578
19579         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
19580
19581 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
19582
19583         PR c/5304:
19584         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
19585         unconditionally.
19586
19587 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
19588
19589         * cfganal.c: Include tm_p.h.
19590         (keep_with_call_p): Fix the test that determines if a register holds
19591         the return value of a call.
19592
19593 2002-02-01  DJ Delorie  <dj@redhat.com>
19594
19595         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
19596         we are given conflicting registers, switch to the other one we
19597         had allocated for us.
19598         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
19599         as TImode so we know when the "other" register is available.
19600
19601 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
19602
19603         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
19604         sparc/sparc_bi.h.
19605
19606 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
19607
19608         * cfganal.c (keep_with_call_p): New function.
19609         (flow_call_edges_add): Prevent splitting a block between a call and
19610         a single-set instruction that should be kept in the same block.
19611
19612 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19613
19614         * doc/install.texi (avr): Update outdated URL.
19615
19616 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
19617
19618         * config/stormy16/stormy16.md (pushqi): New.
19619         (popqi): New.
19620         (pushhi): New.
19621         (pophi): New.
19622         (movhi): Remove stack operands.
19623         (movqi): Likewise.
19624         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
19625         nonimmediate_nonstack_operand.
19626         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
19627         New.
19628         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
19629         New.
19630
19631 2002-01-31  Jason Merrill  <jason@redhat.com>
19632
19633         * Makefile.in (c-parse.c): Handle .output file.
19634         * objc/Make-lang.in (objc-parse.c): Likewise.
19635
19636 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
19637
19638         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
19639         the -me[lb] option is given.  Don't output the default flag
19640         twice.
19641
19642 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
19643
19644         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
19645         the primary source file; this has not been done yet.
19646         * c-decl.c (c_expand_body): Reset input_filename from
19647         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
19648
19649 2002-01-31  Kazu Hirata  <kazu@hxi.com>
19650
19651         * rtlanal.c (subreg_regno_offset): Do not use
19652         SUBREG_REGNO_OFFSET.
19653         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
19654         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
19655
19656 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
19657
19658         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
19659         version rather than GNATS version in --version output.
19660
19661 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
19662
19663         * ifcvt.c (noce_process_if_block): Make a copy of the destination
19664         when copying back from a temporary.
19665
19666 2002-01-30  Richard Henderson  <rth@redhat.com>
19667
19668         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
19669         and new_dest are the same.
19670
19671 2002-01-30  Richard Henderson  <rth@redhat.com>
19672
19673         PR opt/5076
19674         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
19675         * rtl.c (note_insn_name): Update.
19676         * emit-rtl.c (remove_unnecessary_notes): Kill it.
19677         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
19678         to perform loop rotation.
19679         (expand_exit_loop_top_cond): New.
19680         * tree.h (expand_exit_loop_top_cond): Declare it.
19681         * c-semantics.c (genrtl_while_stmt): Use it.
19682         (genrtl_for_stmt): Likewise.
19683
19684 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
19685
19686         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
19687         arguments to 64-bit boundaries on 64-bit ABIs.
19688
19689 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
19690
19691         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
19692
19693 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
19694
19695         * c-decl.c (grokdeclarator): Handle type being a typedef for an
19696         invalid type.
19697
19698 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
19699
19700         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
19701         * config/sparc/sparc_bi.h: Remove file.
19702         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
19703
19704 2002-01-30  Richard Henderson  <rth@redhat.com>
19705
19706         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
19707
19708 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
19709
19710         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
19711
19712 2002-01-30  Jason Merrill  <jason@redhat.com>
19713
19714         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
19715         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
19716         (reg_save): Use DW_CFA_offset_extended_sf instead.
19717
19718         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
19719
19720 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19721
19722         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
19723         in cselib_lookup.
19724
19725 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
19726
19727         * rs6000.md ("*call_value_local32"): Remove constraints.
19728         ("*call_value_local64"): Same.
19729         ("*call_value_indirect_nonlocal_aix32"): Same.
19730         ("*call_value_nonlocal_aix32"): Same.
19731         ("*call_value_indirect_nonlocal_aix64"): Same.
19732         ("*call_value_nonlocal_aix64"): Same.
19733         ("*call_value_nonlocal_sysv"): Same.
19734
19735 2002-01-29  Richard Henderson  <rth@redhat.com>
19736
19737         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
19738
19739 2002-01-29  Richard Henderson  <rth@redhat.com>
19740
19741         * expr.c (force_operand): Ignore flag_pic for detecting pic
19742         address loads.
19743         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
19744         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
19745         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
19746         instead of open-coded loop.
19747         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
19748         be fixed when in use.
19749
19750 2002-01-29  Richard Henderson  <rth@redhat.com>
19751
19752         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
19753         * sched-rgn.c (propagate_deps): Update them.
19754         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
19755         clobbers list when either gets too long.
19756
19757 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19758
19759         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
19760         and INDEX_REGS the same as GENERAL_REGS.
19761         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
19762
19763 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19764
19765         * tree.c (build_nonstandard_integer_type): Correct prototype.
19766
19767 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
19768
19769         * config/s390/s390.md (movstrsico, movstrdix_64,
19770         movstrsix_31): Remove, replace by ...
19771         (movstrdi_short, movstrsi_short, movstrdi_long,
19772         movstrsi_long): ... these.  New.
19773         (movstrdi, movstrsi): Adapt.
19774
19775         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
19776         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
19777         Remove unnecessary CC clobber.
19778         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
19779         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
19780
19781         (divmoddi4): Don't partially initialize TImode register.
19782
19783 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
19784
19785         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
19786
19787 2002-01-29  Richard Henderson  <rth@redhat.com>
19788
19789         * flow.c (print_rtl_and_abort): Remove.
19790         (print_rtl_and_abort_fcn): Remove.
19791         (verify_local_live_at_start): Use dump_bb instead.
19792         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
19793         (verify_wide_reg_1): Return 2 on mode test failure.
19794
19795 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19796
19797         PR c/3325, c/3326, c/2511, c/3347
19798         * c-decl.c (enum_decl_context): Remove BITFIELD.
19799         (grokdeclarator): Take bitfield width as an input.
19800         Ensure bitfields are given the correct type.  Perform
19801         bitfield width validation with build_bitfield_integer_type
19802         rather than waiting for finish_struct.
19803         (grok_typename, grok_typename_in_parm_context, start_decl,
19804         push_parmdecl, grokfield, start_function): Update calls to
19805         grokdeclarator.
19806         (build_bitfield_integer_type): New function.
19807         (finish_struct): Move bitfield validation to grokdeclarator
19808         and build_bitfield_integer_type.
19809         * tree.c (build_nonstandard_integer_type): New function.
19810         * tree.h (build_nonstandard_integer_type): New prototype.
19811 objc:
19812         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
19813
19814 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
19815
19816         PR other/1502:
19817         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
19818         don't ignore unrecognized -W* options.
19819         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
19820         * cpplib.h (cpp_handle_option): Adjust prototype.
19821         * c-decl.c (c_decode_options): Pass 0 as last argument to
19822         cpp_handle_option.
19823
19824         PR c/2896:
19825         * gcc.c (cpp_unique_options): Split from cpp_options.
19826         (cpp_options): Source cpp_unique_options.
19827         (default_compilers): Use cpp_unique_options instead of cpp_options
19828         when used together with cc1_options.
19829         (static_specs): Add cpp_unique_options.
19830         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
19831         when used together with cc1_options.
19832
19833 2002-01-29  Kazu Hirata  <kazu@hxi.com>
19834
19835         * config/h8300/h8300-protos.h: Update the prototype of
19836         output_a_shift.
19837         * config/h8300/h8300.c (output_a_shift): Remove an unused
19838         argument 'insn'.  Remove redundant code.
19839         * config/h8300/h8300.md: Adust to the new prototype of
19840         output_a_shift.
19841
19842 2002-01-29  Kazu Hirata  <kazu@hxi.com>
19843
19844         * config/h8300/h8300-protos.h: Update the prototypes of
19845         emit_a_rotate and expand_a_rotate.
19846         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
19847         first argument to 'enum rtx_code'.
19848         (expand_a_rotate): Likewise.
19849
19850 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19851
19852         * config/h8300/h8300-protos.h: Update the prototype of
19853         output_simode_bld.
19854         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
19855         'log2'.
19856         * config/h8300/h8300.md: Adjust to the new prototype.
19857
19858 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19859
19860         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
19861         redundant code.
19862
19863 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19864
19865         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
19866         is a fixed register before returning pic_offset_table_rtx.
19867         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
19868         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
19869
19870 2002-01-28  Jason Merrill  <jason@redhat.com>
19871
19872         * dwarf2.h: Sync with src version.
19873
19874 2002-01-28  Paul Koning  <pkoning@equallogic.com>
19875
19876         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
19877         BT_FN_VOID_PTR_VAR.
19878         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
19879         * doc/extend.texi (__builtin_prefetch): Update documentation:
19880         first argument is now const void ptr.
19881
19882 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19883
19884         * config/h8300/h8300-protos.h: Remove an unused prototype.
19885
19886 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
19887
19888         * toplev.c (lang_independent_init): Round up identifier size.
19889
19890 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
19891
19892         * config.gcc: Revert previous change.
19893
19894 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
19895
19896         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
19897
19898 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
19899
19900         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
19901         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
19902         other non-elf netbsd config frags.
19903         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
19904         collect2 will does that.
19905         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
19906         shared-lib frobbing will work.
19907
19908 2002-01-28  Kazu Hirata  <kazu@hxi.com>
19909
19910         * config/h8300/h8300.h: Fix formatting.
19911         * config/h8300/h8300.md: Likewise.
19912
19913 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
19914
19915         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
19916         the old, removed AAA_standards fix.
19917         * fixinc/fixincl.x: Rebuilt.
19918
19919 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
19920
19921         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
19922         atexit call in crtbegin, hooked in after call to frame_dummy;
19923         register EH before registering __fini__start.
19924
19925 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
19926
19927         * config/rs6000/altivec.h: Remove spurious semicolons.
19928
19929 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19930
19931         * config/h8300/h8300.md: Replace dead bit extraction patterns
19932         with ones that work.
19933
19934 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19935
19936         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
19937         if not STRICT_ALIGNMENT.
19938         * rtl.h (MEM_ALIGN): Likewise.
19939
19940 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19941
19942         * doc/invoke.texi (-fdump-translation-unit): Revert this
19943         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19944
19945 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19946
19947         * config/h8300/h8300.md (define_constants): New.
19948         (anonymous patterns) Use defined constants appropriately.
19949
19950 2002-01-27  Kazu Hirata  <kazu@hxi.com>
19951
19952         * config/h8300/h8300.c (function_arg): Remove redundant code.
19953
19954 2002-01-26  Richard Henderson  <rth@redhat.com>
19955
19956         * sched-deps.c (reg_pending_uses_head): New.
19957         (reg_pending_barrier): Rename from reg_pending_sets_all.
19958         (find_insn_list): Don't mark inline.
19959         (find_insn_mem_list): Remove.
19960         (add_dependence_list, add_dependence_list_and_free): New.
19961         (flush_pending_lists): Replace only_write param with separate
19962         for_read and for_write parameters.  Update all callers.  Use
19963         add_dependence_list_and_free.
19964         (sched_analyze_1): Do not add reg dependencies here; just set
19965         the pending bits.  Use add_dependence_list.
19966         (sched_analyze_2): Likewise.
19967         (sched_analyze_insn): Replace schedule_barrier_found with
19968         reg_pending_barrier.  Add all dependencies for pending reg
19969         uses, sets, and clobbers.
19970         (sched_analyze): Don't add reg dependencies for calls, just
19971         set pending bits.  Use regs_invalidated_by_call.  Treat
19972         sched_before_next_call as a normal list, not a fake insn.
19973         (init_deps): No funny init for sched_before_next_call.
19974         (free_deps): Free pending mems lists.  Don't zero reg_last.
19975         (init_deps_global): Init reg_pending_uses.
19976         (finish_deps_global): Free it.
19977         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
19978         (find_insn_mem_list): Remove.
19979         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
19980         (propagate_deps): Use them.  Zero temp mem lists.
19981
19982 2002-01-26  Richard Henderson  <rth@redhat.com>
19983
19984         * Makefile.in (CRTSTUFF_CFLAGS): New.
19985         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
19986         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
19987         crtstuff.c instead of alpha assembly version.
19988         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
19989         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
19990         not FORCE_{INIT,FINI}_SECTION_ALIGN.
19991         (__do_global_dtors_aux): Mark used.
19992         (frame_dummy, __do_global_ctors_aux): Mark used.
19993         (fini_dummy, init_dummy): Remove.
19994
19995         * config/alpha/crtbegin.asm: Remove file.
19996         * config/alpha/crtend.asm: Remove file.
19997         * config/alpha/t-crtbe: Remove file.
19998         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
19999         (LINK_EH_SPEC): New.
20000
20001         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
20002         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
20003         calling constructors.
20004         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
20005
20006         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
20007         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
20008         CRT_END_INIT_DUMMY hack.
20009         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
20010         FORCE_{INIT,FINI}_SECTION_ALIGN.
20011
20012         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
20013         FORCE_{INIT,FINI}_SECTION_ALIGN.
20014
20015         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
20016         invocation sequence.
20017         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
20018
20019         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
20020         (FORCE_CODE_SECTION_ALIGN): New.
20021
20022 2002-01-26  Richard Henderson  <rth@redhat.com>
20023
20024         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
20025
20026 2002-01-26  Richard Henderson  <rth@redhat.com>
20027
20028         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
20029         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
20030
20031 2002-01-26  Kazu Hirata  <kazu@hxi.com>
20032
20033         * config/h8300/h8300.md: Remove bit extraction patterns that
20034         cannot be triggered.
20035         Restrict each bit extraction pattern to a variant on which the
20036         pattern is tested.
20037
20038 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
20039
20040         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
20041
20042 2002-01-26  Kazu Hirata  <kazu@hxi.com>
20043
20044         * config/h8300/h8300.md: Remove bit test patterns that cannot
20045         be triggered.
20046         Restrict each bit test pattern to a variant on which the
20047         pattern is tested.
20048
20049 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20050
20051         * builtins.c (expand_builtin_strncat): Remove redundant check for
20052         INTEGER_CST.
20053
20054 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20055
20056         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
20057         default setting.
20058         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
20059         existing setting.
20060
20061 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20062
20063         * dbxout.c (dbxout_init): Use assemble_name rather than just
20064         stripping off the first character.
20065         (dbxout_source_file): Likewise.
20066
20067 2002-01-25  DJ Delorie  <dj@redhat.com>
20068
20069         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
20070         using rtx_equal_p, not by comparing pointers.
20071
20072 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
20073
20074         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
20075         for PIC_OFFSET_TABLE_REGNUM.
20076         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
20077
20078 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20079
20080         * config.gcc (x86_64-*-freebsd*): New target.
20081         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
20082         value.
20083         (i[34567]86-*-freebsd*): Don't include svr4.h.
20084         * config/i386/freebsd64.h: New file.
20085
20086 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
20087
20088         * config/alpha/x-vms (version): Make static.
20089
20090         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
20091         in previous checkin.
20092
20093         * Makefile.in (install-headers-cp): New target.
20094         * config.gcc (alpha-dec-*vms*): Install headers with
20095         install-headers-cp
20096
20097 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
20098
20099         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
20100         avoid it's copies.
20101
20102 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20103
20104         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
20105         of compare_tree_int.
20106         (expand_builtin_strncat): Likewise.
20107         * c-decl.c (finish_struct): Use tree_low_cst.
20108         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
20109         * tree.c (compare_tree_int): Likewise.
20110
20111 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
20112
20113         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
20114         adjustments even if they are implemented by more than two insns.
20115
20116 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
20117
20118         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
20119         * df.h (struct ref): Kill B.
20120         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
20121
20122         * basic-block.h (PROP_EQUAL_NOTES): New flag.
20123         * flow.c (propagate_one_insn): Use it.
20124         (mark_used_regs): Handle NIL.
20125
20126 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20127
20128         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
20129         to help folding.
20130
20131 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
20132
20133         * rs6000.md (prefetch): Make address V4SI mode so that the address
20134         is restricted to legitimate form for instruction.
20135
20136 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
20137
20138         * doc/install.texi (xtensa-*-elf): New target.
20139         (xtensa-*-linux*): New target.
20140         * doc/contrib.texi: Add myself.
20141
20142 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
20143
20144         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
20145         purpose register to hold an SImode (or smaller) value.
20146
20147 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
20148
20149         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
20150         registry only.
20151         * crtstuff.c: Likewise.
20152
20153 2002-01-25  Kazu Hirata  <kazu@hxi.com>
20154
20155         * config/h8300/h8300.md (negation patterns): Tighten
20156         predicates to register_operand.
20157
20158 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
20159
20160         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
20161         mode, not Pmode.
20162
20163         * builtins.c (expand_builtin_prefetch): Same.
20164
20165 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20166
20167         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
20168         modes.
20169
20170 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20171
20172         * config/h8300/h8300.c (print_operand): Remove support for
20173         operand character 'A'.
20174         * config/h8300/h8300.md (three anonymous patterns): Replace
20175         operand character 'A' with either 'T' or 'S'.
20176
20177 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20178
20179         * config/h8300/h8300.c (print_operand): Remove support for
20180         operand character 'U'.
20181
20182 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
20183
20184         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
20185
20186 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
20187
20188         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
20189         values to be assigned to the stack pointer.
20190
20191 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
20192
20193         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
20194         to const_double needs to be done right for big-endian systems.
20195
20196 2002-01-24  Jason Merrill  <jason@redhat.com>
20197
20198         PR c++/2432
20199         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
20200         to can_throw_internal.
20201
20202 2002-01-23  Richard Henderson  <rth@redhat.com>
20203
20204         * fold-const.c (fold): Change UINT_MAX test to check vs precision
20205         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
20206
20207 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20208
20209         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
20210         (symGOT2reg): Use them, then set as GOT value as unchanging.
20211         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
20212         as a temporary, if possible.
20213         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
20214         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
20215
20216 2002-01-23  Kazu Hirata  <kazu@hxi.com>
20217
20218         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
20219         accept to accept 0x80 as operands[2].
20220
20221 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20222
20223         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
20224
20225 2002-01-23  Richard Henderson  <rth@redhat.com>
20226
20227         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
20228
20229 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
20230
20231         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
20232         (parmlist_or_identifiers_1): Verify that only a parmlist follows
20233         an attribute.
20234
20235 2002-01-23  Richard Henderson  <rth@redhat.com>
20236
20237         * expr.c (move_by_pieces_1): Extend size before negation.
20238
20239         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
20240         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
20241         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
20242         * config/m68k/t-m68kelf: Likewise.
20243
20244 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
20245
20246         * config/xtensa/elf.h: New file.
20247         * config/xtensa/lib1funcs.asm: New file.
20248         * config/xtensa/lib2funcs.S: New file.
20249         * config/xtensa/linux.h: New file.
20250         * config/xtensa/t-xtensa: New file.
20251         * config/xtensa/xtensa-config.h: New file.
20252         * config/xtensa/xtensa-protos.h: New file.
20253         * config/xtensa/xtensa.c: New file.
20254         * config/xtensa/xtensa.h: New file.
20255         * config/xtensa/xtensa.md: New file.
20256         * config.gcc (xtensa-*-elf*): New target.
20257         (xtensa-*-linux*): New target.
20258         * cse.c (canon_hash): Compare rtx pointers instead of register
20259         numbers.  This is required for the Xtensa port.
20260         * integrate.c (copy_insn_list): Handle case where the static
20261         chain is in memory and the memory address has to be copied to
20262         a register.
20263         * doc/invoke.texi (Option Summary): Add Xtensa options.
20264         (Xtensa Options): New node.
20265         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
20266
20267 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
20268
20269         * diagnostic.c (internal_error): Do ICE suppression only
20270         when ENABLE_CHECKING is not defined.
20271
20272         * c-typeck.c (require_complete_type): Return error_mark_node
20273         if type is error_mark_node.
20274
20275 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
20276
20277         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
20278         -Os and issue a warning.
20279
20280 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
20281
20282         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
20283         current (lack of) need for host configuration by hand.
20284
20285         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
20286         references.  Documentation of some target macros moved from
20287         hostconfig.texi to tm.texi.
20288
20289 2002-01-23  Will Cohen  <wcohen@redhat.com>
20290
20291         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
20292         defined.
20293
20294 2002-01-23  Kazu Hirata  <kazu@hxi.com>
20295
20296         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
20297         operand[3].
20298
20299 2002-01-23  Jason Merrill  <jason@redhat.com>
20300
20301         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
20302
20303         * function.c (assign_parms): Don't put args of inline functions
20304         into registers when not optimizing.
20305
20306 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
20307
20308         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
20309         (prologue_use): New pattern.
20310         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
20311         preference to gen_rtx_USE.
20312         (thumb_expand_prologue): Use gen_prologue_use in preference to
20313         gen_rtx_USE.
20314         (thumb_expand_epilogue): Use gen_prologue_use in preference to
20315         gen_rtx_USE.
20316
20317 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
20318
20319         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
20320
20321 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
20322
20323         PR c/3504
20324         * doc/extend.texi: Correct documentation of __alignof__.
20325
20326 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
20327
20328         * params.h: Rename arguments of DEFPARAM so that it will be
20329         recognized as a translation keyword.
20330
20331 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20332
20333         * extend.texi: Document altivec functions.
20334         Fix N-bit adjectives in X86 builtin documentation.
20335
20336 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
20337
20338         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
20339         auto_inc_dec values.
20340
20341 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
20342
20343         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
20344         after backslash.
20345         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
20346
20347 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
20348
20349         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
20350
20351 2002-01-22  Richard Henderson  <rth@redhat.com>
20352
20353         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
20354         copy_insn not copy_rtx.
20355
20356 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
20357
20358         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
20359         "nonzero" as that might add "1" bits.  Ensure "constop" is
20360         properly sign extened.
20361         (force_to_mode): Tweak for sign extended constop.
20362
20363 2002-01-22  Richard Henderson  <rth@redhat.com>
20364
20365         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
20366         for_each_rtx instead of assuming we're already looking at the MEM.
20367         (split_small_symbolic_mem_operand): Likewise.
20368         * config/alpha/alpha.h (PREDICATE_CODES): Update.
20369         * config/alpha/alpha.md (small symbolic memory splitters): Update.
20370
20371 2002-01-22  Richard Henderson  <rth@redhat.com>
20372
20373         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
20374         sequence number for the literal.
20375         (divmoddi_internal_er): Likewise.
20376
20377 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20378
20379         PR java/4972
20380         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
20381         in LIBICONV variable.
20382         * configure: Regenerated.
20383
20384 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
20385
20386         * dependence.c (build_def_use): Remove array_idx.
20387
20388         * dwarfout.c (last_filename): Remove.
20389         (output_compile_unit_die): Remove last_filename.
20390
20391 2002-01-22  Roger Sayle  <roger@eyesopen.com>
20392             Richard Henderson  <rth@redhat.com>
20393
20394         PR opt/3640
20395         * fold-const.c (fold): Optimize unsigned comparisons against
20396         UINT_MAX (and similar unsigned constants).
20397
20398 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
20399
20400         * Makefile.in (loop.o): Depend on OPTABS_H.
20401         * loop.c (emit_prefetch_instructions): Check the prefetch operand
20402         against the predicate.
20403
20404         PR target/5379
20405         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
20406         for the address operand.
20407
20408 2002-01-22  Richard Henderson  <rth@redhat.com>
20409
20410         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
20411
20412 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20413
20414         PR other/5450
20415         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
20416         preprocessor flags.
20417
20418 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
20419
20420         * config.gcc (x86_64-*-netbsd*): New target.
20421         * config/i386/netbsd64.h: New file.
20422
20423 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20424
20425         * regrename.c (kill_value): Fix typo.
20426
20427 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
20428
20429         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
20430
20431         * config/rs6000/rs6000.h: Same.
20432
20433         * function.c (instantiate_virtual_regs): Remove
20434         STARTING_FRAME_PHASE.
20435         (assign_stack_local_1): Same.
20436         Calculate frame phase.
20437
20438 2002-01-22  Nick Clifton  <nickc@redhat.com>
20439
20440         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
20441         variable declaration to outer scope in order to simplify
20442         future extensions.
20443         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
20444         arm_hard_regno_mode_ok.
20445         * config/arm/arm-protos.h: Add a prototype for
20446         arm_hard_regno_mode_ok.
20447         * config/arm/arm.c (soft_df_operand): Remove now redundant
20448         check for DImode values using IP_REGNUM.
20449         (nonimmediate_soft_df_operand): Remove now redundant check for
20450         DImode values using IP_REGNUM.
20451         (arm_hard_regno_mode_ok): New function. New check: make sure
20452         that DImode values are not stored in IP_REGNUM.
20453
20454         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
20455         note with a USE.
20456         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
20457
20458 2002-01-22  Jason Merrill  <jason@redhat.com>
20459
20460         * c-semantics.c (genrtl_compound_stmt): Only check nesting
20461         consistency if this COMPOUND_STMT is scoped.
20462
20463 2002-01-22  Kazu Hirata  <kazu@hxi.com>
20464
20465         * predict.c: Fix formatting.
20466         * print-tree.c: Likewise.
20467         * protoize.c: Likewise.
20468         * real.h: Likewise.
20469         * rtl.h: Likewise.
20470         * sbitmap.h: Likewise.
20471         * scan.c: Likewise.
20472         * sched-deps.c: Likewise.
20473         * sched-vis.c: Likewise.
20474         * sdbout.c: Likewise.
20475         * sibcall.c: Likewise.
20476         * ssa.c: Likewise.
20477         * ssa-ccp.c: Likewise.
20478         * ssa-dce.c: Likewise.
20479         * stmt.c: Likewise.
20480         * stor-layout.c: Likewise.
20481         * system.h: Likewise.
20482
20483 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20484
20485         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
20486         if fits in bounds of base type.
20487
20488         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
20489         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
20490         (add_bound_info, default): If can't find a context, make a
20491         SAVE_EXPR.
20492         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
20493
20494 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
20495
20496         * c-typeck.c (parser_build_binary_op): If result from
20497         build_binary_op is ERROR_MARK just return error_mark_node without
20498         further processing.
20499
20500 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
20501
20502         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
20503         Split a.out-specific bits into...
20504         * config/netbsd-aout.h: ...this.
20505         * config/netbsd-elf.h: New file.
20506         * config/alpha/netbsd-elf.h: Remove.
20507         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
20508         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
20509         (STARTFILE_SPEC): Remove redundant definition.
20510         (ENDFILE_SPEC): Likewise.
20511         (LINK_SPEC): Likewise.
20512         (CPP_SPEC): Likewise.
20513         (ASM_SPEC): Likewise.
20514         (LIB_SPEC): Likewise.
20515         (SWITCH_TAKES_ARG): Likewise.
20516         (TARGET_MEM_FUNCTIONS): Likewise.
20517         (CPP_PREDEFINES): Redefine.
20518         (ASM_FINAL_SPEC): Remove redefinition.
20519         (ASM_COMMENT_START): Redefine.
20520         (FUNCTION_PROFILER): Define.
20521         (TARGET_VERSION): Redefine.
20522         Comment and formatting cleanup.
20523         * config/i386/netbsd.h: Include <netbsd-aout.h>.
20524         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
20525         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
20526         big- or little-endian.
20527         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
20528         * config.gcc (*-*-netbsd*): Add definitions common to all
20529         NetBSD configs.
20530         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
20531         gnu_ld definitions.  Add netbsd-elf.h to and remove
20532         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
20533         tmake_file, and don't lose previous tmake_file contents.
20534         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
20535         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
20536         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
20537         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
20538         (mipsel-*-netbsd*): Rename this to...
20539         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
20540         mips/little.h to tm_file for mips*el-*.
20541         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
20542         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
20543         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
20544
20545 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20546
20547         * pa-protos.h (reg_before_reload_operand): New function prototype.
20548         * pa.c (reg_before_reload_operand): New function implementation.
20549         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
20550         contraints to "*m".
20551
20552 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20553
20554         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
20555
20556 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20557
20558         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
20559         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
20560         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
20561         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
20562         (ENDFILE_SPEC): Undefine.
20563         (STARTFILE_SPEC): Redefine for PA.
20564
20565 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20566
20567         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
20568
20569 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
20570
20571         * config.gcc: Add entries to supported PowerPC --with-cpu
20572         types.
20573
20574 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
20575
20576         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
20577         true for 64-bit mode only SSE registers in 32-bit mode.
20578
20579 2002-01-21  Kazu Hirata  <kazu@hxi.com>
20580
20581         * unwind-dw2.c: Fix formatting.
20582         * unwind-dw2-fde.c: Likewise.
20583         * unwind-dw2-fde.h: Likewise.
20584         * unwind-pe.h: Likewise.
20585         * varasm.c: Likewise.
20586         * varray.h: Likewise.
20587
20588 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
20589
20590         Remove workaround for register stack overwrite bug in mmix.
20591         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
20592         support for TARGET_REG_STACK_FILL_BUG.
20593         * config/mmix/mmix.h: Remove member has_call_without_parameters.
20594         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
20595         Delete.
20596         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
20597         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
20598         -mno-reg-stack-fill-bug-workaround.
20599         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
20600         machine member has_call_without_parameters.
20601         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
20602         -mreg-stack-fill-bug-workaround and
20603         -mno-reg-stack-fill-bug-workaround.
20604         (MMIX Options): Ditto.
20605
20606 2002-01-21  Kazu Hirata  <kazu@hxi.com>
20607
20608         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
20609         as appropriate.
20610         Remove redundant code.
20611
20612 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
20613
20614         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
20615         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
20616         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
20617         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
20618         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
20619         out target macro definitions and non-target-specific comments
20620         mostly taken from old versions of the manual.
20621
20622 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20623
20624         * config/h8300/h8300.h: Fix comment formatting.
20625         * config/ia64/aix.h: Likewise.
20626         * config/ia64/ia64-protos.h: Likewise.
20627         * config/ia64/ia64.c: Likewise.
20628         * config/ia64/ia64.h: Likewise.
20629         * config/ia64/ia64intrin.h: Likewise.
20630         * config/ia64/linux.h: Likewise.
20631         * config/ia64/unwind-aix.c: Likewise.
20632         * config/ia64/unwind-ia64.c: Likewise.
20633
20634 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20635
20636         * config/h8300/h8300.c: Revise comments about shift code.
20637
20638 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20639
20640         * config/h8300/h8300.c (function_arg): Update a comment.
20641
20642 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20643
20644         * config/h8300/h8300.md: Update the comments at the beginning
20645         of the file.
20646
20647 2002-01-20  Kazu Hirata  <kazu@hxi.com>
20648
20649         * config/i370/i370.c: Fix comment formatting.
20650         * config/i370/i370.h: Likewise.
20651         * config/i370/i370.md: Likewise.
20652         * config/i370/linux.h: Likewise.
20653
20654 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20655
20656         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
20657
20658         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
20659         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
20660         in incomplete case.
20661
20662 2002-01-20  Graham Stott  <grahams@redhat.com>
20663
20664         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
20665
20666 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20667
20668         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
20669
20670 2002-01-19  Tom Rix  <trix@redhat.com>
20671
20672         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
20673
20674 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
20675
20676         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
20677
20678         * function.c (assign_stack_local_1): Adjust x_frame_offset with
20679         STARTING_FRAME_PHASE.
20680         (STARTING_FRAME_PHASE): New.
20681         (instantiate_virtual_regs): Check saneness of
20682         STARTING_FRAME_PHASE.
20683
20684         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
20685
20686 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
20687
20688         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
20689
20690 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20691
20692         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
20693         be used for bootstrapping GCC 3.0.
20694
20695 2002-01-18  Kazu Hirata  <kazu@hxi.com>
20696
20697         * config/h8300/h8300.md: Fix an insn length.
20698
20699 2002-01-18  Kazu Hirata  <kazu@hxi.com>
20700
20701         * bitmap.h: Fix comment formatting.
20702         * combine.c: Likewise.
20703         * cppfiles.c: Likewise.
20704         * c-pragma.h: Likewise.
20705         * c-typeck.c: Likewise.
20706         * df.c: Likewise.
20707         * dwarf2out.c: Likewise.
20708         * function.c: Likewise.
20709         * gcc.c: Likewise.
20710         * genattrtab.c: Likewise.
20711         * gthr-win32.h: Likewise.
20712         * haifa-sched.c: Likewise.
20713         * predict.c: Likewise.
20714         * rtlanal.c: Likewise.
20715         * rtl.h: Likewise.
20716         * unwind-dw2-fde.h: Likewise.
20717         * unwind-pe.h: Likewise.
20718         * vmsdbgout.c: Likewise.
20719
20720 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20721
20722         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
20723         if type_required and passed decl.
20724
20725 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
20726
20727         * config.gcc (cpu_type): Include altivec.h in powerpc
20728         extra_headers.
20729         Same for darwin.
20730
20731         * config/rs6000/altivec.h: New.
20732
20733 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
20734
20735         * doc/install.texi (*-ibm-aix*): Update assembler and exception
20736         handling information.
20737         * doc/trouble.texi (Interoperation): Add libstdc++ information
20738         for AIX.
20739         (Misunderstandings): Add template instantiation and static template
20740         member information for AIX.
20741
20742 2002-01-17  Jason Merrill  <jason@redhat.com>
20743
20744         * dbxout.c (dbxout_type): Support const and volatile.
20745
20746         * except.c (add_partial_entry): Remove backwards compatibility code.
20747         (end_protect_partials): Likewise.
20748
20749 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
20750
20751         * config/ia64/ia64.md (prologue_use): New.
20752         * config/ia64/ia64.c (ia64_expand_prologue): Use
20753         gen_prologue_use instead of gen_rtx_USE.
20754         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
20755         as CODE_FOR_pred_rel_mutex.
20756         (ia64_sched_reorder2): Likewise.
20757
20758 2002-01-16  Eric Christopher  <echristo@redhat.com>
20759
20760         * config/mips/r3900.h: Reformat.
20761         (SUBTARGET_CPP_SIZE_SPEC): Remove.
20762         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
20763         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
20764         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
20765         * config/mips/t-elf: Remove mips3 multilib.
20766
20767 2002-01-16  H.J. Lu <hjl@gnu.org>
20768
20769         * config/mips/linux.h: Include "mips/abi64.h".
20770
20771 2002-01-16  H.J. Lu <hjl@gnu.org>
20772
20773         * config/mips/t-linux: New.
20774
20775         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
20776
20777         * config/mips/linux.h: Don't include "gofast.h".
20778         (INIT_SUBTARGET_OPTABS): Removed.
20779
20780 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20781
20782         * config/h8300/h8300-protos.h: Replace emit_a_shift with
20783         output_a_shift.
20784         * config/h8300/h8300.c: Likewise.
20785         * config/h8300/h8300.md: Likewise.
20786
20787 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20788
20789         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
20790         spaces after an opcode name.
20791         (pushqi1_h8300hs): Likewise.
20792         (pushhi1_h8300hs): Likewise.
20793
20794 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20795
20796         * doc/extend.texi: Replace "option" with "attribute"
20797         appropriately.
20798
20799 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20800
20801         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
20802         (and:DI () (const_int -8)).
20803         (split_small_symbolic_mem_operand): Split
20804         (mem (and:DI () (const_int -8)).
20805
20806 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20807
20808         PR target/5309:
20809         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
20810         same way as TYPE_IMUL.
20811         (ultrasparc_sched_reorder): Likewise.
20812         * config/sparc/sparc.md (type): Add comment to update
20813         ultrasparc_sched_reorder when making changes.
20814
20815 2002-01-16  Kazu Hirata  <kazu@hxi.com>
20816
20817         * doc/invoke.texi: Change the dump file name of block
20818         reordering pass from 28.bbro to 29.bbro.
20819         Mention -dk option.
20820
20821 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
20822
20823         * i386.md (minsf splitter): Fix pasto.
20824
20825 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
20826
20827         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
20828         to frame pointer initialisation instruction.
20829         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
20830         initialisation instruction.
20831         (soft_df_operand): Do not accept the IP register.
20832         (nonimmediate_soft_df_operand): Do not accept the IP register.
20833
20834 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
20835
20836         PR target/5357:
20837         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
20838         MASK_V8 being both set.
20839
20840 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
20841
20842         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
20843         insn for GOT register; add REG_MAYBE_DEAD notes instead.
20844         config/s390/s390.md (call, call_value): Add GOT register to
20845         CALL_INSN_FUNCTION_USAGE where needed.
20846         (call_exp, call_value_exp): New.
20847
20848 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
20849
20850         * config/arm/arm.c: General formatting tidy up.
20851
20852 2002-01-16  Graham Stott  <grahams@redhat.com>
20853
20854         * calls.c (try_to_integrate): Use "(size_t)" intermediate
20855         cast and when casting an integer literal to "rtx" pointer.
20856         (expand_call): Likewise.
20857         * flow.c (try_pre_increment): Likewise.
20858         (find_use_as_address): Likewise.
20859         * integrate.c (expand_iline_function): Likewise.
20860         * regmove.c (try_auto_increment): Likewise.
20861
20862 2002-01-16  Graham Stott  <grahams@redhat.com>
20863
20864         * sched-rgn.c (passed): Use sbitmap_free.
20865         (header): Likewise.
20866         (inner): Likewise.
20867         (in_queue): Likewise.
20868         (in_stack): Likewise.
20869
20870 2002-01-15  Eric Christopher  <echristo@redhat.com>
20871
20872         * flow.c (propagate_one_insn): Change to use fatal_insn.
20873
20874 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20875
20876         * expmed.c (extract_fixed_bit_field): Remove unused code.
20877         * system.h: Poison SLOW_ZERO_EXTEND.
20878         * doc/tm.texi: Remove.
20879         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
20880         * config/arm/arm.h: Likewise.
20881         * config/avr/avr.h: Likewise.
20882         * config/clipper/clipper.h: Likewise.
20883         * config/convex/convex.h: Likewise.
20884         * config/d30v/d30v.h: Likewise.
20885         * config/dsp16xx/dsp16xx.h: Likewise.
20886         * config/elxsi/elxsi.h: Likewise.
20887         * config/fr30/fr30.h: Likewise.
20888         * config/h8300/h8300.h: Likewise.
20889         * config/i370/i370.h: Likewise.
20890         * config/i386/i386.h: Likewise.
20891         * config/m68k/m68k.h: Likewise.
20892         * config/mips/mips.h: Likewise.
20893         * config/ns32k/ns32k.h: Likewise.
20894         * config/pdp11/pdp11.h: Likewise.
20895         * config/pj/pj.h: Likewise.
20896         * config/s390/s390.h: Likewise.
20897         * config/sh/sh.h: Likewise.
20898         * config/stormy16/stormy16.h: Likewise.
20899         * config/v850/v850.h: Likewise.
20900         * config/vax/vax.h: Likewise.
20901         * config/we32k/we32k.h: Likewise.
20902
20903 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
20904
20905         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
20906         (altivec_lvsl): Change constraint to b.
20907         (altivec_lvsr): Same.
20908         (altivec_lvebx): Same.
20909         (altivec_lvehx): Same.
20910         (altivec_lvewx): Same.
20911         (altivec_lvxl): Same.
20912         (altivec_lvx): Same.
20913         (altivec_stvx): Add parallel.
20914         (altivec_stvxl): Same.
20915         (altivec_stvehx): Same.
20916         (altivec_stvebx): Same.
20917         (altivec_stvebx): Same.
20918
20919 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
20920
20921         * config.gcc: Change altivec.h to altivec-defs.h.
20922
20923         * config/rs6000/altivec.h: Delete.
20924
20925         * config/rs6000/altivec-defs.h: Add.
20926
20927 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20928
20929         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
20930         and UMOD modes.
20931
20932         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
20933         less than or equal to eight bytes.
20934
20935         * vax.md (andsi3): Remove constraints and change SET destination
20936         operand type to nonimmediate_operand.
20937         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
20938         when it is a CONST_INT.
20939
20940 2002-01-15  Jason Merrill  <jason@redhat.com>
20941
20942         * c-common.def (FILE_STMT): New code.
20943         * c-common.c (statement_code_p): It's a statement.
20944         * c-common.h (stmt_tree_s): Add x_last_filename.
20945         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
20946         (last_expr_filename): New macro.
20947         * c-semantics.c (begin_stmt_tree): Initialize it.
20948         (add_stmt): If the filename changed, also insert a
20949         FILE_STMT.
20950         (expand_stmt): Handle seeing one.
20951
20952 2002-01-15  Eric Christopher  <echristo@redhat.com>
20953
20954         * flow.c (propagate_one_insn): Add error message and print out
20955         insn for debugging.
20956
20957 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
20958
20959         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
20960         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
20961         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
20962         TRAMPOLINE_ALIGNMENT.
20963         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
20964         to be in bits.
20965         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
20966         PCC_BITFIELD_TYPE_MATTERS.
20967         * config/interix.h (STDC_VALUE): Remove.  Use
20968         STDC_0_IN_SYSTEM_HEADERS.
20969         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
20970         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
20971         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
20972
20973 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20974
20975         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
20976         not work on this platform currently.
20977
20978 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
20979
20980         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
20981         readonly_warning in _().
20982
20983 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
20984
20985         * gcc.c (delete_if_ordinary): Backout previous change.
20986
20987 2002-01-15  Kazu Hirata  <kazu@hxi.com>
20988
20989         * config/h8300/h8300.c (print_operand): Remove support for
20990         unused operand characters.
20991
20992         * read-rtl.c: Fix formatting.
20993         * real.c: Likewise.
20994         * recog.c: Likewise.
20995         * regclass.c: Likewise.
20996         * regmove.c: Likewise.
20997         * reg-stack.c: Likewise.
20998         * reload1.c: Likewise.
20999         * rtlanal.c: Likewise.
21000
21001 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21002
21003         * config/i386/i386.c: Fix formatting.
21004
21005 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
21006
21007         * c-typeck.c (process_init_element): Don't save_expr
21008         COMPOUND_LITERAL_EXPR if just its initializer will be used.
21009
21010 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
21011
21012         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
21013         emit optional traceback table if optimize_size or TARGET_ELF.
21014         * config/rs6000/rs6000.md (prefetch): New.
21015
21016 2002-01-15  Andreas Jaeger  <aj@suse.de>
21017
21018         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
21019
21020 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21021
21022         * mips-tfile.c: Fix formatting.
21023
21024 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
21025
21026         * unroll.c (final_reg_note_copy): Fix previous commit.
21027
21028 2002-01-14  Kazu Hirata  <kazu@hxi.com>
21029
21030         * config/h8300/h8300-protos.h: Remove the prototype for
21031         eq_operator.
21032         * config/h8300/h8300.c (eq_operator): Remove.
21033
21034 2002-01-14  Richard Henderson  <rth@redhat.com>
21035
21036         * config/i386/i386.md (prefetch): Tidy.
21037         (prefetch_3dnow): Fix locality operand.
21038
21039 2002-01-14  Richard Henderson  <rth@redhat.com>
21040
21041         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
21042         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
21043
21044 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
21045
21046         * reload1.c (reload_combine): Pass reg_sum replacement through
21047         copy_rtx in loop performing multiple changes.
21048
21049 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
21050
21051         * except.c (remove_unreachable_regions): New.
21052         (free_eh_status): Clear exception_handler_labels.
21053         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
21054         (find_exception_handler_labels): Don't add the same label more than
21055         once.
21056         (remove_exception_handler_label): Don't die if
21057         find_exception_handler_labels hasn't been called for the current
21058         function yet.
21059
21060 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
21061
21062         * toplev.c (rest_of_compilation): Rebuild jump labels after
21063         gcse.
21064
21065 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
21066
21067         * doc/extend.texi: Move documentation of X86 built-in functions
21068         here.
21069         * doc/invoke.texi: From here.
21070         * doc/sourcebuild.texi: Document location of documentation for
21071         machine built-in functions.
21072
21073 2002-01-13  Christopher Faylor  <cgf@redhat.com>
21074
21075         * cppfiles.c (TEST_THRESHOLD): New macro.
21076         (SHOULD_MMAP): Ditto.
21077         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
21078         be used.
21079
21080 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
21081
21082         * unroll.c (final_reg_note_copy): Properly handle
21083         REG_LABEL
21084         (unroll_loops): Fix LOOP_CONDITION heuristics.
21085
21086 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
21087
21088         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
21089         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
21090
21091 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
21092
21093         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
21094         threaded loop.
21095
21096 2002-01-14  Tom Rix  <trix@redhat.com>
21097
21098         * config/rs6000/rs6000.md: Fix typo with sradi.
21099
21100 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
21101
21102         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
21103         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
21104         (clrstrdi, clrstrsi): Adapt callers.
21105
21106         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
21107
21108         (movti splitter): Never use register 0 as base register.
21109
21110 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
21111
21112         * combine.c (simplify_shift_const): Always generate new rtx
21113         for shift expression instead of reusing given expression.
21114
21115 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21116
21117         * config/alpha/alpha.c (alpha_expand_mov): Don't call
21118         alpha_legitimize_address unless mode is Pmode.
21119
21120 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
21121
21122         * doc/md.texi (Modifiers): Document the '*' constraint for the
21123         user.
21124
21125         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
21126         * doc/extend.texi (Function Attributes): 'interrupt' is valid
21127         for xstormy16 too.
21128
21129 2002-01-13  Richard Henderson  <rth@redhat.com>
21130
21131         * reload.c (find_reloads): Use a hard reg destination as reload reg
21132         for an input reload of the source.
21133
21134 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21135
21136         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
21137         more generic.
21138
21139 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
21140
21141         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21142         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21143
21144         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
21145
21146 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21147
21148         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
21149
21150 2002-01-12  Tom Rix  <trix@redhat.com>
21151
21152         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
21153         TARGET_POWERPC64.
21154
21155 2002-01-12  Richard Henderson  <rth@redhat.com>
21156
21157         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
21158
21159         * doc/invoke.texi: Update Alpha options.
21160
21161         * doc/invoke.texi: Update i386 built-in function lists.
21162
21163 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
21164
21165         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
21166         referencing outside.
21167
21168 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21169
21170         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
21171         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
21172         offsets, and change line folding.
21173         * optabs.c (expand_binop): Remove warnings.
21174         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
21175
21176 2002-01-12  Graham Stott <grahams@redhat.com>
21177
21178         * attribs.c (handle_deprecated_attribute): constify WHAT.
21179         * diagnostic.c (warn_deprecated_use): Add braces, fixes
21180         dangling else warning and constify WHAT.
21181         * except.h (struct function, struct inline_remap): Move
21182         struct tag forward defs before all prototypes.
21183         (duplicate_eh_regions): Whitespace.
21184
21185 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
21186
21187         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21188         MODE_BASE_REG_CLASS.
21189         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
21190
21191 2002-01-12  Richard Henderson  <rth@redhat.com>
21192
21193         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
21194         (ix86_expand_vector_move): New.
21195         (bdesc_2arg): Remove andps, andnps, orps, xorps.
21196         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
21197         Remove old prefetch builtins.  Special case the logicals removed above.
21198         (ix86_expand_builtin): Likewise.
21199         (safe_vector_operand): Use V4SFmode, not TImode.
21200         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
21201         (ix86_expand_timode_binop_builtin): New.
21202         * config/i386/i386-protos.h: Update.
21203         * config/i386/i386.h (enum ix86_builtins): Update.
21204         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
21205         Use ix86_expand_vector_move in vector move expanders.
21206         (movti_internal, movti_rex64): Add xorps alternative.
21207         (sse_clrv4sf): Rename and adjust from sse_clrti.
21208         (prefetch): Don't work so hard.
21209         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
21210         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
21211         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
21212
21213 2002-01-11  Richard Henderson  <rth@redhat.com>
21214
21215         * config/i386/mmintrin.h: New file.
21216         * config/i386/xmmintrin.h: New file.
21217         * config.gcc (i?86-*-*): Add extra_headers.
21218         * simplify-rtx.c (simplify_unary_operation): Handle saturating
21219         truncation codes.
21220         (simplify_binary_operation): Handle saturating arithmetic codes.
21221         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
21222         not the lowpart subreg.
21223         (ix86_expand_builtin): Return a TImode dummy register instead of 0
21224         on error.
21225         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
21226
21227 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21228
21229         * conflict.c (conflict_graph_compute): Free regsets when finished.
21230         * ssa.c (compute_coalesced_reg_partition): Likewise.
21231
21232 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21233
21234         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
21235         every where we allocate a register.
21236
21237 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21238
21239         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
21240         * lcm.c (compute_earliest, compute_farthest): Likewise.
21241
21242 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
21243
21244         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
21245
21246 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
21247
21248         * doc/rtl.texi (Insns): Fix 2 typos.
21249
21250 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
21251
21252         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
21253         options.  Use @table @gcctabopt for MMIX options.  Add index
21254         entries for MMIX options.  Start new paragraph with first
21255         heading of the machine-dependent options.
21256
21257 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21258
21259         PR other/5299
21260         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
21261         * combine.c (force_to_mode): Same.
21262         * reload1.c (clear_reload_reg_in_use): Same.
21263
21264 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
21265
21266         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
21267         and 'subtargets'.
21268
21269 2002-01-11  Andreas Jaeger  <aj@suse.de>,
21270             Brad Lucier <lucier@math.purdue.edu>
21271
21272         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
21273         mcpu.
21274
21275 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
21276
21277         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
21278         Protect with IN_LIBGCC.
21279         (LINK_EH_SPEC): Add required trailing space.
21280
21281 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
21282
21283         * c-tree.h: Move function declarations so that they are listed
21284         under the filename which contains them.
21285         (check_identifier, finish_decl_top_level,
21286         lookup_name_current_level_global, shadow_record_fields): Remove.
21287
21288 2002-01-11  Andreas Jaeger  <aj@suse.de>
21289
21290         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
21291         march.
21292
21293 2002-01-10  Richard Henderson  <rth@redhat.com>
21294
21295         * config/alpha/alpha.c (print_operand): Add 'J'.
21296         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
21297         new operand with the sequence number for the lituse.  When splitting
21298         the insns, use gen_movdi_er_high_g and generate a sequence number.
21299         (gen_movdi_er_high_g): Print the sequence number if non-zero.
21300
21301 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
21302
21303         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
21304         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
21305         stvxl.
21306         (altivec_expand_builtin): Same.
21307         (altivec_expand_stv_builtin): New.
21308
21309         * config/rs6000/rs6000.h (rs6000_builtins): Same.
21310
21311         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
21312         ("altivec_lvehx"): New.
21313         ("altivec_lvewx"): New.
21314         ("altivec_lvxl"): New.
21315         ("altivec_lvx"): New.
21316         ("altivec_stvx"): New.
21317         ("altivec_stvebx"): New.
21318         ("altivec_stvehx"): New.
21319         ("altivec_stvewx"): New.
21320         ("altivec_stvxl"): New.
21321
21322 2002-01-10  Richard Henderson  <rth@redhat.com>
21323
21324         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
21325         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
21326         care not to delete instructions twice.
21327
21328 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
21329
21330         * toplev.c: Don't declare environ (it's not used anywhere).
21331         * configure.in: Don't check for declaration of environ.
21332         * config/i386/xm-mingw32.h: Don't #define environ.
21333         * config.in, configure: Regenerate.
21334
21335 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
21336
21337         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
21338         * configure: Regenerate.
21339
21340         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
21341         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
21342         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
21343         alpha/xm-vms.h.
21344         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
21345         LIMITS_H_TEST here, not in m68k/x-next.
21346         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
21347         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
21348
21349         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
21350         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
21351         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
21352
21353         * config/i386/x-djgpp: Renamed i386/t-djgpp.
21354         * config/m88k/x-dolph: Renamed m88k/t-dolph.
21355         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
21356         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
21357         replacement of quadlib.asm with quadlib.c.
21358
21359         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
21360         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
21361         config/rs6000/xm-beos.h: Delete file.
21362
21363         * config.gcc: Update to match above changes.
21364
21365 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21366
21367         * config/h8300/h8300.h: Fix comment typos.
21368         * config/h8300/h8300.md: Likewise.
21369         * config/h8300/lib1funcs.asm: Likewise.
21370
21371 2002-01-10  Dale Johannesen  <dalej@apple.com>
21372
21373         PR optimization/5269
21374         * unroll.c (precondition_loop_p): Make *increment be the correct
21375         sign when n_iterations known, to avoid confusing caller.
21376
21377 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21378
21379         * doc/extend.texi (deprecated): Fix a typo.
21380
21381 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
21382
21383         * basic-block.h (update_br_prob_note): Declare.
21384         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
21385         (try_forward_edges): Care negative frequencies and update note.
21386         (outgoing_edges_match): Tweek conditional merging heuristics.
21387         (try_crossjump_to_edge): use update_br_prob_note.
21388         * cfglayout.c (fixup_reorder_chain): Likewise.
21389         * cfrtl.c (update_br_prob_note): New.
21390         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
21391
21392         * i386.c (ix86_decompose_address): Return -1 if address contains
21393         shift.
21394         (legitimate_address_p): Require ix86_decompose_address to return 1.
21395
21396         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
21397         (cprop_insn): Likewise.
21398
21399 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21400
21401         * toplev.c: Fix formatting.
21402         * tree.c: Likewise.
21403         * tree-dump.c: Likewise.
21404         * unroll.c: Likewise.
21405         * unwind-dw2.c: Likewise.
21406         * unwind-dw2-fde.c: Likewise.
21407         * unwind-dw2-fde-glibc.c: Likewise.
21408         * unwind-sjlj.c: Likewise.
21409
21410 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
21411
21412         * doc/invoke.texi: Document PDP-11 options.
21413
21414 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21415
21416         * config/h8300/h8300.h: Fix formatting.
21417
21418 2002-01-10  Ira Ruben   <ira@apple.com>
21419
21420         Add __attribute__ ((deprecated)).
21421         * extend.texi: Document __attribute__ ((deprecated)).
21422         * invoke.texi: Document -Wno-deprecated-declarations.
21423         * testsuite/g++.dg/other/deprecated.C: New C++ test.
21424         * testsuite/gcc.dg/deprecated.c: New C test.
21425         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
21426         (c_common_attribute_table): Add "deprecated" entry.
21427         (handle_deprecated_attribute): New function.
21428         * c-decl.c (deprecated_states): New enum.
21429         deprecated_state: State of "deprecated" handling.
21430         (start_decl): Set deprecated_state based on attributes.
21431         (grokdeclarator): Test for deprecated uses, propagate attribute.
21432         * c-typeck.c (build_component_ref): Test for deprecated fields.
21433         (build_external_ref): Test for deprecated primaries.
21434         * diagnostic.c (warn_deprecated_use) New function to issue
21435         warnings about __attribute__ ((depricated)) references.
21436         * flags.h (warn_deprecated_decl): Extern declared for
21437         -W[no-]deprecated-declarations option.
21438         * print-tree.c (print_node): Show deprecated flag status.
21439         * toplev.c (warn_deprecated_decl): Defined.
21440         (W_options): Added "deprecated-declaration".
21441         * toplev.h (warn_deprecated_use): Extern declared.
21442         * tree.h (struct tree_common): Define deprecated_flag.
21443         (TREE_DEPRECATED): New macro to access flag.
21444         * cp/call.c (build_call): Test for deprecated calls.
21445         * cp/class.c (add_implicitly_declared_members): Set global
21446         flag to tell grokdeclarator to not issue deprecated warnings.
21447         * cp/cp-tree.h: Add extern for adding_implicit_members.
21448         * cp/decl.c (deprecated_states): New enum.
21449         (start_decl): Set deprecated_state based on attributes.
21450         (grokdeclarator): Test for deprecated uses, propagate attribute.
21451         * cp/lex.c (do_identifier): Test for deprecated primaries.
21452         * cp/typeck.c (build_component_ref): Test for deprecated fields.
21453
21454 2002-01-10  Ira Ruben   <ira@apple.com>
21455
21456         Fix to assign attributes to inline member functions.
21457         * cp/decl.c (start_method): Handle attrlist.
21458
21459 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21460
21461         * combine.c (expand_field_assignment): Use subreg_lsb().
21462
21463 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
21464
21465         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
21466         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
21467         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
21468         Recurse for any operand of AND as long as constant is non-zero.
21469
21470 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21471
21472         * config/h8300/h8300.md: Remove constraints from expanders.
21473
21474 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21475
21476         * varasm.c: Fix formatting.
21477         * varray.c: Likewise.
21478         * vmsdbgout.c: Likewise.
21479         * xcoffout.c: Likewise.
21480
21481 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
21482
21483         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
21484         update edge probabilities to match.
21485
21486 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
21487
21488         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
21489         dependencies.
21490         * doc/languages.texi, doc/sourcebuild.texi: New files.
21491         * doc/configfiles.texi: Make a subsubsection.  Update.
21492         * doc/configterms.texi: Add @node.  Remove warning that this isn't
21493         instructions for building GCC.
21494         * doc/makefile.texi: Make a subsection.
21495         * doc/gccint.texi: Update.
21496
21497 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
21498
21499         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
21500
21501 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
21502
21503         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
21504
21505 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
21506
21507         * optabs.c (expand_fix): Look for wider integer modes first.
21508
21509         * i386.md (mov?f): Avoid the fake const double trick for medium
21510         memory model.
21511         (min?f*/max?f*): Prohibit memory operands for i387 variant.
21512         (fop_df_4): Disable for SSE compilation.
21513
21514 2002-01-10  Graham Stott  <grahams@redhat.com>
21515
21516         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
21517         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
21518
21519 2002-01-10  Richard Henderson  <rth@redhat.com>
21520
21521         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
21522
21523 2002-01-10  Richard Henderson  <rth@redhat.com>
21524
21525         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
21526         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
21527
21528 2002-01-10  Kazu Hirata  <kazu@hxi.com>
21529
21530         * combine.c (can_combine_p): Fix a comment typo.
21531
21532 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
21533
21534         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
21535         empty list correctly.  Change loop index $t to $f for
21536         consistency with rest of Makefile.
21537
21538 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
21539
21540         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
21541         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
21542
21543         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
21544         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
21545         (altivec_init_builtins): Same.
21546         (altivec_expand_unop_builtin): Return NULL_RTX on error.
21547         (altivec_expand_binop_builtin): Same.
21548         (altivec_expand_ternop_builtin): Same.
21549         (bdesc_dst): New.
21550
21551         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
21552         ("altivec_vctuxs"): Fix typo.
21553         ("altivec_vnmsubfp"): Same.
21554         ("altivec_dssall"): New.
21555         ("altivec_mfvscr"): New.
21556         ("altivec_dss"): New.
21557         ("altivec_lvsl"): New.
21558         ("altivec_lvsr"): New.
21559         ("altivec_dstt"): New.
21560         ("altivec_dstst"): New.
21561         ("altivec_dststt"): New.
21562         ("altivec_dst"): New.
21563
21564         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
21565         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
21566
21567 2002-01-09  Richard Henderson  <rth@redhat.com>
21568
21569         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
21570
21571 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
21572
21573         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
21574         function.
21575         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
21576         prototype.
21577         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
21578
21579 2002-01-09  Kazu Hirata  <kazu@hxi.com>
21580
21581         * read-rtl.c: Fix formatting.
21582         * real.c: Likewise.
21583         * regclass.c: Likewise.
21584         * regrename.c: Likewise.
21585         * reg-stack.c: Likewise.
21586         * reload1.c: Likewise.
21587         * reload.c: Likewise.
21588         * rtl.c: Likewise.
21589
21590 2002-01-09  Kazu Hirata  <kazu@hxi.com>
21591
21592         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
21593         to extract items in the expr_list chain.
21594
21595 2002-01-09  Richard Henderson  <rth@redhat.com>
21596
21597         * config/vax/vax.c (vax_rtx_cost): Never abort.
21598
21599         * config/vax/vax.h (REAL_ARITHMETIC): Define.
21600
21601 2002-01-09  Jan Hubicka  <jh@suse.cz>
21602
21603         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
21604
21605 2002-01-09  Richard Henderson  <rth@redhat.com>
21606
21607         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
21608         Unify code from various alternatives.
21609
21610 2002-01-09  Richard Henderson  <rth@redhat.com>
21611
21612         * regrename.c (copy_value): Ignore the copy if the source register
21613         is present in the value chain with a narrower mode.
21614
21615 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
21616
21617         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
21618         for the c4x target. Also improve layout.
21619
21620 2002-01-09  Richard Henderson  <rth@redhat.com>
21621
21622         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
21623         * config/m32r/m32r.md (and ior xor splitters): Swap operands
21624         to match insn patterns.
21625
21626 2002-01-09  Richard Henderson  <rth@redhat.com>
21627
21628         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
21629         (copyprop_hardreg_forward_1): Likewise.
21630
21631 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21632
21633         * pa.md (decrement_and_branch_until_zero): Change predicate for
21634         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
21635
21636 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
21637
21638         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
21639         gets undefined. For Darwin.
21640
21641 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
21642
21643         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
21644
21645 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21646
21647         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
21648
21649 2002-01-08  Richard Henderson  <rth@redhat.com>
21650
21651         * regrename.c (copy_value): Ignore overlapping copies.
21652
21653 2002-01-08  Richard Henderson  <rth@redhat.com>
21654
21655         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
21656         as needed to avoid shared structure.
21657
21658 2002-01-08  Kazu Hirata  <kazu@hxi.com>
21659
21660         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
21661         H8/300H and H8/S.
21662
21663 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21664
21665         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
21666         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
21667         documentation of obsolete macros.
21668         * system.h: Poison these macros.
21669         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
21670         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
21671         config/c4x/c4x.h, config/clipper/clipper.h,
21672         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
21673         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
21674         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
21675         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
21676         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
21677         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
21678         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
21679         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
21680         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
21681         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
21682         config/sparc/sparc.h, config/stormy16/stormy16.h,
21683         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
21684         definitions and commented out definitions of obsolete macros.
21685         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
21686         of MAX_INT_TYPE_SIZE.
21687
21688 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
21689
21690         * config/s390/s390.c (s390_preferred_reload_class): Never
21691         return ADDR_REGS if it isn't a subset of the given class.
21692         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
21693         FP_REGS, but all superclasses as well.
21694
21695         * config/s390/s390.c (s390_function_profiler): Fix thinko.
21696
21697         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
21698         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
21699         must not be a const_int.
21700
21701 2002-01-08  Richard Henderson  <rth@redhat.com>
21702
21703         * Makefile.in (toplev.o): Depend on options.h.
21704         (gcc.o): Depend on specs.h.
21705
21706 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
21707
21708         * expr.c (store_expr): Convert VOIDmode constants back to target's
21709         mode.
21710
21711 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21712
21713         * doc/invoke.texi: Markup gcc as @command.  Refer to
21714         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
21715         of http://gcc.gnu.org/thanks.html.
21716
21717 2002-01-08  Dale Johannesen  <dalej@apple.com>
21718
21719         * config/rs6000/rs6000.md: Add missing int register
21720         target case to movdf_low.
21721
21722 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
21723
21724         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
21725         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
21726         (cppinit.o): Depend on except.h.
21727         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
21728         s-specs): New rules.
21729
21730         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
21731         Don't create specs.h/options.h/gencheck.h here.  Remove
21732         unnecessary variable settings from last argument of AC_OUTPUT.
21733         * config.in, configure: Regenerate.
21734         * intl.c: Hardcode package name as "gcc".
21735
21736         * cppinit.c: Include except.h.
21737         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
21738         appropriate.
21739         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
21740         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
21741         (!)USING_SJLJ_EXCEPTIONS.
21742         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
21743
21744 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21745
21746         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
21747         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
21748         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
21749         documentation of obsolete macros.
21750         * system.h: Poison these macros.
21751         * config/d30v/d30v.h, config/ns32k/encore.h,
21752         config/stormy16/stormy16.h: Remove definitions and commented out
21753         definitions of obsolete macros.
21754
21755 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
21756
21757         * objc/objc-act.c (handle_class_ref): Mark the declaration of
21758         %sobjc_class_ref_%s as used - to prevent unwanted compiler
21759         warnings.
21760
21761 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
21762
21763         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
21764         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
21765         to insn adjusting stack/frame pointer.
21766         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
21767         accept operands that cause the insn to be non-splittable.
21768
21769 2002-01-08  Graham Stott  <grahams@redhat.com>
21770
21771         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
21772         (C_TYPE_FIELDS_VOLATILE): Likewise.
21773         (C_TYPE_BEING_DEFINED): Likewise.
21774         (C_IS_RESERVED_WORD): Likewise.
21775         (C_TYPE_VARIABLE_SIZE): Likewise.
21776         (C_DECL_VARIABLE_SIZE): Likewise.
21777         (C_MISSING_PROTOTYPE_WARNED): Likewise.
21778         (C_SET_EXP_ORIGINAL_CODE): Likewise.
21779         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
21780         parenthesis.
21781         (C_DECL_ANTICIPATED): Likewise.
21782         (c_build_type_variant): Add parenthesis.
21783
21784 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
21785
21786         * gcc.c (option_map): Remove --version.
21787         (process_command): Handle -fversion following the GNU Coding
21788         Standards.  Partially addresses PR other/704.
21789
21790 2002-01-08  Graham Stott  <grahams@redhat.com>
21791
21792         * combine.c (combine_instructions): Fix typo.
21793
21794 2002-01-08  Graham Stott  <grahams@redhat.com>
21795
21796         * debug.h: Use "tree" and "rtx" throughout.
21797
21798         * debug.c: Likewise.
21799
21800 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
21801
21802         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
21803         constant pool, use the pool's version of the symbol instead.
21804
21805 2002-01-07  Richard Henderson  <rth@redhat.com>
21806
21807         * regrename.c (find_oldest_value_reg): Ignore the value chain if
21808         the original register was copied in a mode with a fewer number of
21809         hard registers than the desired mode.
21810         (copyprop_hardreg_forward_1): Likewise.
21811         (debug_value_data): Fix loop test.
21812         * toplev.c (parse_options_and_default_flags): Reenable
21813         -fcprop-registers at -O1.
21814
21815 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21816
21817         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
21818         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
21819
21820         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
21821         predicates.
21822
21823         * config/rs6000/rs6000.md: Add altivec predicate patterns.
21824
21825 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21826
21827         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
21828         (pa_output_function_prologue): Output local label at the beginning of
21829         the prologue when profiling.
21830         (hppa_profile_hook): Use the local label rather than the function label.
21831         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
21832
21833 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21834
21835         * config/rs6000/rs6000.c (print_operand): Remove extra space.
21836         (altivec_expand_unop_builtin): Fix thinko.
21837         (altivec_expand_binop_builtin): Same.
21838         (altivec_expand_ternop_builtin): Same.
21839         (altivec_expand_builtin): Same.
21840
21841 2002-01-07  Richard Henderson  <rth@redhat.com>
21842
21843         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
21844
21845 2002-01-07  Jason Merrill  <jason@redhat.com>
21846
21847         * unwind-dw2.c (execute_cfa_program): Use < again.
21848
21849 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
21850
21851         * predict.c (combine_predictions_for_insn): Avoid division by zero.
21852
21853 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
21854
21855         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
21856         Don't allow -1 - x -> ~x simplifications in the first pass.
21857
21858 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
21859
21860         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
21861         arguments.
21862         (altivec_expand_binop_builtin): Same.
21863         (altivec_expand_unop_builtin): Same.
21864         (print_operand): Fix typo.
21865         (bdesc_1arg): Add vupk* variants.
21866
21867         * rs6000.h (rs6000_builtins): Add vupk* enums.
21868
21869         * rs6000.md: Add altivec_vupk* variants.
21870
21871 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
21872
21873         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
21874         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
21875         and last update dates.
21876
21877 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
21878
21879         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
21880
21881 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
21882
21883         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
21884         * config/avr/avr.h (CPP_SPEC): Likewise.
21885         (LINK_SPEC): Likewise.
21886         (CRT_BINUTILS_SPECS): Likewise.
21887         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
21888         * doc/invoke.texi (AVR Options): Document them.
21889
21890 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
21891
21892         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
21893         LABEL_NUSES.
21894
21895 2002-01-07  Graham Stott  <grahams@redhat.com>
21896
21897         * config/i386/i386.h: Update copyright date.
21898         (HALF_PIC_PTR): Add parenthesis.
21899         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
21900         (CONSTANT_ALIGNMENT): Add parenthesis.
21901         (DATA_ALIGNMENT): Likewise.
21902         (LOCAL_ALIGNMENT): Likewise.
21903         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
21904         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
21905         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
21906         (HARD_REGNO_NREGS): Add paranethesis.
21907         (VALID_SSE_REG_MODE): Whitespace.
21908         (VALID_MMX_REG_MODE): Whitespace.
21909         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
21910         (ix86_hard_regno_mode_ok): Add parenthesis.
21911         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
21912         (RETURN_IN_MEMORY): Whitespace.
21913         (N_REG_CLASSES): Add parenthesis.
21914         (INTEGER_CLASS_P): Add parenthesis and wrap.
21915         (FLOAT_CLASS_P): Likewise.
21916         (SSE_CLASS_P): Likewise.
21917         (MMX_CLASS_P): Likewise.
21918         (MAYBE_INTEGER_CLASS_P): Likewise.
21919         (MAYBE_FLOAT_CLASS_P): Likewise.
21920         (MAYBE_SSE_CLASS_P): Likewise.
21921         (MAYBE_MMX_CLASS_P): Likewise.
21922         (Q_CLASS_P): Likewise.
21923         (GENERAL_REGNO_P): Uppercase macro parameter.
21924         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
21925         (FP_REGNO_P): Likewise.
21926         (ANY_FP_REGNO_P): Uppercase macro parameter.
21927         (SSE_REGNO_P): Likewise.
21928         (SSE_REGNO): Likewise.
21929         (SSE_REG_P): Likewise.
21930         (SSE_FLOAT_MODE_P): Likewise.
21931         (MMX_REGNO_P): Likewise.
21932         (MMX_REG_P):Likewise.
21933         (STACK_REG_P): Likewise.
21934         (NON_STACK_REG_P): Likewise.
21935         (STACK_TOP_P): Likewise.
21936         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
21937         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
21938         (SECONDARY_MEMORY_NEEDED): Likewise.
21939         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
21940         (MD_ASM_CLOBBERS): Whitespace and wrap.
21941         (MUST_PASS_IN_STACK): Whitespace and wrap.
21942         (RETURN_POPS_ARGS): Add parenthesis.
21943         (INIT_CUMULATIVE_ARGS): Likewise.
21944         (FUNCTION_ARG): Likewise.
21945         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
21946         (SETUP_INCOMING_VARARGS): Likewise.
21947         (BUILD_VA_LIST_TYPE):  Add parenthesis.
21948         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
21949         parenthsis.
21950         (EXPAND_BUILTIN_VA_ARG): Likewise.
21951         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
21952         (INITIALIZE_TRAMPOLINE): Add parenthesis.
21953         (INITIAL_ELIMINATION_OFFSET): Likewise.
21954         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
21955         (REGNO_OK_FOR_BASE_P): Likewise.
21956         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
21957         (REGNO_OK_FOR_DIREG_P): Likewise.
21958         (REG_OK_FOR_INDEX_P): Whitespace.
21959         (REG_OK_FOR_BASE_P): Whitespace.
21960         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
21961         parenthesis.
21962         (FIND_BASE_TERM): Fix typo.
21963         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
21964         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
21965         (SYMBOLIC_CONST; Whitespace.
21966         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
21967         (ENCODE_SECTION_INFO): Whitespace.
21968         (FINALIZE_PIC): Remove do { ... } while (0).
21969         (PROMOTE_MODE): Wrap in do { ... } while (0).
21970         (CONST_COSTS): Whitespace.
21971         (RTX_COSTS): Add paramethesis, whitespace and wrap.
21972         (REGISTER_MOVE_COST): Add parenthesis.
21973         (MEMORY_MOVE_COST): Likewise.
21974         (EXTRA_CC_MODES): Whitespace.
21975         (SELECT_CC_MODE): Add parenthesis and whitespace.
21976         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
21977         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
21978         (ASM_OUTPUT_LABEL): Add paramethesis.
21979         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
21980         (ASM_OUTPUT_REG_POP): Likewise.
21981         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
21982         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
21983
21984         * config/i386/i386.c: Update copyright.
21985         (CHECK_STACK_LIMIT): Add parenthesis.
21986         (AT_BP): Uppercase macro parameter.
21987         (x86_64_int_parameter_registers): Constify.
21988         (x86_64_int_return_registers): Likewise.
21989         (ix86_compare_op0): Use rtx.
21990         (construct_container): Constify INTREG parameter.
21991         (function_arg): Use rtx.
21992
21993         * diagnostic.h: Update copyright date.
21994         (output_buffer_state): Add parenthesis.
21995         (output_buffer_format_args): Likewise.
21996
21997         * combine.c (combine_instructions): Replace XEXP (links, 0)
21998         with link.
21999
22000 2002-01-06  H.J. Lu <hjl@gnu.org>
22001
22002         * cfgcleanup.c (thread_jump): Fix 2 typos.
22003
22004 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
22005
22006         * config.gcc: Add support for --enable-altivec.
22007
22008 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22009
22010         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
22011
22012 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
22013
22014         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
22015         __objc_class_name_*.
22016
22017 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22018
22019         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
22020
22021 2002-01-06  Richard Henderson  <rth@redhat.com>
22022
22023         * reorg.c (emit_delay_sequence): Remove death notes, not merely
22024         nop them out.  Increment label reference count for REG_LABEL.
22025         (fill_slots_from_thread): Frob label reference count around
22026         delete_related_insns.
22027
22028 2002-01-05  Richard Henderson  <rth@redhat.com>
22029
22030         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
22031         jump threading.
22032
22033 2002-01-05  Richard Henderson  <rth@redhat.com>
22034
22035         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
22036         * integrate.c (output_inline_function): Likewise.
22037         * toplev.c (rest_of_compilation): Do it here instead.  Move call
22038         to remove_unnecessary_notes after emitting abstract instance.
22039         Force an emitted nested function to have its parent emited as well.
22040         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
22041         for null.
22042         (rtl_for_decl_location): Do not look at reload data structures
22043         before reload has run.
22044
22045 2002-01-05  Kazu Hirata  <kazu@hxi.com>
22046
22047         * cse.c: Fix formatting.
22048         * dwarf2asm.c: Likewise.
22049         * dwarf2out.c: Likewise.
22050         * explow.c: Likewise.
22051         * expmed.c: Likewise.
22052         * function.c: Likewise.
22053         * gcov.c: Likewise.
22054         * gencheck.c: Likewise.
22055         * genrecog.c: Likewise.
22056         * ggc-common.c: Likewise.
22057         * ggc-page.c: Likewise.
22058         * global.c: Likewise.
22059
22060 2002-01-05  Kazu Hirata  <kazu@hxi.com>
22061
22062         * combine.c: Fix formatting.
22063
22064 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
22065
22066         PR middle-end/1557
22067         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
22068
22069 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
22070
22071         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
22072         as 1 for __powerpc64__ as well.
22073
22074         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
22075
22076         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
22077         return it.
22078
22079 2002-01-05  Daniel Berlin  <dan@dberlin.org>
22080
22081         * lcm.c: Revert change, due to performance regression it causes on
22082         SPEC because it's slightly more conservative (sigh, I hate
22083         edge-based LCM).
22084
22085 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
22086
22087         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
22088
22089 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
22090
22091         * doc/cppinternals.texi: Update.
22092
22093 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
22094
22095         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
22096         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
22097         negatives.
22098         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
22099         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
22100         kludge for pre-october-14th mmix versions to handle new-found bug
22101         with PUSHJ/PUSHGO and the register stack.
22102         * config/mmix/mmix.h (struct machine_function): Rename member
22103         has_call_value_without_parameters to has_call_without_parameters.
22104         All referers changed.
22105         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
22106         TARGET_MASK_BRANCH_PREDICT): New macros.
22107         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
22108         -mno-reg-stack-fill-bug-workaround.
22109         * config/mmix/mmix.md ("call"): Set struct machine member
22110         has_call_without_parameters.
22111
22112 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
22113
22114         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
22115
22116 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
22117
22118         * cfgcleanup.c: Include tm_p.h
22119         (mark_effect): Fix handling of hard register; fix handling of SET
22120
22121 2002-01-04  Kazu Hirata  <kazu@hxi.com>
22122
22123         * config/h8300/h8300.md (anonymous patterns): Check that
22124         operands are registers before using REGNO on them.
22125
22126 2002-01-03  Roland McGrath  <roland@frob.com>
22127
22128         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
22129
22130 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
22131
22132         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
22133         * c-common.h (genrtl_expr_stmt_value): Likewise.
22134         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
22135         (expand_expr_stmt_value): Add maybe_last argument.
22136         Don't warn about statement with no effect if it is the last statement
22137         in expression statement.
22138         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
22139         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
22140         expand_expr_stmt_value.
22141         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
22142         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
22143         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
22144         as maybe_last to expand_expr_stmt_value.
22145
22146 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
22147
22148         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
22149         be passed in, do not build it.
22150         (c_begin_if_stmt): New function.
22151         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22152         * c-common.h (c_expand_start_cond): Update prototype.
22153         (c_begin_if_stmt): Prototype new function.
22154         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22155         * c-parse.in (if_prefix): Use c_begin_if_stmt,
22156         c_begin_while_stmt and c_finish_while_stmt_cond.
22157
22158 2002-01-04  William Cohen  <wcohen@redhat.com>
22159
22160         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
22161         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
22162         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
22163         * config/pa/som.h (ASM_FILE_START): Likewise.
22164
22165 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
22166
22167         * lcm.c: Include df.h.
22168         Add available_transfer_function prototype.
22169         (compute_available): Rework to use iterative dataflow framework.
22170         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
22171         with bb_info in df.h
22172         (available_transfer_function): New function.
22173
22174         * Makefile.in (lcm.o): add df.h to dependencies.
22175
22176 2002-01-04  Richard Henderson  <rth@redhat.com>
22177
22178         * config/alpha/alpha.c (some_operand): Accept HIGH.
22179         (input_operand): Likewise; accept simple references to globals.
22180         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
22181         (alpha_const_double_ok_for_letter_p): Likewise.
22182         (alpha_extra_constraint): Likewise.
22183         (alpha_preferred_reload_class): Likewise.  Do not force
22184         symbolic constants to memory.
22185         (alpha_legitimate_address_p): Accept simple references
22186         to small_symbolic_operand.
22187         (alpha_legitimize_address): New arg scratch.  Be prepared to be
22188         called when no_new_pseudos.  Emit simple symbolic references.
22189         Split integers into low, high, and rest.
22190         (alpha_expand_mov): Use alpha_legitimize_address.
22191         (some_small_symbolic_mem_operand): New.
22192         (split_small_symbolic_mem_operand): New.
22193         * config/alpha/alpha-protos.h: Update.
22194         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
22195         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
22196         (EXTRA_CONSTRAINT): Likewise.
22197         (PREFERRED_RELOAD_CLASS): Likewise.
22198         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
22199         (PREDICATE_CODES): Update.
22200         * config/alpha/alpha.md: New post-reload splitters to convert
22201         simplfied symbolic operands to the form that references $29.
22202         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
22203         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
22204
22205 2002-01-03  Richard Henderson  <rth@redhat.com>
22206
22207         * local-alloc.c (function_invariant_p): Update commentary.
22208
22209 2002-01-04  H.J. Lu <hjl@gnu.org>
22210
22211         * toplev.c (rest_of_compilation): Fix a typo when calling
22212         cleanup_cfg.
22213
22214 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22215
22216         * c-common.c: Fix formatting.
22217         * diagnostic.c: Likewise.
22218         * doloop.c: Likewise.
22219         * dwarf2out.c: Likewise.
22220
22221 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22222
22223         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
22224         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
22225
22226 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
22227
22228         * cpperror.c: Update comments and copyright.
22229         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
22230         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
22231
22232 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22233
22234         * collect2.c (main): Use strcmp when testing for "-shared".
22235
22236 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
22237
22238         * cppmacro.c: Don't include intl.h.  Update comments.
22239         (new_number_token): Allocate enough buffer for 64-bit unsigned
22240         integers; update prototype.
22241         * cppmain.c: Update comments.
22242
22243 2002-01-03  William Cohen  <wcohen@redhat.com>
22244
22245         * function.h (struct function): Add profile.
22246         (current_function_profile): New.
22247         doc/extend.texi: Update documentation.
22248         * final.c (final_start_function): Use current_function_profile
22249         instead of profile_flag.
22250         (profile_after_prologue): Likewise.
22251         * function.c (expand_function_start): Likewise.
22252         (expand_function_start): Likewise.
22253         * config/alpha/alpha.c (direct_call_operand):
22254         (alpha_does_function_need_gp): Likewise.
22255         (alpha_expand_prologue): Likewise.
22256         * config/arm/arm.c (arm_expand_prologue): Likewise.
22257         thumb_expand_prologue: Likewise.
22258         * config/d30v/d30v.c (d30v_stack_info): Likewise.
22259         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
22260         (fr30_expand_prologue): Likewise.
22261         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
22262         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
22263         * config/i386/i386.h (FINALIZE_PIC): Likewise.
22264         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
22265         * config/i960/i960.c (i960_output_function_prologue): Likewise.
22266         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
22267         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
22268         (m32r_expand_prologue): Likewise.
22269         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
22270         (m88k_expand_prologue): Likewise.
22271         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
22272         * config/mips/mips.c (compute_frame_size): Likewise.
22273         (mips_expand_prologue): Likewise.
22274         (mips_can_use_return_insn): Likewise.
22275         * config/pa/elf.h (ASM_FILE_START): Likewise.
22276         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
22277         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
22278         * config/pa/som.h (ASM_FILE_START): Likewise.
22279         * config/romp/romp.c (romp_using_r14): Likewise.
22280         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
22281         (rs6000_stack_info): Likewise.
22282         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22283         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
22284         * config/v850/v850.c (compute_register_save_size): Likewise.
22285
22286 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
22287
22288         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
22289         gen_lowpart_common fails, use gen_lowpart_SUBREG.
22290
22291 2002-01-03  Turly O'Connor  <turly@apple.com>
22292
22293         * darwin.c (machopic_output_possible_stub_label): Don't generate
22294         stub routines for pseudo-stubs which we've just defined.
22295
22296 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22297
22298         * builtins.c: Fix formatting.
22299         * c-typeck.c: Likewise.
22300         * combine.c: Likewise.
22301         * expr.c: Likewise.
22302         * loop.c: Likewise.
22303
22304 2002-01-03  Andreas Schwab  <schwab@suse.de>
22305
22306         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
22307         and return true if _cpp_push_next_buffer pushed a new include
22308         file.
22309         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
22310         _cpp_pop_file_buffer did not push a new file.
22311         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
22312
22313 2002-01-02  Eric Christopher  <echristo@redhat.com>
22314
22315         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
22316         FIND_REG_INC_NOTE call. Update copyright.
22317         * loop.c (canonicalize_condition): Ditto.
22318         * reorg.c (delete_scheduled_jump): Ditto.
22319
22320 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22321
22322         * gcse.c: Fix formatting.
22323
22324 2002-01-03  Graham Stott  <grahams@redhat.com>
22325
22326         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
22327         forward defs for struct tags rtx_def, union_tree, rtvec_def
22328         also output corresponding typedefs for rtx, tree, and rtvec.
22329
22330         * system.h: Move forward defs for struct tags rtx_def, union_tree,
22331         rtvec_def along with corresponding typedefs for rtx, tree, and
22332         rtvec to config.h, hconfig.h, tconfig.h.
22333
22334 2002-01-03  Graham Stott  <grahams@redhat.com>
22335
22336         * tree.h: Update copyright date.
22337         (IS_EXPR_CODE_CLASS): Add parenthesis.
22338         (TREE_SET_CODE): Add whitespace.
22339         (TREE_CHECK): Add parenthesis.
22340         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
22341         (CST_OR_CONSTRUCTOR_CHECK):
22342         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
22343         (TREE_SYMBOL_REFERENCED): Whitespace.
22344         (INT_CST_LT): Likewise.
22345         (INT_CST_LT_UNSIGNED): Likewise.
22346         (tree_real_cst): Unwrap comment.
22347         (tree_string): Likewise.
22348         (tree_complex): Likewise.
22349         (IDENTIFIER_POINTER): correct cast.
22350         (SAVE_EXPR_CONTEXT): Whitespace.
22351         (EXPR_WFL_FILENAME_NODE): Likewise.
22352         (EXPR_WFL_FILENAME): Remove parenthesis.
22353         (DECL_ORIGIN): Add parenthesis.
22354         (DECL_FROM_INLINE): Use NULL_TREE.
22355         (build_int_2): Whitespace.
22356         (build_type_variant): Add parenthesis.
22357
22358         * gcc/jcf-parse.c: Update copyright date.
22359         (yyparse): Constify resource_filename.
22360
22361 2002-01-03  Graham Stott  <grahams@redhat.com>
22362
22363         * rtl.h: Update copyright date.
22364         (RTL_CHECK1): Wrap long line.
22365         (RTL_CHECK2): Likewise.
22366         (RTL_CHECKC1): Wrap long line and whitespace.
22367         (RTL_CHECKC2): Likewise.
22368         (XWINT): Whitespace.
22369         (XINT): Likewise.
22370         (XSTR): Likewise.
22371         (XEXP): Likewise.
22372         (XVEC): Likewise.
22373         (XMODE): Likewise.
22374         (XBITMAP): Likewise.
22375         (XTREE): Likewise.
22376         (XBBDEF): Likewise.
22377         (XTMPL): Likewise.
22378         (X0WINT): Likewise.
22379         (X0INT):Likewise.
22380         (X0UINT): Likewise.
22381         (X0STR): Likewise.
22382         (X0EXP): Likewise.
22383         (X0VEC): Likewise.
22384         (X0MODE): Likewise.
22385         (X0BITMAP): Likewise.
22386         (X0TREE): Likewise.
22387         (X0BBDEF): Likewise.
22388         (X0ADVFLAGS): Likewise.
22389         (X0CSELIB): Likewise.
22390         (X0MEMATTR): Likewise.
22391         (XCWINT): Likewise.
22392         (XCINT): Likewise.
22393         (XCUINT): Likewise.
22394         (XCSTR): Likewise.
22395         (XCEXP): Likewise.
22396         (XCVEC): Likewise.
22397         (XCMODE): Likewise.
22398         (XCBITMAP): Likewise.
22399         (XCTREE): Likewise.
22400         (XCBBDEF): Likewise.
22401         (XCADVFLAGS): Likewise.
22402         (XCCSELIB): Likewise.
22403         (XC2EXP): Likewise.
22404         (INSN_UID): Likewise.
22405         (PREV_INSN): Likewise.
22406         (PATTERN): Likewise.
22407         (INSN_CODE): Likewise.
22408         (PUT_REG_NOTE_KIND): Likewise.
22409         (CODE_LABEL_NUMBER): Likewise.
22410         (NOTE_SOURCE_FILE): Likewise.
22411         (NOTE_BLOCK): Likewise.
22412         (NOTE_EH_HANDLER): Likewise.
22413         (NOTE_RANGE_INFO): Likewise.
22414         (NOTE_LIVE_INFO): Likewise.
22415         (NOTE_BASIC_BLOCK): Likewise.
22416         (NOTE_EXPECTED_VALUE): Likewise.
22417         (NOTE_LINE_NUMBER): Likewise.
22418         (LABEL_NAME): Likewise.
22419         (LABEL_NUSES): Likewise.
22420         (LABEL_ALTERNATE_NAME): Likewise.
22421         (ADDRESSOF_DECL): Likewise.
22422         (JUMP_LABEL): Likewise.
22423         (LABEL_NEXTREF): Likewise.
22424         (REGNO): Likewise.
22425         (ORIGINAL_REGNO: Likewise.
22426         (HARD_REGISTER_NUM_P): Add parenthesis.
22427         (SUBREG_REG): Whitespace.
22428         (SUBREG_BYTE): Likewise.
22429         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
22430         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
22431         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
22432         (ASM_OPERANDS_INPUT_VEC): Likewise.
22433         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
22434         (ASM_OPERANDS_INPUT): Likewise.
22435         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
22436         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
22437         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
22438         (ASM_OPERANDS_INPUT_MODE): Likewise.
22439         (ASM_OPERANDS_SOURCE_FILE): Likewise.
22440         (ASM_OPERANDS_SOURCE_LINE): Likewise.
22441         (MEM_SET_IN_STRUCT_P): Minor reformat.
22442         (TRAP_CONDITION): Whitespace.
22443         (TRAP_CODE): Likewise.
22444         (COND_EXEC_TEST): Likewise.
22445         (COND_EXEC_CODE): Likewise.
22446         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
22447         (PHI_NODE_P): Add parenthesis.
22448         (plus_constant): Whitespace and add parenthesis.
22449
22450 2002-01-03  Kazu Hirata  <kazu@hxi.com>
22451
22452         * config/avr/avr.c: Fix comment typos.
22453         * config/c4x/c4x.md: Likewise.
22454         * config/dsp16xx/dsp16xx.h: Likewise.
22455         * config/dsp16xx/dsp16xx.md: Likewise.
22456         * config/i386/i386.md: Likewise.
22457         * config/ia64/ia64.c: Likewise.
22458         * config/m32r/m32r.h: Likewise.
22459         * config/m68hc11/m68hc11.md: Likewise.
22460         * config/mmix/mmix.c: Likewise.
22461         * config/mn10200/mn10200.c: Likewise.
22462         * config/romp/romp.c: Likewise.
22463         * config/sh/sh.c: Likewise.
22464         * config/stormy16/stormy16.c: Likewise.
22465         * config/stormy16/stormy16.h: Likewise.
22466         * config/stormy16/stormy16.md: Likewise.
22467
22468 2002-01-03  Graham Stott  <grahams@redhat.com>
22469
22470         * loop.h: Update copyright date.
22471         (LOOP_MOVABLES): Fix typo.
22472         (LOOP_REGS): Likewise.
22473         (LOOP_IVS): Likewise.
22474
22475 2002-01-03  Graham Stott  <grahams@redhat.com>
22476
22477         * cppinit.c: Update copyright date.
22478         Don't include output.h
22479         * Makefile.in: Update copyright date.
22480         Update dependency.
22481
22482 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22483
22484         PR c/5226
22485         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
22486         (-pthread) Add to RS/6000 options.
22487
22488 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22489
22490         * except.c: Fix comment typos.
22491         * loop.c: Likewise.
22492         * varasm.c: Likewise.
22493         * doc/tm.texi: Fix a typo.
22494
22495 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
22496
22497         * c-typeck.c (output_init_element): Allow initializing static storage
22498         duration objects with compound literals.
22499
22500 2002-01-02  Richard Henderson  <rth@redhat.com>
22501
22502         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
22503         after abusing it.
22504
22505 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22506
22507         * gcc.c (default_compilers): Const-ify.
22508         * mips-tdump.c (stab_names): Likewise.
22509         * mips-tfile.c (map_coff_types, map_coff_storage,
22510         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
22511         pseudo_ops_t, pseudo_ops): Likewise.
22512         * protoize.c (default_include): Likewise
22513
22514         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
22515         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
22516         Add array size in declaration.
22517         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
22518         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
22519         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
22520         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
22521         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
22522         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
22523         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
22524         emtens, make_nan): Const-ify.
22525         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
22526         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
22527
22528 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
22529
22530         * config.gcc (ia64-*-*): Set extra_headers.
22531         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
22532         * config/alpha/t-osf: Remove.
22533         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
22534
22535 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
22536
22537         * config/rs6000/t-aix43: Revert previous change.
22538
22539 2002-01-02  Jason Merrill  <jason@redhat.com>
22540
22541         * c-decl.c (c_expand_body): Call outlining_inline_function when
22542         emitting an inline function out of line.
22543
22544 2002-01-02  Richard Henderson  <rth@redhat.com>
22545
22546         * dwarf2out.c (limbo_die_node): Add created_for member.
22547         (new_die): New argument created_for.  Update all callers.
22548         (mark_limbo_die_list): New.
22549         (dwarf2out_init): Register limbo_die_list as a root.
22550         (dwarf2out_finish): Force insert limbo dies into their function
22551         context.
22552
22553 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
22554
22555         PR c++/5089
22556         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
22557
22558 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22559
22560         * config/h8300/fixunssfsi.c: Update copyright.
22561         Fix comment typos.
22562         Fix formatting.
22563         * config/h8300/h8300.c: Update copyright.
22564         Eliminate warnings.
22565
22566 2002-01-02  Kazu Hirata  <kazu@hxi.com>
22567
22568         * config/romp/romp.c: Fix comment formatting.
22569         * config/romp/romp.h: Likewise.
22570         * config/romp/romp.md: Likewise.
22571         * config/s390/s390.c: Likewise.
22572         * config/stormy16/stormy16.c: Likewise.
22573         * config/stormy16/stormy16.h: Likewise.
22574
22575 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
22576
22577         * c-common.h (genrtl_expr_stmt_value): Declare.
22578         * c-semantics.c (genrtl_goto_stmt): Redirect to...
22579         (genrtl_goto_stmt_value): ... this new function.  Pass new
22580         argument down to expand_expr_stmt_value, taking
22581         TREE_ADDRESSABLE into account.
22582         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
22583         STMT_EXPR as addressable, i.e., one whose result we want.
22584         * expr.c (expand_expr): Don't save expression statement value
22585         of labeled_blocks or loop_exprs.
22586         * stmt.c (expand_expr_stmt): Redirect to...
22587         (expand_expr_stmt_value): ... this new function.  Use new
22588         argument to tell whether to save expression value.
22589         (expand_end_stmt_expr): Reset last_expr_type and
22590         last_expr_value if we don't have either.
22591         * tree-inline.c (declare_return_variable): Mark its use
22592         statement as addressable.
22593         * tree.h: Document new use of TREE_ADDRESSABLE.
22594         (expand_expr_stmt_value): Declare.
22595
22596 2002-01-01  Tom Rix  <trix@redhat.com>
22597
22598         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
22599         rs6000_emit_allocate_stack.
22600
22601 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
22602
22603         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
22604         ${srcdir}/ginclude/ to every entry in extra_headers.
22605         * configure: Regenerate.
22606         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
22607         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
22608         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
22609         * ginclude/proto.h: Rename to config/convex/proto.h.
22610
22611 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22612
22613         * attribs.c (handle_vector_size_attribute): Use host_integerp
22614         and tree_int_cst; remove warnings.
22615         * caller-save.c (insert_restore): Add cast to get rid of warning.
22616         (insert_save): Likewise.
22617         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
22618         * regmove.c (find_matches): Add temporary var to kill a warning.
22619
22620 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
22621
22622         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
22623         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
22624         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
22625         (vms-dwarf2eh.o): Add Makefile rule.
22626         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
22627         * config/alpha/vms-dwarf2eh.asm: New file.
22628
22629         * gcc.c (delete_if_ordinary): Delete all versions.
22630
22631 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
22632
22633         * config/mmix/mmix.md: Update FIXME to not mention
22634         define_constants.
22635         (MMIX_rJ_REGNUM): New define_constants constant.
22636         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
22637         "*movdicc_real"): Adjust contraints formatting.
22638         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
22639         for branch prediction.
22640         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
22641         output template.
22642         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
22643         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
22644         number.  Delete related FIXMEs.
22645         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
22646         from number to MMIX_rJ_REGNUM.
22647         (TARGET_MASK_BRANCH_PREDICT): New.
22648         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
22649         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
22650         value.  Add -mbranch-predict and -mno-branch-predict.
22651         (TARGET_VERSION): Drop date.
22652         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
22653         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
22654         for finding out global symbols.
22655         (mmix_asm_output_labelref): Revert condition for global symbol.
22656         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
22657         (mmix_print_operand_punct_valid_p): A '+' is valid.
22658
22659 See ChangeLog.6 for earlier changes.