OSDN Git Service

* config/mmix/mmix.h: Improve comments.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
2
3         * config/mmix/mmix.h: Improve comments.
4         (CPP_SPEC, CPP_PREDEFINES): Don't define.
5         (TARGET_CPU_CPP_BUILTINS): Define.
6         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
7         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
8         unused predicate.
9         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
10         compiler warning.
11         (mmix_constant_address_p): Remove another
12         redundant test before case.
13         (mmix_canonicalize_comparison): Remove unused function.
14         (mmix_print_operand_address): Don't test and adjust for operand in
15         non-canonical format.
16         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
17         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
18
19 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
20
21         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
22         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
23         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
24         (gen_compare): Use CCmode unconditionally.
25
26 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
27
28         PR optimization/6759
29         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
30         the REQ_EQUAL note.
31
32 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
33
34         PR c/6660
35         * c-decl.c (grokfield): Allow user defined types if they declare
36         structs or unions for unnamed fields.
37
38 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
39
40         PR c/6809
41         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
42
43 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
44
45         PR optimization/6842
46         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
47         operand subreg cannot be simplified.
48
49 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
50
51         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
52         (compare_constant): Likewise.
53         (output_addressed_constants): Likewise.
54
55 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
56
57         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
58         merge bb with itself.
59
60 2002-06-10  Richard Henderson  <rth@redhat.com>
61
62         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
63         (builtin_zapnot): Likewise.
64
65         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
66         reservation.
67
68 2002-06-10  Eric Christopher  <echristo@redhat.com>
69
70         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
71         prototype and function.
72         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
73         (call_insn_operand): Remove half pic references.
74         (legitimate_address_p): Ditto.
75         * config/i386/i386.h: Remove half pic defines.
76
77 2002-06-10  Eric Christopher  <echristo@redhat.com>
78
79         * doc/extend.texi (Return Address): Add note explaining the side-
80         effects of inlining on __builtin_return_address.
81
82 2002-06-10  Tom Tromey  <tromey@redhat.com>
83
84         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
85         (c-common.o): Depend on langhooks.h.
86
87 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
88
89         * cpphash.h (_cpp_read_logical_line_trad,
90         _cpp_expansions_different_trad): Update prototypes.
91         * cpplex.c (continue_after_nul): New.
92         * cppmain.c: Include cpphash.h.
93         (scan_translation_unit_trad): New.
94         (cpp_preprocess_file): Call it.
95         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
96         overlay.
97         (_cpp_expansions_different_trad): Update prototype.
98
99 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
100
101         Fix cfi generation for SH[1-4]:
102
103         * sh.c (frame_insn): New function.
104         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
105         (push): Now returns rtx.  Use frame_insn.
106         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
107         of a DF register.
108         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
109
110 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
111
112         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
113         and gtype-desc.c.
114         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
115         (distclean): ... not here.  But do delete all testsuite/*.log,
116         testsuite/*.sum files here.  Delete mkheaders.  Delete
117         po/*.gmo and the testsuite directory in a split tree build.
118
119 2002-06-10  Jeffrey Law  <law@redhat.com>
120
121         * alias.c (static_reg_base_value): New to hold RTL for
122         items allocated once per function for the aliasing code.
123         (init_alias_once_per_function): Initialize static_reg_base_value.
124         (init_alias_analysis): Avoid throw-away allocations of RTL by
125         using pre-computed values in static_reg_base_value.
126         * function.c (prepare_function_start): Call
127         init_alias_once_per_function appropriately.
128         * rtl.h (init_alias_once_per_function): Declare.
129         * caller-save (init_caller_save): Restructure slightly to
130         avoid lots of silly RTL generation.
131         * expr.c (init_expr_once): Likewise.
132         * reload1.c (reload_cse_regs_1): Allocate throw-away register
133         RTL object here.  Pass it into children.
134         (reload_cse_simplify_operands): Use passed-in register RTL
135         object.
136         (reload_cse_simplify): Pass through throw-away register
137         RTL object.
138
139 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
140
141         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
142
143 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
144
145         * gcc.c (process_command): Avoid assignment to read-only location.
146         Fix sizeof calculation.
147
148 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
149
150         * cpphash.h (struct cpp_macro): Put comments on their own lines.
151         (_cpp_expansions_different_trad): New.
152         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
153         * cpptrad.c (canonicalize_text): New.
154         (scan_out_logical_line): Handle no arguments correctly.
155         (save_replacement_text): Commit memory when finished.
156         (_cpp_expansions_different_trad): New.
157
158 2002-06-10  Tim Josling  <tej@melbpc.org.au>
159
160         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
161         TREELANG and COBOL.
162         (lang_names): Add treelang and cobol.
163         (get_file_basename): Add code to support treelang and cobol as
164         4th and 5th users of c-common.c.
165
166 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
167
168         * Makefile.in (install-driver): Install driver as
169         $(target_alias)-gcc-$(version).
170         * gcc.c (spec_version): Make const.
171         (process_command): Handle -V and -b by using exec.
172         * doc/invoke.texi (Target Options): Restore -V option,
173         update docs for -b option.
174
175 2002-06-10  Tim Josling  <tej@melbpc.org.au>
176
177         * configure.in (remaining_languages_check):
178         Added check that all languages specified were found.
179         Exit if not found. Previous behaviour was silent failure.
180         * configure: Regenerated.
181
182 2002-06-10  Tim Josling  <tej@melbpc.org.au>
183
184          First steps to making treelang documentation compliant, based on
185          instructions in sourcebuild.texi. Also add to gcc.c list of
186          default languages.
187
188         * doc/contrib.texi: Add self as contributor of treelang.
189
190         * doc/frontends.texi: Add mention of treelang.
191
192         * doc/invoke.texi (Overall Options): Add mention of treelang.
193
194         * doc/standards.texi:  Add mention of treelang.
195
196 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
197
198         * config/cris/cris.c: Include ggc.h
199
200 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
201
202         * cpphash.h (_cpp_push_text_context): Update.
203         (_cpp_arguments_ok): New.
204         * cppmacro.c (_cpp_arguments_ok): New, split out from...
205         (collect_args): ...here.
206         (_cpp_push_text_context): Change inputs.
207         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
208         replace_args_and_push): New.
209         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
210         Don't use IS macros directly.
211         (scan_out_logical_line): Handle function-like macro argument
212         collection.
213         (push_replacement_text): Update.
214         (replacement_length): Remove.
215         (_cpp_create_trad_definition): Don't skip whitespace before
216         checking for '('.
217
218 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
219
220         * config/avr/avr.c (avr_mcu_types): Update for new devices.
221         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
222         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
223         * config/avr/avr.md ("type" and "length" attributes): New type
224         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
225         output a single "call" or "rcall" insn depending on device size.
226         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
227
228 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
229
230         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
231         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
232         assembler option.
233         (CPP_CPU_SPEC): Add power3 and power4.
234         (PROCESSOR_DEFAULT): Change to 604e.
235         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
236         (CPP_CPU_SPEC): Similar additions.
237         (enum process_type): Add POWER4.
238         (RTX_COSTS): Add POWER4.
239         (CPP_CPU_SPEC): Similar additions.
240         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
241         (PROCESSOR_DEFAULT64): Define.
242         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
243         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
244         branch adjustment.
245         (rs6000_issue_rate): Add Power4.
246         * config/rs6000/rs6000.md (cpu attr): Add power4.
247         (iu compare): Remove 604, 604e, 620, 630.
248         Add basic Power4 scheduling information.
249         (mfcr/mtcrf): Change type attribute to cr_logical.
250
251 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
252
253         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
254         ATTRIBUTE_PRINTF_2.
255         * gengtype-lex.l: Fix format specifier warning.
256
257         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
258         not isspace.
259         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
260         lieu of isspace/IDchar.
261         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
262         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
263         ISSPACE.
264
265 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
266
267         * Makefile.in (LIBCPP_OBJS): Take out version.o.
268         * cpphash.h (cpp_reader): Take out print_version member.
269         * cppinit.c: (cpp_handle_option): Don't do anything with
270         -version.  Just set help_only for --version, --target-help.
271         Just set verbose option for -v.
272         (cpp_post_options): Don't print a version string.
273
274 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
275
276         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
277         (avr_section_type_flags): New, handle .noinit* sections.
278
279 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
280
281         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
282         and include netbsd_entry_point.
283         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
284         (NETBSD_ENTRY_POINT): Define.
285
286 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
287
288         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
289         if not already defined.
290         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
291
292 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
293
294         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
295         in a noreturn function.
296         (avr_output_function_prologue, avr_output_function_epilogue):
297         Correct function size calculation.  Do not crash on empty function.
298         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
299
300 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
301
302         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
303         netbsd_link_spec and netbsd_entry_point.
304         (LINK_SPEC): Use %(netbsd_link_spec).
305         (NETBSD_ENTRY_POINT): Define.
306
307 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
308
309         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
310         linker emulation.
311         (LINK_ARCH64_SPEC): Likewise.
312         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
313         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
314
315 2002-06-08  Marc Espie  <espie@openbsd.org>
316
317         * lists.c (free_list):  Fix typo in comment.
318
319 2002-06-08  Andreas Jaeger  <aj@suse.de>
320
321         * lcm.c (optimize_mode_switching): Add unused attribute for
322         variable.
323
324         * sched-deps.c (sched_analyze): Remove unused variable.
325
326 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
327
328         * diagnostic.def: Don't capitalize diagnostict descriptors.
329
330 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
331
332         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
333         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
334         (NETBSD_ENTRY_POINT): Define.
335
336 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
337
338         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
339         NETBSD_LINK_SPEC_ELF.
340         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
341         (NETBSD_ENTRY_POINT): Define.
342         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
343         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
344         netbsd_entry_point.
345         (NETBSD_ENTRY_POINT): Define.
346
347 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
348
349         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
350         netbsd_link_spec and netbsd_entry_point.
351         (LINK_SPEC): Use %(netbsd_link_spec).
352         (NETBSD_ENTRY_POINT): Define.
353
354 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
355
356         * config/netbsd-elf.h (LINK_SPEC): Rename to...
357         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
358         to specify program entry point.
359
360 2002-06-07  Jeff Law <law@redhat.com
361
362         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
363         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
364         than creating a new register.
365         (distribute_notes): Likewise.
366         * df.c (df_reg_use_gen): Likewise.
367         (df_reg_clobber_gen): Likewise.
368         (df_ref_record): Likewise.
369         * expr.c (use_regs): Likewise.
370         * flow.c (propagate_one_insn): Likewise.
371         (mark_set_1): Likewise.
372         (mark_used_reg): Likewise.
373         * reload.c (emit_reload_insns): Likewise.
374
375 2002-06-07  Roger Sayle  <roger@eyesopen.com>
376
377         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
378         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
379         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
380         comparison code comp can be reversed.
381
382 2002-06-07  Roger Sayle  <roger@eyesopen.com>
383
384         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
385         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
386         equivalent x > -1.0 when -ffast-math.
387
388 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
389
390         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
391         * config/mips/t-netbsd: New file.
392
393 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
394
395         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
396         options their own entries.
397         (parse_option): Clarify comment.
398         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
399         special case.  Replace if/strcmp chain for -W options with
400         use of new OPT_* entries for them.
401         (cpp_handle_options): Update to match.
402         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
403         * c-decl.c: Update call to cpp_handle_option.
404
405 2002-06-07  Akim Demaille  <akim@epita.fr>
406
407         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
408         Whitespace changes.
409
410 2002-06-07  Jeffrey Law  <law@redhat.com>
411
412         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
413         on empty lists.
414
415 2002-06-07  H.J. Lu  (hjl@gnu.org)
416
417         * configure.in: Add --enable-__cxa_atexit.
418         * configure: Regenerated.
419         * config.in: Likewise.
420
421         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
422         not defined.
423
424 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
425
426         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
427
428 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
429
430         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
431
432 2002-06-07  Jason Merrill  <jason@redhat.com>
433
434         * cppexp.c (num_equality_op): Use a temporary variable to work
435         around gcc 3.0.4 bug.
436
437 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
438
439         * diagnostic.c (diagnostic_build_prefix): Tidy.
440
441 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
442
443         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
444         scan_parameters, save_replacement_text, replacement_length): New.
445         (scan_out_logical_line): Take a macro and save parameters if
446         non-NULL.
447         (_cpp_logical_line_trad): Update.
448         (_cpp_create_trad_definition): Update to handle function-like
449         macros.
450         * cpplex.c (new_buff): Update.
451         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
452         * cpphash.h: ...here.
453         (CPP_ALIGN2, _cpp_save_parameter): New.
454         * cppmacro.c (save_parameter): Rename, export.
455         (parse_params): Update.
456
457 2002-06-07  Andreas Jaeger  <aj@suse.de>
458
459         * config/mmix/mmix.c: Remove extra broken prototype for
460         mmix_init_machine_status.
461
462 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
463
464         * gengtype.c: Add comments before all the routines.
465
466 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
467
468         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
469         from and add t-sh64 to ${tmake_file}.
470         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
471         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
472         * config/sh/t-netbsd-sh5-32: Remove.
473         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
474         MULTILIB_ENDIAN.
475         (MULTILIB_DIRNAMES): Define.
476
477 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
478
479         * i386.md (and promoting splitters): Disable QI to SImode promoting
480         when doing so changes immediate to be 32bit.
481
482         * rtl.h (emit_*_scope): Declare.
483         * emit-rtl.c (emit_*_scope): New global functions.
484         (try_split): Copy scope.
485         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
486         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
487         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
488         noce_process_if_block, find_cond_trap): Copy scopes.
489         * recog.c (peephole2_optimize): likewise.
490
491 2002-06-06  Jeffrey Law  <law@redhat.com>
492
493         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
494
495 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
496
497         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
498
499 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
500
501         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
502         ($(docdir)/gccinstall.info): New target.
503         (info): Depend on it.
504         (gccinstall.dvi): New target.
505         (dvi): Depend on it.
506         * doc/.cvsignore: Ignore new info files.
507         * doc/install.texi (@setfilename): Reflect new info filename.
508
509 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
510
511         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
512         on an UNSPEC.
513
514 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
515
516         PR objc/6834
517         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
518         c_common_get_alias_set.
519         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
520
521 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
522
523         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
524         functions.
525         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
526         * avr/avr.c (avr_output_function_epilogue): Use above to determine
527         function size.
528         * pa/pa.c (pa_output_function_prologue): Likewise.
529
530 2002-06-05  David S. Miller  <davem@redhat.com>
531
532         * integrate.c (subst_constants): Handle 'B' RTL format.
533
534 2002-06-05  Eric Christopher  <echristo@redhat.com>
535
536         * varasm.c (make_decl_rtl): Fix comment for removed
537         halfpic.c.
538
539 2002-06-05  Eric Christopher  <echristo@redhat.com>
540
541         * Makefile.in: Remove missed halfpic bits.
542
543 2002-06-05  Eric Christopher  <echristo@redhat.com>
544
545         * toplev.c: Remove half-pic.
546         * config/mips/mips.c: Ditto.
547         * config/mips/mips.h: Ditto. Remove unused defines.
548         * config/mips/openbsd.h: Update comment to reflect above.
549         * config/mips/mips.md: Remove half-pic constraints.
550         * halfpic.h: Delete.
551         * halfpic.c: Ditto.
552
553 2002-06-05  Jeffrey Law  <law@redhat.com>
554
555         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
556         rejects (mem (lo_sum (reg) (unspec))), but will allow
557         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
558
559 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
560
561         * cpphash.h (_cpp_create_definition): Update prototype.
562         (_cpp_push_text_context, _cpp_create_trad_definition): New.
563         ( cpp_lex_identifier_trad): New.
564         (_cpp_set_trad_context): New.
565         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
566         * cpplib.c (SEEN_EOL): Update.
567         (lex_macro_node): Update for -traditional.
568         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
569         * cppmacro.c (_cpp_create_definition): Split into
570         create_iso_definition() and _cpp_create_trad_definition().
571         (warn_of_redefinition): Update prototype; handle traditional
572         macros.
573         (_cpp_push_text_context): New.
574         * cpptrad.c (skip_whitespace, push_replacement_text): New.
575         (lex_identifier): Call ht_lookup with correct start.
576         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
577         _cpp_set_trad_context): New.
578         (scan_out_logical_line): Update to handle changing contexts.
579
580 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
581
582         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
583         (shl*-*-elf*): Add.
584         * config/sh/t-be (MULTILIB_ENDIAN): Set.
585         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
586         * t-sh (MULTILIB_ENDIAN): Set.
587         (MULTILIB_OPTIONS): Use it.
588         * t-sh64 (MULTILIB_OPTIONS): Likewise.
589         (MULTILIB_DIRNAMES): Likewise.
590
591 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
592
593         * toplev.h (report_error_function): Remove.
594
595         * diagnostic.h (location_t): New datatype.
596         (text_info): Likewise.
597         (diagnostic_info): Likewise.
598         (output_prefix): New macro.
599         (diagnostic_last_function_changed): Likewise.
600         (diagnostic_set_last_function): Likewise.
601         (diagnostic_last_module_changed): Likewise.
602         (diagnostic_set_last_module): Likewise.
603         (report_diagnostic): Now macro.
604         (diagnostic_set_info): Declare.
605
606         * diagnostic.c (report_problematic_module): Rename to
607         diagnostic_repor_current_module.
608         (set_diagnostic_context): Remove.
609         (count_error): Rename to diagnostic_error_count.
610         (error_function_changed): Remove.
611         (record_last_error_function): Likewise.
612         (error_module_changed): Likewise.
613         (record_last_error_module): Likewise.
614         (context_as_prefix): Rename to diagnostic_build_prefix.
615         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
616         (diagnostic_set_info): New function.
617
618         * objc/objc-act.c: #include diagnostic.h
619         (error_with_ivar): Adjust call to count_error.
620         (warn_with_method): Likewise.
621         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
622
623 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
624
625         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
626         lang_hooks.types.make_type instead of make_node; set up
627         __va_list_tag type decl.
628         (xtensa_builtin_saveregs): Remove broken use of
629         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
630         for saved registers; add varargs alias set.
631
632 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
633
634 config:
635         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
636         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
637         CPP_PREDEFINES and part of CPP_SPEC.
638         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
639         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
640
641 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
642
643         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
644
645 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
646
647         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
648
649 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
650
651         * gengtype-yacc.y: Make sure all rules end with a semicolon.
652
653 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
654
655         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
656         typo in function prototype and include "ggc.h" header.
657
658 2002-06-04  Richard Henderson  <rth@redhat.com>
659
660         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
661         (print_operand) ['U']: Likewise.
662         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
663         (alpha_expand_unaligned_store_words): Likewise.
664         (alpha_expand_builtin_vector_binop): Fix typo.
665         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
666         umulh, and cix insns.
667         (one_arg_builtins): Add cix builtins.
668         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
669         (alpha_expand_builtin): Fix typo in arity.
670         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
671         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
672         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
673         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
674         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
675         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
676         builtin_ctlz, builtin_ctpop): New.
677         * doc/extend.texi (Alpha Built-in Functions): Update.
678
679 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
680
681         * gengtype.c (write_gc_root): Don't unnecessarily prevent
682         global variable-length arrays being roots.
683
684         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
685         * configure.in (config_gtfiles): New variable.
686         (all_gtfiles): Initialise from config_gtfiles.
687         * configure: Regenerate.
688
689 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
690
691 config/i386:
692         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
693         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
694         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
695         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
696         win32.h (CPP_SPEC): Remove cpp_cpu.
697         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
698         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
699
700 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
701
702         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
703
704 2002-06-04  Jeff Law <law@redhat.com.
705             David Edelsohn <edelsohn@gnu.org>
706             Michael Matz <matz@kde.org>
707
708         * sched-int.h (struct deps): New field libcall_block_tail_insn.
709         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
710         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
711         is set, then mark the current insn as being part of a libcall
712         scheduling group.
713         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
714
715         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
716         insns against the issue rate.
717
718 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
719
720         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
721         * final.c (final_scan_insn): Likewise.
722         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
723         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
724         * haifa-sched.c (unlink_other_notes): Likeewise.
725         (reemit_notes): Likewise.
726         * print-rtl.c (print_rtx): Likewise.
727         * sched-deps (sched-analyze): Likewise.
728         * rtl.c (note_insn_name): Likewise.
729         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
730         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
731         (RANGE_*): Kill.
732
733 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
734
735         * varasm.c (mark_constants): Handle RTX format 'B'.
736
737 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
738
739         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
740         (struct cpp_context): Add traditional fields.
741         * cppmacro.c (paste_all_tokens, push_ptoken_context,
742         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
743         * cpptrad.c (skip_comment, lex_identifier,
744         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
745
746 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
747
748         * gbl-ctors.h: Fix formatting.
749         * gcc.c: Likewise.
750         * gccspec.c: Likewise.
751         * gcov.c: Likewise.
752         * gcov-io.h: Likewise.
753         * gcse.c: Likewise.
754         * ggc-common.c: Likewise.
755         * ggc.h: Likewise.
756         * ggc-page.c: Likewise.
757         * ggc-simple.c: Likewise.
758         * global.c: Likewise.
759         * graph.h: Likewise.
760         * gthr-dce.h: Likewise.
761         * gthr.h: Likewise.
762         * gthr-posix.h: Likewise.
763         * gthr-rtems.h: Likewise.
764         * gthr-solaris.h: Likewise.
765         * gthr-win32.h: Likewise.
766
767 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
768
769         Merge from pch-branch:
770
771         * gengtype.h (UNION_OR_STRUCT_P): New macro.
772         * gengtype.c (write_gc_structure_fields): Use it.
773         (write_gc_root): Use it here too.
774
775         * gengtype.c (write_gc_structure_fields): Assume that lengths
776         of typenames fit into an 'int'; don't pass a size_t to "%d" in
777         printf.
778         (write_gc_marker_routine_for_structure): Likewise.
779         (write_gc_types): Likewise.
780         (write_gc_root): Likewise.
781
782         * varray.h (VARRAY_CLEAR): New.
783         (varray_clear): Prototype.
784         * varray.c (varray_clear): New.
785         * cselib.c (reg_values_old): New.
786         (used_regs_old): New.
787         (cselib_init): Use cached varrays if available to avoid
788         generating large amounts of garbage.
789         (cselib_finish): Don't throw away old varrays.
790
791         * final.c (insn_addresses_): Move out of ifdef.
792
793         * varray.c (uses_ggc): Make more varray kinds GCable.
794         * varray.h (union varray_data_tag): Let gengtype see
795         fields 'generic' and 'te'.
796         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
797         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
798         (reg_to_stack): Don't call VARRAY_FREE.
799         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
800         (insn_addresses_): Use gengtype to mark.
801         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
802         pointers; handle generic pointers in unused union fields.
803         (get_output_file_with_visibility): Include cselib.h,
804         insn-addr.h in gtype-desc.c.
805         * function.c (prologue): Use gengtype to mark.
806         (epilogue): Likewise.
807         (sibcall_epilogue): Likewise.
808         * dependence.c: Include gt-dependence.h, ggc.h.
809         (struct def_use): Use gengtype to mark.
810         (struct loop): Likewise.
811         (struct induction): Likewise.
812         (struct dependence): Likewise.
813         (def_use_chain): Likewise.
814         (dep_chain): Likewise.
815         (loop_chain): Likewise.
816         (induction_chain): Likewise.
817         (init_dependence_analysis): Don't free anything, just clear pointers.
818         (build_def_use): Use GGC to allocate def_use.
819         (add_loop): Use GGC to allocate loop.
820         (find_induction_variable): Use GGC to allocate induction.
821         (check_node_dependence): Use GGC to allocate induction, dependence.
822         (dump_node_dependence): Don't free varrays.
823         (end_dependence_analysis): Likewise.
824         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
825         (struct elt_loc_list): Likewise.
826         (struct elt_list): Likewise.
827         * cselib.c: Don't include obstack.h.
828         (hash_table): Use gengtype to mark.
829         (reg_values): Use gengtype to mark.
830         (used_regs): Use gengtype to mark.
831         (cselib_obstack): Delete.
832         (cselib_startobj): Delete.
833         (empty_vals): Mark as deletable.
834         (empty_elt_lists): Mark as deletable.
835         (empty_elt_loc_lists): Mark as deletable.
836         (new_elt_list): Use GGC to allocate struct elt_list.
837         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
838         (clear_table): Don't delete obstack; don't unnecessarily clear
839         deletable variables.
840         (new_cselib_val): Use GGC to allocate struct cselib_val.
841         (cselib_init): Don't set up obstacks.  Use GGC to allocate
842         hash table.
843         (cselib_finish): Just clear variables, don't free anything.
844         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
845         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
846         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
847         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
848         (gt-reg-stack.h): New rule.
849         (gt-dependence.h): New rule.
850         (gtype-desc.o): Add cselib.h, insn-addr.h.
851
852         * varray.c: Use only necessary headers.
853         (element_size): New.
854         (uses_ggc): New.
855         (varray_init): Take type, not size.  Use GGC if appropriate.
856         (varray_grow): Update for change to struct varray_head_tag.
857         Use GGC if appropriate.
858         * varray.h (struct const_equiv_data): Use gengtype.
859         (enum varray_data_enum): New.
860         (union varray_data_tag): Use gengtype.
861         (struct varray_head_tag): Use gengtype.  Replace size field with
862         enum varray_data_enum.
863         (varray_init): Update prototype.
864         (VARRAY_SCHED_INIT): Delete.
865         (VARRAY_*_INIT): Update for change to varray_init.
866         (VARRAY_SCHED): Delete.
867         (VARRAY_PUSH_SCHED): Delete.
868         (VARRAY_TOP_SCHED): Delete.
869         * tree.h: Update for change to length specifier.
870         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
871         (clone_body): Likewise.
872         * ssa.h (ssa_definition): Use gengtype to mark.
873         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
874         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
875         * rtl.h (struct rtvec_def): Update for change to length specifier.
876         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
877         (struct initial_value_struct): Update for change to length specifier.
878         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
879         (ggc_add_tree_varray_root): Delete prototype.
880         (ggc_mark_rtx_varray): Delete prototype.
881         (ggc_mark_tree_varray): Delete prototype.
882         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
883         (ggc_add_tree_varray_root): Delete.
884         (ggc_mark_rtx_varray): Delete.
885         (ggc_mark_tree_varray): Delete.
886         (ggc_mark_rtx_varray_ptr): Delete.
887         (ggc_mark_tree_varray_ptr): Delete.
888         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
889         (create_varray): Delete prototype.
890         * gengtype.c (varrays): Delete.
891         (create_varray): Delete.
892         (adjust_field_type): Detect array of string pointers.
893         (process_gc_options): Remove code to handle varray_type option.
894         (set_gc_used_type): Remove TYPE_VARRAY case.
895         (output_escaped_param): New.
896         (write_gc_structure_fields): Use output_escaped_param on all
897         parameters.  Handle 'skip' with 'use_param' option.  Handle
898         arrays of strings.  Remove TYPE_VARRAY handling.
899         (write_gc_roots): Use boolean to detect 'length' option.
900         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
901         (struct_fields): Call adjust_field_type on array fields.
902         (type): Remove VARRAY_TYPE case.
903         (type_option): Likewise.
904         * gengtype-lex.l: Don't consider varray_type a keyword.
905         * function.h: Update for change to length specifier.
906         (free_eh_status): Delete prototype.
907         * function.c (free_after_compilation): Don't call free_eh_status.
908         (reorder_blocks): Don't use VARRAY_FREE.
909         * except.c (struct eh_status): Update for change to length specifier.
910         remove varray_type specifier.
911         (free_eh_status): Delete.
912         * dwarf2out.c: Include gt-dwarf2out.h.
913         (used_rtx_varray): Use gengtype to mark, move
914         outside ifdefs.
915         (incomplete_types): Likewise.
916         (decl_scope_table): Likewise.
917         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
918         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
919         * c-tree.h (struct lang_type): Update for change to length specifier.
920         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
921         * c-objc-common.c: Include gt-c-objc-common.h.
922         (deferred_fns): Mark for gengtype.
923         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
924         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
925         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
926         (gtype-desc.o): Update dependencies.
927         (dwarf2out.o): Add gt-dwarf2out.h.
928         (varray.o): Update dependencies.
929         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
930         (gt-c-objc-common.h): New rule.
931         (gt-dwarf2out.h): New rule.
932         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
933
934         * doc/gty.texi (GTY Options): Correct spelling.
935         (GGC Roots): Likewise.
936         * Makefile.in (TEXI_CPP_FILES): New.
937         (TEXI_GCC_FILES): New.
938         (TEXI_GCCINT_FILES): New.
939         (TEXI_CPPINT_FILES): New.
940         ($(docdir)/cpp.info): Use new macros.
941         ($(docdir)/gcc.info): Likewise.
942         ($(docdir)/gccint.info): Likewise.
943         ($(docdir)/cppinternals.info): Likewise.
944         (cpp.dvi): Likewise.
945         (gcc.dvi): Likewise.
946         (gccint.dvi): Likewise.
947         (cppinternals.dvi): Likewise.
948
949         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
950         * doc/gccint.texi (Top): Include gty.texi.
951         * doc/gty.texi: New file.
952
953         * bitmap.c: Include ggc.h, gt-bitmap.h.
954         (bitmap_ggc_free): New.
955         (bitmap_elem_to_freelist): New.
956         (bitmap_element_free): Use bitmap_elem_to_freelist.
957         (bitmap_element_allocate): Allow use of GGC.
958         (bitmap_clear): Use bitmap_elem_to_freelist.
959         (bitmap_copy): Update for change to bitmap_element_allocate.
960         (bitmap_set_bit): Likewise.
961         (bitmap_operation): Update for changes elsewhere.
962         (bitmap_initialize): Allow to create bitmaps that will use GGC.
963         * bitmap.h (struct bitmap_element_def): Use gengtype.
964         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
965         (bitmap_initialize): Add extra parameter.
966         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
967         (BITMAP_ALLOCA): Delete.
968         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
969         (BITMAP_GGC_ALLOC): New.
970         * Makefile.in (gtype-desc.o): Add bitmap.h.
971         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
972         (GTFILES): Add bitmap.c.
973         (gt-bitmap.h): New rule.
974         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
975         * basic-block.h: Update for changes to bitmap_initialize.
976         * except.c (exception_handler_label_map): Move into...
977         (struct eh_status): Here.
978         (struct eh_region): Make 'aka' GCable.
979         (free_eh_status): Don't need to specially handle
980         exception_handler_label_map.
981         (add_ehl_entry): Update for changes to exception_handler_label_map.
982         (find_exception_handler_labels): Likewise.
983         (remove_exception_handler_label): Likewise.
984         (maybe_remove_eh_handler): Likewise.
985         (for_each_eh_label): Likewise.
986         (remove_eh_handler): Allocate 'aka' using GGC.
987         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
988         to list of includes.
989
990         * gengtype.c (write_gc_marker_routine_for_structure): Name
991         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
992         (write_gc_types): Arrange for the tests with NULL to be inlined.
993         (write_gc_roots): Update uses of procedure pointers.
994         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
995
996         * Makefile.in (explow.o): Add dependency on gt-explow.h.
997         (sdbout.o): Add dependency on gt-sdbout.h.
998
999         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
1000         (mem_attrs_htab): Likewise.
1001         (init_emit_once): Don't call ggc_add_deletable_htab.
1002         * fold-const.c (size_htab): Use gengtype to clear unused entries.
1003         (size_int_type_wide): Don't call ggc_add_deletable_htab.
1004         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
1005         parameters, use them, change callers.
1006         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
1007         (write_gc_roots): Handle 'if_marked' option.
1008         (main): Don't need to call set_gc_used_type any more.
1009         * ggc.h (ggc_htab_marked_p): Delete.
1010         (ggc_htab_mark): Delete.
1011         (struct ggc_cache_tab): New.
1012         (gt_ggc_cache_rtab): New declaration.
1013         * ggc-common.c (struct d_htab_root): Delete.
1014         (d_htab_roots): Delete.
1015         (ggc_add_deletable_htab): Delete.
1016         (ggc_htab_delete): Handle new htab-deleting mechanism.
1017         (ggc_mark_roots): Use new htab-deleting mechanism.
1018         * tree.c (type_hash_table): Use gengtype to clear unused entries.
1019         Make static.
1020         (init_obstacks): Don't call ggc_add_deletable_htab.
1021
1022         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
1023         (struct hashed_entry): Likewise.
1024         (nst_method_hash_list): Likewise.
1025         (cls_method_hash_list): Likewise.
1026         (HASH_ALLOC_LIST_SIZE): Delete.
1027         (ATTR_ALLOC_LIST_SIZE): Delete.
1028         * objc/objc-act.c (hash_init): Use ggc to allocate
1029         nst_method_hash_list, cls_method_hash_list.
1030         (hash_enter): Use ggc to allocate; allocate one entry at a time.
1031         (hash_add_attr): Likewise.
1032         (ggc_mark_hash_table): Delete.
1033         (objc_act_parse_init): Delete.
1034         (objc_init): Delete reference to objc_act_parse_init.
1035         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
1036         obstack.h.  Replace references to 'struct hash_table' with htab_t.
1037         (struct symbol_hash_entry): Replace hash header with key field.
1038         (struct file_hash_entry): Replace hash header with key field.
1039         (struct demangled_hash_entry): Replace hash header with key field.
1040         (hash_string_eq): New.
1041         (hash_string_hash): New.
1042         (symbol_hash_newfunc): Delete.
1043         (symbol_hash_lookup): Modify to use htab_t.
1044         (file_hash_newfunc): Delete.
1045         (file_hash_lookup): Modify to use htab_t.
1046         (demangled_hash_newfunc): Delete.
1047         (demangled_hash_lookup): Modify to use htab_t.
1048         (tlink_init): Modify to use htab_t.
1049         * hash.h: Delete.
1050         * hash.c: Delete.
1051         * ggc.h: Delete forward structure declarations.
1052         Delete prototypes for deleted functions.
1053         * ggc-common.c: Don't include hash.h.
1054         (ggc_add_tree_hash_table_root): Delete.
1055         (ggc_mark_tree_hash_table_entry): Delete.
1056         (ggc_mark_tree_hash_table): Delete.
1057         (ggc_mark_tree_hash_table_ptr): Delete.
1058         * gengtype.c (write_gc_structure_fields): Allow param_is option.
1059         (write_gc_marker_routine_for_structure): Use visibility of
1060         the parameter if there is one.
1061         * function.c: Replace hash.h with hashtab.h.  Replace references
1062         to 'struct hash_table *' with htab_t.
1063         (struct insns_for_mem_entry): Include a plain key.
1064         (fixup_var_refs_insns_with_hash): Update to use htab_t.
1065         (insns_for_mem_newfunc): Delete.
1066         (insns_for_mem_hash): Update to use htab_t.
1067         (insns_for_mem_comp): Likewise.
1068         (insns_for_mem_walk): Likewise.
1069         * c-lang.c: Include ggc.h.
1070         * Makefile.in (OBJS): Remove hash.o.
1071         (c-lang.o): Add GGC_H.
1072         (COLLECT2_OBJS): Remove hash.o.
1073         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
1074         (ggc-common.o): Remove hash.h.
1075         (function.o): Remove hash.h, add HASHTAB_H.
1076         (genautomata.o): Remove hash.h, add HASHTAB_H.
1077
1078         * varasm.c (mark_const_str_htab_1): Delete.
1079         (mark_const_str_htab): Delete.
1080         (const_str_htab_del): Delete.
1081         (const_str_htab): Use gengtype to mark.
1082         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
1083         allocate them.
1084         * tree.c (mark_tree_hashtable_entry): Delete.
1085         (mark_tree_hashtable): Delete.
1086         * tree.h (mark_tree_hashtable): Delete prototype.
1087         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
1088         (ggc_mark): Likewise.
1089         (ggc_calloc): New.
1090         (htab_create_ggc): New.
1091         * ggc-common.c (ggc_calloc): New.
1092         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
1093         (struct type): Add param_struct structure.
1094         * gengtype.c (param_structs): New.
1095         (adjust_field_type): Handle param_is option.
1096         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
1097         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
1098         (write_gc_structure_fields): Add new PARAM parameter.  Update
1099         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
1100         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
1101         Use it to generate function name.  Update callers.
1102         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
1103         Process them.
1104         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
1105         option.
1106         (main): Define PTR as pointer-to-scalar.  Don't specially
1107         mark deferred_string or ehl_map_entry.
1108         * gengtype-yacc.y (PARAM_IS): Add new token.
1109         (externstatic): Use adjust_field_type.
1110         (type_option): Add PARAM_IS.
1111         * gengtype-lex.l: Add rule for typedef of function pointers.
1112         Add rule for PARAM_IS.
1113         (IWORD): Add size_t.
1114         * except.c (exception_handler_label_map): Use gengtype to mark.
1115         (type_to_runtime_map): Likewise.
1116         (mark_ehl_map_entry): Delete.
1117         (mark_ehl_map): Delete.
1118         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
1119         (t2r_mark_1): Delete.
1120         (t2r_mark): Delete.
1121         * Makefile.in (gtype-desc.o): Correct dependencies.
1122         (GTFILES): Add hashtab.h.
1123         (genautomata.o): Actually uses hashtab.h.
1124
1125         * Makefile.in (stringpool.o): Add $(GGC_H).
1126         (dwarf2asm.o): Likewise.
1127         (GTFILES): Add hashtable.h.
1128         * c-common.h (struct c_common_identifier): Use gengtype.
1129         * c-decl.h (c_mark_tree): Delete.
1130         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1131         * c-tree.h (struct lang_identifier): Use gengtype.
1132         (union lang_tree_node): New.
1133         (c_mark_tree): Delete prototype.
1134         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
1135         dwarf2_debug_hooks.
1136         * gengtype-lex.l (IWORD): Allow 'bool'.
1137         (ptr_alias): Match.
1138         * gengtype-yacc.y (ALIAS): New token.
1139         (type_option): New rule.
1140         (option): Use type_option.
1141         * gengtype.c (process_gc_options): New.
1142         (set_gc_used_type): Use it.
1143         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
1144         Add new variable 't' to hold the type of the field being processed.
1145         Add more error checking.  Use UNION_P when looking at 'desc' option.
1146         Handle language-specific structures containing other
1147         language-specific structures.
1148         (write_gc_types): Handle 'ptr_alias' option.
1149         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
1150         * ggc-common.c (ggc_pending_trees): Delete.
1151         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
1152         (ggc_mark_trees): Delete.
1153         (gt_ggc_m_tree_node): Delete.
1154         * ggc.h (ggc_pending_trees): Delete.
1155         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
1156         * hashtable.h (ht_identifier): Use gengtype.
1157         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
1158         * langhooks.h (struct lang_hooks): Delete mark_tree.
1159         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
1160         anyway.
1161         * system.h: Poison LANG_HOOKS_MARK_TREE.
1162         * tree.c (tree_node_structure): New.
1163         * tree.h (struct tree_common): Use gengtype.
1164         (struct tree_int_cst): Likewise.
1165         (struct tree_real_cst): Likewise.
1166         (struct tree_string): Likewise.
1167         (struct tree_complex): Likewise.
1168         (struct tree_vector): Likewise.
1169         (struct tree_identifier): Likewise.
1170         (struct tree_list): Likewise.
1171         (struct tree_vec): Likewise.
1172         (struct tree_exp): Likewise.
1173         (struct tree_block): Likewise.
1174         (struct tree_type): Likewise.
1175         (struct tree_decl): Likewise.
1176         (enum tree_structure_enum): New.
1177         (union tree_node): Use gengtype, with an alias.
1178         (tree_node_structure): Prototype.
1179         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1180
1181         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
1182         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
1183         to LANG_HOOKS_FUNCTION_FINAL.
1184         * Makefile.in (GTFILES): Add bitmap.h.
1185         * except.c (struct eh_region): Mark field 'aka' to be skipped.
1186
1187         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
1188         (alpha_init_machine_status): Give proper type.
1189         * Makefile.in (c-lang.o): Depend on gtype-c.h.
1190         (optabs.o): Depend on gt-optabs.h.
1191         (GTFILES): Add optabs.o.
1192         (gt-optabs.h): Add rule.
1193         * optabs.c: Include gt-optabs.h.
1194
1195         * gengtype.c (set_gc_used_type): Correct some errors in last change.
1196         (write_gc_structure_fields): If a field which should be NULL is
1197         not, abort.
1198         * c-pragma.c: Move struct align_stack and variable alignment_stack
1199         out from the ifdef.
1200
1201         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
1202         * config/xtensa/xtensa.c: Include gt-cris.h.
1203         (struct machine_function): Use gengtype to mark.
1204         * config/mmix/mmix.h (struct machine_function): Use gengtype
1205         to mark.
1206         * config/cris/t-cris: Add dependencies for gt-cris.h.
1207         * config/cris/cris.c: Include gt-cris.h.
1208         (struct machine_function): Use gengtype to mark.
1209         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
1210         to mark.
1211         * doc/tm.texi (Per-Function Data): Delete references to
1212         mark_machine_status.
1213         * config/ia64/ia64.c (ia64_override_options): Don't set
1214         mark_machine_status.
1215         * config/i386/i386.c (override_options): Likewise.
1216         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
1217         * config/arm/arm.c (arm_init_expanders): Likewise.
1218         * config/alpha/alpha.c (override_options): Likewise.
1219         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
1220         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
1221         (write_gc_structure_fields): Don't handle 'really' option.
1222         Handle 'maybe_null' option.
1223         (write_gc_types): Handle 'maybe_null' option.
1224         * function.h (struct function): Don't use "really".
1225         (mark_machine_status): Delete declaration.
1226         (mark_lang_status): Delete declaration.
1227         (gt_ggc_mr_machine_function): Delete prototype.
1228         (gt_ggc_mr_language_function): Delete prototype.
1229         * function.c (mark_machine_status): Delete.
1230         (mark_lang_status): Delete.
1231         (gt_ggc_mr_machine_function): Delete.
1232         (gt_ggc_mr_language_function): Delete.
1233         * c-tree.h (mark_c_function_context): Delete prototype.
1234         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
1235         * c-decl.c (struct language_function): Rename from struct
1236         c_language_function.  Update uses.  Use gengtype to mark.
1237         (mark_c_function_context): Delete.
1238         * c-common.h (struct c_language_function): Rename from struct
1239         language_function.
1240         (mark_stmt_tree): Delete prototype.
1241         (c_mark_lang_decl): Delete prototype.
1242         (mark_c_language_function): Delete prototype.
1243         * c-common.c (mark_stmt_tree): Delete.
1244         (c_mark_lang_decl): Delete.
1245         (mark_c_language_function): Delete.
1246
1247         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
1248         (lang_bitmap): New typedef.  Use where appropriate.
1249         (struct type): Add gc_used field, lang_struct field.
1250         (UNION_P): New macro.
1251         (new_structure): New prototype.
1252         (find_structure): Remove 'pos' parameter.  Change all callers.
1253         * gengtype-lex.l: Update for changes to find_structure.
1254         * gengtype-yacc.y (typedef_struct): Use new_structure.
1255         (yacc_ids): Suppress warning.
1256         (type): Use new_structure.
1257         * gengtype.c (string_type): Update for changes to struct type.
1258         (find_structure): Just find a structure, don't worry about
1259         creating one.
1260         (new_structure): New.
1261         (note_yacc_type): Use new_structure.
1262         (set_gc_used_type): New.
1263         (set_gc_used): New.
1264         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
1265         (write_gc_types): Handle TYPE_LANG_STRUCT.
1266         (write_gc_marker_routine_for_structure): New.
1267         (main): Call set_gc_used.  Add some calls to set_gc_used_type
1268         for places where GCC doesn't use gengtype properly yet.
1269         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
1270         (gt_ggc_m_tree_node): Likewise.
1271
1272         * varasm.c (copy_constant): Call expand_constant if we hit
1273         something we can't recognise.
1274
1275         * ggc-common.c (ggc_mark_rtvec_children): Delete.
1276         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
1277         (lang_mark_false_label_stack): Delete.
1278         * rtl.h (struct rtvec_def): Use gengtype to mark.
1279         * ggc.h (ggc_mark_rtvec): Delete.
1280         (gt_ggc_m_rtvec_def): Delete.
1281         (ggc_mark_nonnull_tree): Delete.
1282         (ggc_mark_rtvec_children): Delete prototype.
1283         (lang_mark_false_label_stack): Delete declaration.
1284
1285         * gengtype.h (note_yacc_type): Add prototype.
1286         * gengtype.c (note_yacc_type): New function.
1287         * gengtype-lex.l: Add lexer support for yacc files.
1288         * gengtype-yacc.y (start): Extract union from yacc files.
1289         (yacc_union): New rule.
1290         (yacc_typematch): New rule.
1291         (yacc_ids): New rule.
1292         (enum_items): Tweak for efficiency.
1293         (optionseq): Likewise.
1294
1295         * c-common.h (struct language_function): Use gengtype.
1296         (struct c_lang_decl): Likewise.
1297         * c-tree.h (struct lang_decl): Likewise.
1298         (struct lang_type): Likewise.
1299         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
1300         tree language substructures.
1301
1302         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
1303         ggc_mark_tree.
1304         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
1305
1306         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
1307
1308         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
1309         mark. Remove 'data.block.cleanup_ptr' field.
1310         (struct stmt_status): Use usual technique to mark struct nesting.
1311         (gt_ggc_mr_nesting_cond): Delete.
1312         (gt_ggc_mr_nesting_loop): Delete.
1313         (gt_ggc_mr_nesting_block): Delete.
1314         (gt_ggc_mr_nesting_case_stmt): Delete.
1315         (expand_start_cond): Set discriminator.
1316         (expand_start_loop): Likewise.
1317         (expand_start_null_loop): Likewise.
1318         (expand_start_bindings_and_block): Set discriminator.  Don't set
1319         deleted fields.
1320         (expand_decl_cleanup): Replace 'cleanup_ptr' with
1321         &thisblock->data.block.cleanups.
1322         (expand_start_case): Set discriminator.
1323         (expand_start_case_dummy): Set discriminator.
1324
1325         * ggc-callbacks.c: Remove.
1326
1327         * gengtype.h (struct type): Add 'u.s.bitmap' field.
1328         (find_structure): Add 'pos' parameter.
1329         * gengtype-lex.l: Update callers to find_structure.
1330         * gengtype-yacc.y: Likewise.
1331         * gengtype.c (find_structure): Allow for structures to be defined
1332         in multiple language backends.
1333         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
1334         (counter): Rename to gc_counter.
1335         (write_gc_structure_fields): Fail when writing out fields for
1336         an incomplete structure.  Ignore arrays of scalars.  Handle
1337         'tree_vec' special.
1338         (write_gc_types): Reset counter for each procedure written.
1339
1340         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
1341         (free_case_nodes): Delete.
1342         (expand_end_case_type): Delete call to free_case_nodes.
1343
1344         * Makefile.in (cselib.o): Include gt-<filename>.h.
1345         (gcse.o): Likewise.
1346         (profile.o): Likewise.
1347         (alias.o): Likewise.
1348         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
1349         alphabetize backend files.
1350         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
1351         * alias.c: Use gengtype for roots.
1352         * c-common.h (struct stmt_tree_s): Use gengtype.
1353         * c-decl.c: Use gengtype for roots.
1354         * cselib.c: Use gengtype for roots.
1355         * expr.c: Use gengtype for roots.
1356         * fold-const.c: Use gengtype for roots.
1357         * gcse.c: Use gengtype for roots.
1358         * gengtype-lex.l: Handle typedefs of function types.
1359         Allow for empty array bounds.
1360         Allow processing to stop on initialisers.
1361         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
1362         (semiequal): New rule.
1363         * gengtype.c (create_file): Tidy output files.
1364         (get_output_file_with_visibility): Fix paren warning.  Fix bug
1365         involving multiple input files mapping to one output file.
1366         (write_gc_structure_fields): Skip arrays of scalars.
1367         (write_gc_types): Tidy output files.
1368         (write_gc_root): New function.
1369         (write_gc_roots): Fix bugs, add support for roots that are
1370         structures.
1371         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
1372         (ggc_mark_tree_ptr): Delete.
1373         (ggc_add_rtx_root): Delete.
1374         (ggc_add_tree_root): Delete.
1375         (ggc_del_root): Delete.
1376         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
1377         allocate struct initial_value_struct.
1378         * profile.c: Use gengtype for roots.
1379         * sdbout.c: Use gengtype for roots.
1380         * varasm.c (mark_weak_decls): Delete unused prototype.
1381         (mark_const_hash_entry): Delete unused function.
1382         * config/darwin-protos.h: Use gengtype for roots.
1383         (machopic_add_gc_roots): Delete.
1384         * config/arm/arm.c: Use gengtype for roots.
1385         * config/arm/arm.h: Use gengtype for roots.
1386         * config/c4x/c4x-protos.h: Use gengtype for roots.
1387         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
1388         * config/d30v/d30v-protos.h: Use gengtype for roots.
1389         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
1390         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
1391         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
1392         * config/ia64/ia64-protos.h: Use gengtype for roots.
1393         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
1394         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
1395         * config/m68hc11/m68hc11.c (z_reg): Make global.
1396         (z_reg_qi): Make global.
1397         (m68hc11_add_gc_roots): Delete.
1398         * config/mcore/mcore-protos.h: Use gengtype for roots.
1399         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
1400         * config/mips/mips.c (mips_add_gc_roots): Delete.
1401         * config/mips/mips.h: Use gengtype for roots.
1402         * config/mmix/mmix.c (override_options): Use gengtype for roots.
1403         * config/mmix/mmix.h: Use gengtype for roots.
1404         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
1405         * config/mn10200/mn10200.h: Use gengtype for roots.
1406         * config/pa/pa.c: Use gengtype for roots, marking.
1407         (struct deferred_plabel): Use GGC, gengtype.
1408         (pa_add_gc_roots): Delete.
1409         (mark_deferred_plabels): Delete.
1410         * config/pj/pj-protos.h: Use gengtype for roots.
1411         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
1412         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
1413         machopic_add_gc_roots.
1414         * config/rs6000/rs6000.h: Use gengtype for roots.
1415         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
1416         (gt-darwin.h): Add rule.
1417         * config/sh/sh.c: Use gengtype for roots.
1418         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
1419         (gt-sh.h): Add rule.
1420         * config/sparc/sparc.c: Use gengtype for roots.
1421         (sparc_add_gc_roots): Delete.
1422         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
1423         (mark_ultrasparc_pipeline_state): Delete.
1424         * config/sparc/sparc.h: Use gengtype for roots.
1425
1426         * Makefile.in (c-parse.o): Update dependencies.
1427         (c-common.o): Likewise.
1428         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
1429         Add dependencies for the files they generate.
1430         * c-common.c: Replace ggc_add_* uses with GTY annotations.
1431         * c-common.h: Likewise.
1432         * c-decl.c: Likewise.
1433         (gt_ggc_mp_binding_level): Delete.
1434         * c-lang.c: Include gtype-c.h.
1435         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
1436         gt-c-parse.h.
1437         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
1438         (gt_ggc_mp_align_stack): Delete.
1439         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
1440         * function.c: Replace ggc_add_* uses with GTY annotations.
1441         (gt_ggc_mp_function): Delete.
1442         * function.h: Replace ggc_add_* uses with GTY annotations.
1443         * gengtype.c (lang_names): New.
1444         (NUM_BASE_FILES): New.
1445         (open_base_files): Create language base files.
1446         (startswith): New.
1447         (get_file_basename): New.
1448         (get_base_file_bitmap): New.
1449         (get_output_file_with_visibility): Rename from get_output_file.
1450         Add more mappings for various C/Objc filenames.
1451         (finish_root_table): New.
1452         (write_gc_roots): Handle dependencies and scoping properly.
1453         * gengtype.h: Add prototypes for new functions.
1454         * ggc-common.c (struct deletable_root): Delete.
1455         (deletables): Delete.
1456         (ggc_add_deletable_root): Delete.
1457         (ggc_mark_roots): No need to deal with deleted functionality.
1458         * ggc.h (ggc_add_deletable_root): Delete prototype.
1459         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
1460         (gtype-objc.h): Add rule to create.
1461         * objc/config-lang.in (gtfiles): New.
1462         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
1463         ggc_add_* with GTY markers.  Include gtype-objc.h.
1464         (ggc_mark_imp_list): Delete.
1465         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
1466         * objc/objc-lang.c: Random Whitespace Change.
1467
1468         * except.h (exception_handler_labels): Delete.
1469         (get_exception_handler_labels): New.
1470         * except.c (exception_handler_labels): Delete.
1471         (struct eh_status): Add exception_handler_labels field.
1472         (doing_eh): Don't add exception_handler_labels as root.
1473         (free_eh_status): Don't need to free exception_handler_labels.
1474         (get_exception_handler_labels): New.
1475         (find_exception_handler_labels): Update for move of
1476         exception_handler_labels.
1477         (remove_exception_handler_label): Likewise.
1478         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
1479         * jump.c (rebuild_jump_labels): Likewise.
1480         * loop.c (find_and_verify_loops): Likewise.
1481         * sched-rgn.c (is_cfg_nonregular): Likewise.
1482
1483         * gengtype.c (write_gc_structure_fields): Handle variable-length
1484         TYPE_ARRAYs.
1485
1486         * varasm.c (struct weak_syms): Use GGC, gengtype.
1487         (mark_weak_decls): Delete.
1488         (weak_decls): Likewise.
1489         (add_weak): Likewise.
1490         (remove_from_pending_weak_list): Likewise.
1491         (init_varasm_once): Likewise.
1492
1493         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
1494         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
1495         stor-layout.c, regclass.c, and lists.c.
1496         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
1497         gt-regclass.h and gt-lists.h on s-gtype.
1498         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
1499         * except.c: Use gengtype for roots.
1500         * explow.c: Use gengtype for roots.  Include gt-explow.h.
1501         * expr.h (init_stor_layout_once): Delete prototype.
1502         * function.c: Use gengtype for roots.
1503         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
1504         * gengtype-yacc.y (start): Can also be an externstatic.
1505         (externstatic): New production.
1506         (struct_fields): Correct array bounds inversion for 2-d arrays.
1507         * gengtype.c (variables): New variable.
1508         (note_variable): New function.
1509         (get_output_file): Include libfuncs.h into gtype-desc.c.
1510         (get_output_file_name): New function.
1511         (write_gc_structure_fields): Suppress warnings.
1512         (write_gc_types): Make static.
1513         (put_mangled_filename): New function.
1514         (write_gc_roots): New function.
1515         (main): Call write_gc_roots.
1516         * gengtype.h (note_variable): Prototype.
1517         (get_output_file_name): Prototype.
1518         (write_gc_types): Delete prototype.
1519         * ggc.h: Clean up unnecessary structure predefinitions.
1520         (struct ggc_root_tab): Define.
1521         (gt_ggc_m_rtx_def): Make function, not macro.
1522         (gt_ggc_m_tree_node): Likewise.
1523         * libfuncs.h: Use gengtype for roots.
1524         * lists.c: Use gengtype for roots.  Include gt-lists.h.
1525         (init_EXPR_INSN_LIST_cache): Delete.
1526         * optabs.c: Use gengtype for roots.
1527         (gt_ggc_mp_optab): Delete.
1528         * optabs.h: Use gengtype for roots.
1529         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
1530         * rtl.h: Use gengtype for roots.
1531         (init_EXPR_INSN_LIST_cache): Delete prototype.
1532         * stor-layout.c: Use gengtype for roots.
1533         Include gt-stor-layout.h.
1534         (init_stor_layout_once): Delete.
1535         * toplev.c: Use gengtype for roots.  Delete calls to deleted
1536         routines.
1537         * tree.c: Use gengtype for roots.
1538         * tree.h: Use gengtype for roots.
1539         * varasm.c: Use gengtype for roots.
1540
1541         * Makefile.in (GTFILES): Add @all_gtfiles@.
1542         * configure: Regenerate.
1543         * configure.in: Construct all_gtfiles from the gtfiles definitions
1544         in config-lang.in.
1545         * gengtype-yacc.y (type): Warn about duplicate structure names.
1546         * gengtype.c (get_output_file): Handle .c files in language
1547         subdirectories.
1548
1549         * Makefile.in (GTFILES): Run gengtype on all the config files
1550         and on the target .c file.
1551         * except.c (mark_eh_region): Delete.
1552         (init_eh_for_function): Use GGC on struct eh_status.
1553         (mark_eh_status): Delete.
1554         (free_eh_status): Use GGC.
1555         (expand_eh_region_start): Use GGC to
1556         (collect_eh_region_array): Allocate last_region_number using GGC.
1557         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
1558         (remove_eh_handler): Let GGC free struct eh_region.
1559         (add_call_site): Use GGC to reallocate call_site_record array.
1560         * function.c (init_machine_status): Update calling sequence.
1561         (mark_machine_status): Likewise.
1562         (mark_lang_status): Likewise.
1563         (prepare_function_start): Update init_machine_status call.
1564         (mark_function_status): Delete.
1565         (maybe_mark_struct_function): Delete.
1566         (ggc_mark_struct_function): Delete.
1567         (gt_ggc_mp_function): New.
1568         (gt_ggc_mr_machine_function): New.
1569         (gt_ggc_mr_language_function): New.
1570         (init_function_once): Use canonical names.
1571         * function.h (struct function): Use gengtype.
1572         (init_machine_status): Return the structure.
1573         (mark_machine_status): Take a 'void *'.
1574         (mark_lang_status): Likewise.
1575         * ggc-common.c (ggc_mark_trees): Use canonical name for
1576         ggc_mark_struct_function.
1577         * tree.h (ggc_mark_struct_function): Delete prototype.
1578         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
1579         (alpha_init_machine_status): Likewise.
1580         (override_options): Use canonical name for alpha_mark_machine_status.
1581         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
1582         * config/arm/arm.h (struct machine_function): Use gengtype.
1583         * config/arm/arm.c (arm_mark_machine_status): Delete.
1584         (arm_init_machine_status): Update calling sequence.
1585         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
1586         * config/cris/cris.c (cris_init_machine_status): Update
1587         calling sequence.
1588         * config/d30v/d30v.h (struct machine_function): Use gengtype.
1589         * config/d30v/d30v.c (d30v_init_machine_status): Update
1590         calling sequence.
1591         (d30v_mark_machine_status): Delete.
1592         * config/i386/i386.c: Include gt-i386.h.
1593         (struct machine_function): Use gengtype.
1594         (ix86_init_machine_status): Update calling sequence.
1595         (ix86_mark_machine_status): Delete.
1596         (override_options): Use canonical namke for ix86_mark_machine_status.
1597         * config/ia64/ia64.h (struct machine_function): Use gengtype.
1598         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
1599         sequence.
1600         (ia64_mark_machine_status): Delete.
1601         (ia64_override_options): Use canonical name for
1602         ia64_mark_machine_status.
1603         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
1604         sequence.
1605         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
1606         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1607         * gengtype.c (get_output_file): Fix warning.
1608         (main): Add prototype to suppress warning.
1609         * tree.c: Remove tree_hash_mark prototype.
1610
1611         * tree.h (init_stmt): Delete prototype.
1612         * toplev.c (lang_independent_init): Don't call init_stmt.
1613         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
1614         (stmt_obstack): Delete.
1615         (POPSTACK): No need to free 'struct nesting'.
1616         (gt_ggc_mr_nesting_cond): Use canonical names.
1617         (gt_ggc_mr_nesting_loop): Use canonical names.
1618         (gt_ggc_mr_nesting_block): Use canonical names.
1619         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
1620         (mark_stmt_status): Delete.
1621         (init_stmt): Delete.
1622         (clear_last_expr): Clear both last_expr_type and last_expr_value.
1623         Use it everywhere that last_expr_type was cleared.
1624         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
1625         (zap_lists): Delete.
1626         * ggc.h (ggc_add_deletable_root): Prototype.
1627         (mark_stmt_status): Remove prototype.
1628         * ggc-common.c (ggc_add_deletable_root): New.
1629         (ggc_mark_roots): Handle deletable roots.
1630         * function.c (ggc_mark_struct_function): Use canonical name
1631         for mark_stmt_status.
1632         * emit-rtl.c (free_sequence_stack): New.
1633         (start_sequence): Use a freelist for sequences.
1634         (end_sequence): Likewise.
1635         (init_emit_once): Add free_sequence_stack as a deleteable root.
1636         * c-pragma.c Include gt-c-pragma.h.
1637         (struct align_stack): Use gengtype.
1638         (push_alignment): Use GGC for struct align_stack.
1639         (mark_align_stack): Delete.
1640         (gt_ggc_mp_align_stack): New.
1641         (init_pragma): Use canonical name for mark_align_stack.
1642         * c-decl.c: Include gt-c-decl.h.
1643         (struct binding_level): Use gengtype.
1644         (make_binding_level): Use GGC; handle the freelist here.
1645         (pop_binding_level): New.
1646         (pushlevel): Move code into make_binding_level.
1647         (push_label_level): Likewise.
1648         (poplevel): Move code into pop_binding_level.
1649         (pop_label_level): Likewise.
1650         (mark_binding_level): Delete.
1651         (gt_ggc_mp_binding_level): New.
1652         (c_init_decl_processing): Use canonical name for mark_binding_level.
1653         Add free_binding_level as deletable root.
1654         (mark_c_function_context): Use canonical name for mark_binding_level.
1655         * Makefile.in (c-decl.o): Add gt-c-decl.h.
1656         (c-pragma.o): Add gt-c-pragma.h.
1657         (GTFILES): Add c-decl.c and c-pragma.c.
1658         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1659
1660         * tree.c (struct type_hash): Use gengtype.
1661         (init_obstacks): Use canonical name for type_hash_mark.
1662         (type_hash_mark): Delete.
1663         Include gt-tree.h.
1664         * rtl.h (struct mem_attrs): Use gengtype.
1665         * optabs.h (struct optab): Use gengtype.
1666         * optabs.c (expand_binop): Squish signed/unsigned warning.
1667         (mark_optab): Make local, use canonical name, use autogenerated
1668         marker procedure.
1669         (init_optabs): Use canonical name for mark_optab.
1670         (new_optab): Use GGC to allocate optabs.
1671         * ggc.h: Delete mark_optab prototype.
1672         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1673         mem_attrs marker procedure.
1674         * gengtype.c (get_output_file): Include headers in gtype-desc.c
1675         explicitly rather than deducing them from file names.
1676         (write_gc_structure_fields): Handle arrays of structures.
1677         (main): Return non-zero exit code if errors occur during output.
1678         * emit-rtl.c (mem_attrs_mark): Delete.
1679         (init_emit_once): Use canonical name for mem_attrs marker procedure.
1680         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1681         (tree.o): Depend on gt-tree.h.
1682         (GTFILES): Add rtl.h, optabs.h, tree.c.
1683         (gt-tree.h): Add it to s-gtype rule.
1684
1685         * .cvsignore: Ignore gengtype flex/bison generated files.
1686         * Makefile.in (GGC_H): Add gtype-desc.h.
1687         (OBJS): Add gtype-desc.o.
1688         (GEN): Add gengtype.
1689         (STAGESTUFF): Add gengtype.
1690         (varasm.o): Add gt-varasm.h.
1691         (stmt.o): Add gt-stmt.h.
1692         (except.o): Add gt-except.h.
1693         (integrate.o): Add gt-integrate.h.
1694         (GTFILES): New.
1695         Add new rules for new files.
1696         * configure: Regenerate.
1697         * configure.in: Correct defaults.h paths.
1698         * emit-rtl.c (mark_sequence_stack): Delete.
1699         (mark_emit_status): Delete.
1700         (start_sequence): Allocate sequence structures using GGC.
1701         (end_sequence): Allocate sequence structures using GGC.
1702         * except.c: Use gengtype for various structures.  Include
1703         gt-except.h.
1704         * expr.c (mark_expr_status): Delete.
1705         * function.c: Use gengtype for various structures.  Include
1706         gt-function.h.
1707         (mark_function_status): Use standard gt_ggc names for marker functions.
1708         (ggc_mark_struct_function): Likewise.
1709         * function.h: Use gengtype for various structures.
1710         * gengtype-lex.l: New file.
1711         * gengtype-yacc.y: New file.
1712         * gengtype.c: New file.
1713         * gengtype.h: New file.
1714         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
1715         the standard names.  Remove some now-unnecessary prototypes.
1716         * integrate.c: Use gengtype for various structures.  Include
1717         gt-integrate.h.
1718         (mark_hard_reg_initial_vals): Delete.
1719         * integrate.h (mark_hard_reg_initial_vals): Delete.
1720         * stmt.c: Use gengtype for various structures.  Include
1721         gt-stmt.h.
1722         (mark_case_node): Delete.
1723         (mark_goto_fixup): Delete.
1724         (mark_stmt_status): Use standard gt_ggc names for marker functions.
1725         * system.h: Define GTY to empty.   In flex/bison files,
1726         don't poison malloc or realloc, instead just define them to
1727         xmalloc and xrealloc.
1728         * varasm.c: Use gengtype for various structures.  Include
1729         gt-varasm.h.  Use standard gt_ggc names for marker functions.
1730         (mark_pool_constant): Delete.
1731         (mark_varasm_status): Delete.
1732         (decode_rtx_const): #if 0 out non-typesafe hack.
1733
1734         * function.h (free_lang_status): Mark as obsolete.
1735         * function.c (free_lang_status): Mark as obsolete.
1736         * c-decl.c (push_c_function_context): Use GC to allocate and free
1737         struct language_function.
1738         (pop_c_function_context): Likewise.
1739         * c-common.c (mark_c_language_function): Mark struct
1740         language_function.
1741
1742         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1743         Document that the machine_function structures must be allocated
1744         using GC.  Update mark_machine_status documentation.
1745         * function.h: Don't declare free_machine_status.
1746         * function.c (free_machine_status): Don't define.
1747         (free_after_compilation): Don't call free_machine_status.
1748         (ggc_mark_struct_function): Mark f->machine.  Call
1749         mark_machine_status only on non-NULL pointers.
1750         * system.h: Poison free_machine_status.
1751         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1752         struct machine_function.
1753         (xtensa_free_machine_status): Delete.
1754         (override_options): Don't set free_machine_status.
1755         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1756         free_machine_status.
1757         (rs6000_init_machine_status): Use GC on struct machine_function.
1758         (rs6000_free_machine_status): Delete.
1759         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1760         machine_function.
1761         (ia64_mark_machine_status): Likewise.
1762         (ia64_free_machine_status): Delete.
1763         (ia64_override_options): Don't set free_machine_status.
1764         * config/i386/i386.c (override_options): Don't set
1765         free_machine_status.
1766         (ix86_init_machine_status): Use GC on struct machine_function.
1767         (ix86_mark_machine_status): Likewise.
1768         (ix86_free_machine_status): Delete.
1769         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1770         machine_function.
1771         (d30v_mark_machine_status): Likewise.
1772         (d30v_free_machine_status): Delete.
1773         (d30v_init_expanders): Don't set free_machine_status.
1774         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1775         machine_function.
1776         (arm_init_machine_status): Likewise.
1777         (arm_free_machine_status): Delete.
1778         (arm_init_expanders): Don't set free_machine_status.
1779         * config/alpha/alpha.c (override_options): Don't set
1780         free_machine_status.
1781         (alpha_init_machine_status): Use GC on struct machine_function.
1782         (alpha_mark_machine_status): Likewise.
1783         (alpha_free_machine_status): Delete.
1784
1785         * varasm.c (compare_constant): Fix typo.
1786
1787         * varasm.c: Don't include obstack.h.
1788         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1789         (struct rtx_const): Give substructures names, improve formatting.
1790         (struct constant_descriptor): Delete.
1791         (struct constant_descriptor_tree): New, based on constant_descriptor.
1792         (const_hash_table): Is a hash table of trees.
1793         (mark_const_hash_entry): Is used for hashes of trees.  Mark
1794         constant_descriptor_tree structure.
1795         (mark_const_str_htab_1): Mark deferred_string structure.
1796         (compare_constant): Rewrite to compare trees.
1797         (compare_constant_1): Delete.
1798         (record_constant): Delete.
1799         (record_constant_1): Delete.
1800         (output_constant_def): Use struct constant_descriptor_tree.
1801         Don't duplicate trees twice.
1802         (struct constant_descriptor_rtx): New.
1803         (struct pool_constant): Used for rtx constants.
1804         (init_varasm_status): Update for change to struct varasm_status.
1805         (mark_varasm_status): Likewise.
1806         (free_varasm_status): Delete.
1807         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1808         (record_constant_rtx): Likewise.
1809         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1810         (force_const_mem): Likewise.
1811         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1812         * function.c (free_after_compilation): Don't use free_varasm_status.
1813         * function.h: Don't prototype free_varasm_status.
1814
1815         * ggc-common.c (ggc_realloc): Handle X being NULL.
1816
1817         * ggc-common.c (ggc_realloc): New function.
1818         * ggc.h: Prototype it.
1819         * emit-rtl.c (free_emit_status): Delete.
1820         (init_emit): Allocate emit subarrays using GC.
1821         (gen_reg_rtx): Reallocate subarrays using GC.
1822         (init_emit): Use GC to allocate 'struct emit_status' and its
1823         subarrays.
1824         (mark_emit_status): Mark structure and its subarrays.
1825         * stmt.c (free_stmt_status): Delete.
1826         * expr.c (free_expr_status): Delete.
1827         * function.h: Remove prototypes for deleted functions.
1828         * function.c (free_after_compilation): Don't use deleted functions.
1829         Don't call free() on x_parm_reg_stack_loc.
1830         (free_after_parsing): Don't use free_stmt_status.
1831         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1832         (mark_function_status): Mark x_parm_reg_stack_loc.
1833
1834         * varasm.c (init_varasm_status): Use GC to allocate
1835         'struct varasm_status' and its fields x_const_rtx_hash_table
1836         and x_const_rtx_sym_hash_table.
1837         (mark_varasm_status): Mark them.
1838         (free_varasm_status): Use GC to free them.
1839         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1840         (mark_expr_status): Mark the structure itself.
1841         (free_expr_status): Use GC to free the structure.
1842         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1843         (mark_stmt_status): Mark the 'struct stmt_status' itself.
1844         (init_stmt_for_function): Allocate the structure for GC.
1845
1846         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1847         (equate_type_number_to_die): Likewise.
1848         * tree.h (TYPE_SYMTAB_DIE): New macro.
1849         (struct die_struct): Predeclare.
1850         (struct tree_type): Add field symtab.die.   Add a tag
1851         to the union type of field symtab.
1852
1853         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1854         'struct rtvec_def *', not 'struct rtvec_def'.
1855
1856         * function.h (original_arg_vector): Make a real rtvec.
1857         * function.c (ggc_mark_struct_function): Adjust.
1858         * integrate.c (expand_inline_function): Adjust.
1859
1860 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1861
1862         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1863         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1864         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1865         (TARGET_VERSION_CPU): Define according to the
1866         default target.
1867         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1868         TARGET_VERSION_CPU.
1869         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1870         if TARGET_SHMEDIA64.
1871         (LINK_DEFAULT_CPU_EMUL): Define according to the
1872         default target.
1873         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1874         (SUBTARGET_LINK_SPEC): Define.
1875         (LINK_SPEC): Use SH_LINK_SPEC.
1876         (ASM_SPEC): Remove.
1877         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1878         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1879         and TARGET_SHMEDIA64 which abort, for now.
1880         * config/sh/t-netbsd-sh5: New file.
1881         * config/sh/t-netbsd-sh5-32: New file.
1882         * config/sh/t-netbsd-sh5-64: New file.
1883
1884 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1885             Richard Henderson  <rth@redhat.com>
1886
1887         * config/alpha/alpha.c (reg_or_const_int_operand): New.
1888         (some_operand, input_operand): Accept CONST_VECTOR.
1889         (alpha_extra_constraint): Add 'W'.
1890         (alpha_expand_zap_mask): New.
1891         (alpha_expand_builtin_vector_binop): New.
1892         (enum alpha_builtin): New.
1893         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1894         (alpha_init_builtins, alpha_expand_builtin): New.
1895         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1896         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1897         (PREDICATE_CODES): Update.
1898         * config/alpha/alpha-protos.h: Update.
1899         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1900         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1901         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1902         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1903         (movv2si, movv2si_fix, movv2si_nofix): New.
1904         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1905         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1906         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1907         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1908         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1909         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1910         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1911         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1912         builtin_unpkbw, unpkbw): New.
1913         * doc/extend.texi (Alpha Built-in Functions): New.
1914
1915 2002-06-03  Richard Henderson  <rth@redhat.com>
1916
1917         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1918         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1919
1920 2002-06-03  Richard Henderson  <rth@redhat.com>
1921
1922         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1923
1924         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1925         (const0_operand): New.
1926         (reg_or_fp0_operand, fp0_operand): Remove.
1927         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1928         * config/alpha/alpha-protos.h: Update.
1929         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1930         and fp0_operand with reg_or_0_operand and const0_operand.
1931
1932 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1933
1934         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1935
1936 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1937
1938         * gcse.c (cprop_jump): Use single_set to get the pattern
1939         from the setcc argument.
1940
1941 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1942
1943         * diagnostic.h (diagnostic_count): Move from output_buffer to
1944         diagnostic_context.
1945         (diagnostic_kind_count): Adjust definition.
1946
1947 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1948
1949         * except.c (except.c): Do not rebuild CFG.
1950         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1951         optimization.
1952
1953 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1954
1955         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1956         * toplev.c: Include cfglahout.h
1957         * Makefile.in (toplev.c): Add dependnecy.
1958
1959 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1960
1961         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1962         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1963         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1964
1965 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1966
1967         * config/ns32k/netbsd.h: Update copyright years.
1968         (TARGET_OS_CPP_BUILTINS): Define.
1969         (CPP_PREDEFINES): Remove.
1970         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1971         (TARGET_CPU_CPP_BUILTINS): Define.
1972
1973 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1974
1975         * emit-rtl.c: Fix formatting.
1976         * errors.h: Likewise.
1977         * except.c: Likewise.
1978         * explow.c: Likewise.
1979         * expmed.c: Likewise.
1980         * expr.c: Likewise.
1981         * expr.h: Likewise.
1982
1983 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1984
1985         * config/h8300/elf.h: Fix formatting.
1986         * config/h8300/rtems.h: Likewise.
1987
1988 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1989
1990         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1991
1992 2002-06-02  Tom Tromey  <tromey@redhat.com>
1993
1994         * fixinc/fixincl.x: Rebuilt.
1995         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1996
1997 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1998
1999 config/i370:
2000         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
2001         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
2002         * mvs.h: Similarly.
2003         * oe.h: Similarly.
2004
2005 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
2006
2007         * final.c (final):  Allow notes to not have computed addresses;
2008         kill no longer needed STACK_REGS ifdef.
2009
2010 2002-06-02  Richard Henderson  <rth@redhat.com>
2011
2012         * gcse.c (bypass_conditional_jumps): Fix typo last change.
2013
2014 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2015
2016         * loop.c (emit_prefetch_instructions): Properly place the address
2017         computation.
2018
2019 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
2020
2021         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
2022         (set_block_for_insn): Turn into macro.
2023         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
2024         * cfglayout.c (insn_scopes): Kill.
2025         (scope_to_insns_initialize): Do not use insn_scopes.
2026         (scope_to_insns_finalize): Likewise.
2027         (duplicate_insn_chain): Likewise.
2028         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
2029         * cfgrtl.c (basic_block_for_insn): Kill.
2030         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
2031         (create_basic_block_structure): Use reorder_insns.
2032         (compute_bb_for_insn): Do not use basic_block_for_insn.
2033         (merge_blocks_nomove): Likewise.
2034         (update_bb_for_insn): Likewise.
2035         (verify_flow_info): Likewise.
2036         (set_block_for_insn): Kill.
2037         * combine.c (try_combine): Update gen_rtx_INSN call.
2038         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
2039         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
2040         scopes and BBs.
2041         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
2042         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
2043         Clear BB.
2044         (emit_insns_after): Simplify.
2045         (emit_copy_of_insn_after): Copy scope.
2046         * final.c (final_start_function): Lower scopes.
2047         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
2048         * integrate.c (copy_insn_list): Cope scopes.
2049         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
2050         * loop.c (loop_optimize): Do not care block notes.
2051         * print-rtl.c (print_rtx): Print BB.
2052         * recog.c (apply_change_group): Simplify.
2053         * rtl.c (copy_rtx): Handle 'B'.
2054         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
2055         * rtl.h (Field accessors): Update indexes.
2056         * sched-ebb.c (schedule_ebbs): Do not lower notes.
2057         * sched-rgn.c (schedule_insns): Likewise.
2058         * toplev.c (rest_of_compilation): Lower notes.
2059         * unroll.c (unroll_loop): Do not care scoping notes.
2060         (copy_loop_body): Copy scopes.
2061
2062 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2063
2064 config/h8300:
2065         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
2066         SUBTARGET_SPEC.
2067         * rtems.h: Similarly.
2068         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
2069         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
2070         (TARGET_CPU_CPP_BUILTINS): Use.
2071
2072 2002-06-02  Richard Henderson  <rth@redhat.com>
2073
2074         * alias.c: Include target.h.
2075         (mark_constant_function): Use targetm.binds_local_p instead
2076         of checking TREE_PUBLIC ourselves.
2077         * Makefile.in (alias.o): Add TARGET_H.
2078
2079 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2080
2081         * c-lex.c: Update copyright and file description.
2082
2083 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2084
2085         * config/fr30/fr30.h: Update to new CPP macros.
2086
2087 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2088
2089         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
2090
2091 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2092             Zack Weinberg <zack@codesourcery.com>
2093
2094         * c-common.c (c_common_init): Override cpplib's default
2095         warn_long_long setting.
2096         * c-lex.c (lex_number): Replace with interpret_integer,
2097         interpret_float, narrowest_unsigned_type and
2098         narrowest_signed_type, taking advantage of the new
2099         cpplib functionality.
2100         * cpperror.c (_cpp_begin_message): If a warning is turned
2101         into an error, avoid printing "warning:".
2102         * cppexp.c (cpp_num_sign_extend): New.
2103         * cppinit.c: Update comment.
2104         * cpplib.h (cpp_num_sign_extend): New.
2105         * tree.h: Update comment.
2106
2107 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2108
2109         * diagnostic.h (struct diagnostic_context):  Add new member
2110         internal_error.
2111         (internal_error_function): Remove declaration.
2112         * diagnostic.c (internal_error_function): Remove definition..
2113         (internal_error): Adjust use.
2114
2115 2002-06-02  Richard Henderson  <rth@redhat.com>
2116
2117         * rtl.h (CC0_P): New.
2118         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
2119         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
2120         (bypass_block): Save old dest block for dump text.
2121         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
2122         Allow only true SET insns, not single_set.
2123
2124 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2125
2126         * diagnostic.c (diagnostic_finish): Rename to output_flush.
2127         (clear_disgnostic_info): Rename to output_clear_data.  Use false
2128         instead of 0 for boolean value.
2129         Adjust function call throughout.
2130
2131 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2132
2133         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
2134         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
2135
2136 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2137
2138         * d30v.h (CPP_PREDEFINES): Replace with
2139         (TARGET_CPU_CPP_BUILTINS): New.
2140
2141 2002-06-02  Roger Sayle  <roger@eyesopen.com>
2142
2143         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
2144
2145 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
2146
2147         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
2148
2149 2002-06-02  Richard Henderson  <rth@redhat.com>
2150
2151         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
2152
2153 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2154
2155         Support for C++ constructors/destructors.
2156         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
2157         instead of looping if main() returns.
2158         (asm_file_start): Output global symbols that cause .data and .bss
2159         initialization code to be linked in, unconditionally for now.
2160         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
2161         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
2162         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2163         (LIBSTDCXX): New.
2164         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
2165         (__tablejump__): New.
2166         (__do_copy_data, __do_clear_bss): New.
2167         (__do_global_ctors, __do_global_dtors): New.
2168         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
2169         _ctors, _dtors.
2170
2171 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2172
2173         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
2174         (CPP_SPEC, CPP_PREDEFINES): Kill.
2175         * c4x/rtems.h (CPP_PREDEFINES): Kill.
2176         (TARGET_OS_CPP_BUILTINS): New.
2177
2178 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
2179
2180         * Makefile.in (tracer.o): New.
2181         * params.def (TRACER_*): New options.
2182         * rtl.h (tracer): Declare.
2183         * timevar.def (TV_TRACER): New.
2184         * toplev.c (dump_file_index): Add DFI_tracer.
2185         (dump_file_info): Add tracer.
2186         (flag_tracer): New.
2187         (lang_indepdenent_options): Add tracer.
2188         (rest_of_compilation): Call tracer.
2189         * tracer.c: New file.
2190         * invoke.texi (-ftracer): Document.
2191         (--param tracer-*): Document.
2192
2193 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
2194
2195         * tree-inline.c (expand_call_inline): Make the statement
2196         expression we generate have a COMPOUND_STMT.
2197
2198 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2199
2200         * gcse.c (cprop_cc0_jump): Function deleted.
2201         (cprop_jump): Take an additional argument which is the possibly
2202         NULL cc setting insn immediately before the conditional jump.
2203         When a MODE_CC set is present, substitute it into the JUMP_INSN
2204         before attempting the constant propagation.
2205         (cprop_insn):  Recognize cc setters followed by conditional jumps
2206         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
2207         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
2208         (find_bypass_set): New function based upon find_avail_set used by
2209         cprop, but finds constant expressions available at the end of
2210         basic blocks.
2211         (bypass_block): New function.  Given a basic block that begins
2212         with a conditional jump and multiple incoming edges, perform
2213         the jump bypass optimization.
2214         (bypass_conditional_jumps): New function.  Call bypass_block with
2215         each suitable basic block in the CFG using a simple single pass.
2216
2217 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2218
2219         * tree.c (real_minus_onep): New function to test for -1.0.
2220         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
2221
2222 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2223
2224         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
2225         and "!p && !q" into "(p|q) == 0" under suitable conditions.
2226
2227 2002-06-01  Andreas Jaeger  <aj@suse.de>
2228
2229         * cppexp.c (cpp_classify_number): Cast precission to int for
2230         correct printf format.
2231
2232 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2233
2234         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
2235         expected, but don't really exist: atmega83, atmega85, attiny10.
2236         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
2237         emulations for all devices.
2238         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
2239         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
2240
2241 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
2242
2243         * config/h8300/h8300-protos.h: Add a prototype for
2244         h8300_shift_needs_scratch_p.
2245         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
2246         * config/h8300/h8300.h (OK_FOR_R): New.
2247         (OK_FOR_S): Likewise.
2248         (OK_FOR_T): Likewise.
2249         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
2250         * config/h8300/h8300.md (anonymous shift patterns): Use
2251         constraints R, S, and T.
2252
2253 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2254
2255         * basic-block.h (struct basic_block_def): New field loop_father.
2256         (BB_VISITED): New flag.
2257         (struct loop): New field pred, removed field shared.
2258         (struct loops): New field parray.
2259         (LOOP_EXITS_DOMS): Removed.
2260         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
2261         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
2262         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
2263         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
2264         verify_loop_structure): Declare.
2265         * cfg.c (entry_exit_blocks): Initialize loop_father field.
2266         * cfganal.c (dfs_enumerate_from): New function.
2267         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
2268         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2269         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
2270         flow_loop_dump, flow_loops_dump, flow_loops_free,
2271         flow_loop_tree_node_add, flow_loop_level_compute,
2272         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
2273         flow_loop_outside_edge_p): Modified for new infrastructure.
2274         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
2275         redirect_edge_with_latch_update, flow_loop_free): New static functions.
2276         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
2277         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
2278         find_common_loop, verify_loop_structure, loop_latch_edge,
2279         loop_preheader_edge): New functions.
2280         (flow_loops_cfg_dump): Do not show dominators, as this information
2281         does not remain up to date long.
2282         (flow_loops_find): Store results in new format.
2283         * predict.c (propagate_freq, estimate_probability,
2284         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
2285         infrastructure.
2286
2287 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
2288
2289         * except.c (nothrow_function_p): Walk epilogue delay list
2290         checking the insn, not the chain for potential throws.
2291
2292 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
2293
2294         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
2295         (install): Refer to install-cpp directly.
2296         (uninstall-cpp): Folded into uninstall rule.
2297         * configure.in: Delete all code relating to --disable-cpp.
2298         * configure: Regenerate.
2299         * config/t-install-cpp: Delete.
2300
2301 2002-05-31  Richard Henderson  <rth@redhat.com>
2302
2303         * configure.in (HAVE_AS_TLS): Add alpha tests.
2304         * configure: Rebuild.
2305         * config/alpha/alpha.c (TARGET_AS_TLS): New.
2306         (alpha_tls_size, alpha_tls_size_string): New.
2307         (overide_options): Set it.  Always install machine_status hooks.
2308         (input_operand): Accept got tls predicates.
2309         (local_symbol_p): Merge into ...
2310         (local_symbolic_operand): ... here.  Reject tls symbols.
2311         (global_symbolic_operand): Likewise.
2312         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
2313         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
2314         (tp16_symbolic_operand, tp32_symbolic_operand): New.
2315         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
2316         (alpha_encode_section_info): Handle TLS symbols.
2317         (alpha_strip_name_encoding): Likewise.
2318         (alpha_legitimate_address_p): Likewise.
2319         (alpha_legitimize_address): Likewise.
2320         (alpha_expand_mov): Early exit to avoid nop moves.
2321         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
2322         (alpha_init_machine_status, alpha_mark_machine_status,
2323         alpha_free_machine_status): Always define.
2324         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
2325         (print_operand, print_operand_address): Add TLS relocs.
2326         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
2327         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
2328         (TARGET_SWITCHES): Add -mtls-kernel.
2329         (alpha_tls_size, alpha_tls_size_string): New.
2330         (TARGET_OPTIONS): Add -mtls-size=.
2331         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
2332         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
2333         (ASM_OUTPUT_LABELREF): Skip %.
2334         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
2335         (PREDICATE_CODES): Update.
2336         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
2337         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
2338         UNSPEC_TP, UNSPECV_SET_TP): New.
2339         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
2340         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
2341         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
2342         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
2343         (call_value_osf_2_er): Accept anything as op4.
2344         * config/alpha/alpha-protos.h: Update.
2345         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
2346
2347 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
2348
2349         * cppinit.c (append_include_chain): Always pay attention to
2350         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
2351         marker on argument.
2352
2353 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * target.h: Fix formatting.
2356         * timevar.h: Likewise.
2357         * tlink.c: Likewise.
2358         * toplev.c: Likewise.
2359         * toplev.h: Likewise.
2360         * tree.c: Likewise.
2361         * tree-dump.h: Likewise.
2362         * tree.h: Likewise.
2363         * tree-inline.h: Likewise.
2364         * unroll.c: Likewise.
2365         * unwind-dw2.c: Likewise.
2366         * unwind-dw2-fde.c: Likewise.
2367         * unwind-dw2-fde-glibc.c: Likewise.
2368         * unwind-dw2-fde.h: Likewise.
2369         * unwind.h: Likewise.
2370         * unwind-sjlj.c: Likewise.
2371         * varasm.c: Likewise.
2372         * varray.h: Likewise.
2373         * vmsdbg.h: Likewise.
2374         * vmsdbgout.c: Likewise.
2375         * xcoffout.h: Likewise.
2376
2377 2002-05-31  Igor Shevlyakov <igor@microunity.com>
2378
2379         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
2380         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
2381
2382 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
2383
2384         * gcc.c (cpp_unique_options): Remove "-d" options.
2385         (cpp_debug_options): New spec string.
2386         (default_compilers): Use it.
2387         * objc/lang-specs.h: Likewise.
2388
2389 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
2390
2391         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
2392         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
2393         * gcc/mklibgcc.in: Likewise.
2394         * gcc/config/arc/t-arc: Likewise.
2395         * gcc/configure.in: Likewise.
2396         * gcc/configure: Regenerate.
2397
2398 2002-05-31  Stan Shebs  <shebs@apple.com>
2399             Turly O'Connor  <turly@apple.com>
2400
2401         * c-decl.c (struct binding_level): Change int field n_incomplete
2402         to tree list incomplete_list.
2403         (clear_binding_level): Init field with NULL.
2404         (pushdecl): Add incomplete type to list.
2405         (mark_binding_level): Mark the incomplete list.
2406         (finish_struct): Scan the incomplete list for types instead
2407         of all decls in the current binding level.
2408
2409 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2410
2411         * pa.c (output_millicode_call): Add missing '%' characters.
2412         (output_call): Likewise.
2413
2414 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
2415
2416         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
2417         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2418
2419 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
2420
2421         * varasm.c (mark_constant_pool): Walk epilogue delay list
2422         checking the insn, not the chain for potential constants.
2423
2424 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
2425
2426         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
2427
2428 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
2429
2430         * i386.c (classify_argument): Properly handle base types.
2431
2432         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
2433         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
2434         registers.
2435
2436 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
2437
2438         * gcse.c (gcse_emit_move_after): New.
2439         (pre_delete, hoist_store): Use it.
2440
2441         * reload1.c (emit_input_reload_insns): Use constrain_operands
2442         instead of constraint_accepts_reg_p to verify optimization.
2443         (constraint_accepts_reg_p): Kill
2444
2445         * reload1.c (reload_cse_delete_noop_set): Kill.
2446         (reload_cse_simplify): use delte_insn_and_edges.
2447
2448 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2449
2450         * cfgloop.c (flow_loops_find): Initialize first and last fields
2451         correctly.
2452
2453 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
2454
2455         * c-common.c (builtin_define_std): Correct logic.
2456
2457 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2458
2459         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
2460         (output_call): Likewise.
2461
2462 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2463
2464         * pa.c: Move output.h include after tree.h include.
2465         (pa_asm_output_mi_thunk): Constify identifier lab.
2466
2467 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2468
2469         * config/ns32k/ns32k.h: Define named constants for the
2470         bits in target_flags and use them.
2471         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
2472
2473 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2474
2475         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
2476         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
2477         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
2478         default scheduling model.
2479         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
2480         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
2481         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
2482         * doc/install.texi (hppa*-*-*): Document default scheduling.
2483
2484 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2485
2486         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
2487
2488 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2489
2490         * config.gcc (ns32k-*-netbsd*): Set tm_file to
2491         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
2492         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
2493         netbsd.h, or netbsd-aout.h.
2494
2495 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2496
2497         * longlong.h (count_trailing_zeros): Add missing \, and clean up
2498         whitespace in __ns32000__ case.
2499
2500 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
2501
2502         * expr.c (expand_expr): Output partially zeroed out vectors with
2503         output_constant_def.
2504
2505 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2506
2507         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
2508         (sh-*-netbsdelf*)
2509         (shl*-*-netbsdelf*): New targets.
2510         * config/sh/netbsd-elf.h: New file.
2511         * config/sh/t-netbsd: New file.
2512
2513 2002-05-30  Richard Henderson  <rth@redhat.com>
2514             Eric Botcazou  <ebotcazou@multimania.com>
2515
2516         PR optimization/6822
2517         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
2518         to unsigned int for op1 comparisons.  Use gen_int_mode.
2519
2520 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
2521
2522         * expmed.c (const_mult_add_overflow_p): New.
2523         * expr.h: Declare it.
2524         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
2525         Don't eliminate the biv if the giv has a constant multiplier and
2526         the rhs argument of the comparison does satisfy the predicate.
2527         Use expand_mult_add to compute the replacement constant.
2528
2529 2002-05-30  Osku Salerma  <osku@iki.fi>
2530
2531         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
2532         (c_common_get_alias_set): Handle it.
2533         * doc/extend.texi: Document it.
2534
2535 2002-05-30  Richard Henderson  <rth@redhat.com>
2536
2537         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2538         * toplev.c (process_options): Don't check it.
2539         * doc/tm.texi: Don't document it.
2540         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
2541         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2542         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
2543         frame pointer optimization if current_function_profile.
2544
2545 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2546
2547         * langhooks.c: Fix formatting.
2548         * langhooks.h: Likewise.
2549         * lcm.c: Likewise.
2550         * libgcc2.c: Likewise.
2551         * lists.c: Likewise.
2552         * local-alloc.c: Likewise.
2553         * loop.c: Likewise.
2554         * loop.h: Likewise.
2555
2556 2002-05-30  Marc Espie <espie@openbsd.org>
2557
2558         * config.gcc (sparc64-*-openbsd*): New.
2559         * config/sparc/openbsd1-64.h: New.
2560         * config/sparc/openbsd64.h: New.
2561
2562 2002-05-30  Jeff Law <law@redhat.com>
2563
2564         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
2565         a dead insn with a REG_RETVAL note when the entire libcall is not
2566         dead and remove the associated REG_LIBCALL note at the same time.
2567
2568 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
2569
2570         * lcm.c (output.h): #include.
2571         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
2572         as an ordinary block.
2573         (optimize_mode_switching): Don't pretend that the exit block is
2574         an ordinary block, or handle sucessors of entry block specially.
2575         Instead, split edges from entry block and to exit block, and
2576         put a computing definition on the thus gained post-entry-block,
2577         and a need on the pre-exit-block.
2578
2579 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2580
2581         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
2582         * rtl.texi: Document 'B'
2583
2584 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2585
2586         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
2587         at run-time.
2588         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
2589
2590 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
2591
2592         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
2593         const0_rtx instead of NULL_RTX when in error.
2594         (altivec_expand_abs_builtin): Same.
2595         (rs6000_expand_binop_builtin): Same.
2596         (altivec_expand_predicate_builtin): Same.
2597         (altivec_expand_stv_builtin): Same.
2598         (rs6000_expand_ternop_builtin): Same.
2599         (altivec_expand_builtin): Same.
2600
2601 2002-05-29  David S. Miller  <davem@redhat.com>
2602
2603         * rtl.h (clear_emit_caches): Delete.
2604         * integrate.c (output_inline_function): Don't call it.
2605         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
2606         (clear_emit_caches): Delete definition.
2607         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
2608
2609 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
2610
2611         * config/mmix/mmix.c: Include real.h.
2612         (mmix_constant_address_p): Remove redundant test before switch.
2613
2614 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2615
2616         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
2617         only if not already defined.
2618
2619 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2620
2621         * config/h8300/h8300-protos.h: Remove prototypes for
2622         ok_for_bclr and small_power_of_two.
2623         * config/h8300/h8300.c (small_power_of_two): Remove.
2624         (ok_for_blcr): Likewise.
2625         (fix_bit_operand): Make WHAT deal with an integer instead of a
2626         constraint character.
2627         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
2628         (CONST_OK_FOR_P): Likewise.
2629         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
2630         CONST_OK_FOR_P any more.
2631         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
2632         of fix_bit_operand.
2633         (iorqi3): Likewise.
2634         (xorqi3): Likewise.
2635
2636 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2637
2638         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2639         (CPP_PREDEFINES): Make sure this is undefined.
2640         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
2641         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
2642         or -U__MIPSEB__ before defining one or the other.  Instead,
2643         use %(subtarget_endian_default) if neither -EB nor -EL are
2644         specified.
2645         (SUBTARGET_EXTRA_SPECS): Define.
2646         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
2647         %(netbsd_cpp_spec).
2648
2649 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2650
2651         * doc/md.texi (Patterns): Note pattern condition pitfall
2652         for unnamed insn.
2653
2654 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2655
2656         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2657         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
2658         ternary operations from here...
2659         (rs6000_expand_builtin): ...to here.
2660         New argument expandedp.
2661         Change all instances of altivec_expand_binop_builtin to
2662         rs6000_expand_binop_builtin.
2663         (altivec_expand_unop_builtin): Rename to
2664         rs6000_expand_unop_builtin.
2665         (altivec_expand_binop_builtin): Rename to
2666         rs6000_expand_binop_builtin.
2667         (altivec_expand_ternop_builtin): Rename to
2668         rs6000_expand_ternop_builtin.
2669
2670 2002-05-29  Richard Henderson  <rth@redhat.com>
2671
2672         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2673         (TARGET_BI_ARCH): Likewise.
2674         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2675         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2676         (TARGET_64BIT_DEFAULT): Default to 0.
2677         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2678
2679 2002-05-29  Richard Henderson  <rth@redhat.com>
2680
2681         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2682         (get_pc_thunk_name): New.
2683         (output_set_got): Use it.
2684         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2685         into linkonce sections.
2686
2687 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2688
2689         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2690         (CPP_PREDEFINES): Make sure this is undefined.
2691         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2692         (CPP_SUBTARGET_SPEC): Don't provide different versions for
2693         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
2694         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2695         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
2696         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2697         (CPP_PREDEFINES): Make sure this is undefined.
2698         (SUBTARGET_EXTRA_SPECS): Define.
2699         (CPP_SPEC): Use %(netbsd_cpp_spec).
2700
2701 2002-05-29  Jeff Law <law@redhat.com>
2702
2703         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2704
2705         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2706         contains a REG_RETVAL note.
2707
2708         * haifa-sched (sched_analyze): Remove another useless clearing
2709         of SCHED_GROUP_P I missed yesterday.
2710
2711         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2712         * pa.c (pa_asm_output_mi_thunk): New function.
2713         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2714
2715 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2716             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2717
2718         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2719         (avr_asm_only_p): Make non-static.
2720         (enum avr_arch): Remove.
2721         (avr_arch_types): New.
2722         (avr_mcu_types): Update.
2723         (avr_override_options): Use avr_arch_types table instead of switch.
2724         * avr.h (CPP_PREDEFINES): Die.
2725         (avr_base_arch_macro, avr_extra_arch_macro): New.
2726         (TARGET_CPU_CPP_BUILTINS): New.
2727         (CPP_SPEC, EXTRA_SPECS): Simplify.
2728         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2729         CPP_AVR5_SPEC): Die.
2730
2731 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2732
2733         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2734         NETBSD_OS_CPP_BUILTINS_AOUT.
2735         (SUBTARGET_EXTRA_SPECS): Define.
2736         (CPP_SPEC): Use %(netbsd_cpp_spec).
2737
2738 2002-05-29  Richard Henderson  <rth@redhat.com>
2739
2740         * config/i386/i386.c (ix86_output_function_epilogue): New.
2741         (TARGET_ASM_FUNCTION_EPILOGUE): New.
2742         (pic_label_name): Remove.
2743         (pic_labels_used): New.
2744         (ix86_asm_file_end): Emit one pc load stub for each register used.
2745         (output_set_got): Generate deep pc load to any register.
2746         (ix86_select_alt_pic_regnum): New.
2747         (ix86_save_reg): Don't save pic register if we can find a valid
2748         call-clobbered replacement.
2749         (ix86_expand_prologue): If we found a valid replacement, renumber
2750         pic_offset_table_rtx.
2751         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2752         pic_offset_table_rtx after reload.
2753         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2754         * config/i386/i386.md (set_got): Make insn, not expander.
2755         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2756
2757 2002-05-29  Richard Henderson  <rth@redhat.com>
2758
2759         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2760         alignment for alloca.
2761
2762 2002-05-29  Richard Henderson  <rth@redhat.com>
2763
2764         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2765         (print_operand_address): Only add rip for symbolic addresses
2766         for which we do not have another relocation type.
2767
2768 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2769
2770         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2771         (EXTRA_SPECS): Add netbsd_cpp_spec.
2772         (CPP_SPEC): Use %(netbsd_cpp_spec).
2773         (CPP_PREDEFINES): Remove.
2774         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2775         (EXTRA_SPECS): Define.
2776         (CPP_SPEC): Use %(netbsd_cpp_spec).
2777         (CPP_PREDEFINES): Remove.
2778
2779 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2780
2781         PR preprocessor/6844
2782         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2783         NUL.
2784
2785 2002-05-29  Eric Christopher  <echristo@redhat.com>
2786
2787         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2788         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2789
2790 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2791
2792         * config/fr30/fr30.md: Remove previous restriction on splits.
2793         Enforce conformance through gen_lowpart and cont_int_operand.
2794         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2795         as the assembler does not support ".bss".
2796
2797 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2798
2799         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2800         (CPP_PREDEFINES): Remove.
2801         (SUBTARGET_EXTRA_SPECS): Define.
2802         (CPP_SPEC): Use %(netbsd_cpp_spec).
2803         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2804         (CPP_PREDEFINES): Remove.
2805         (SUBTARGET_EXTRA_SPECS): Define.
2806         (CPP_SPEC): Use %(netbsd_cpp_spec).
2807         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2808         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2809         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2810         Add netbsd_cpp_spec.
2811         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2812
2813 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2814             Zack Weinberg <zack@codesourcery.com>
2815
2816         * cppexp.c (cpp_num): Move to cpplib.h.
2817         (CPP_ERROR): Remove.
2818         (interpret_float_suffix, interpret_int_suffix): New.
2819         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2820         (cpp_classify_number, cpp_interpret_integer): New.
2821         (interpret_number): Remove.
2822         (eval_token): Update to use new routines.
2823         * cpphash.h (cpp_num_part): Move to cpplib.h.
2824         * cppinit.c (cpp_post_options): Set warn_long_long.
2825         * cpplib.h (struct cpp_options): Add warn_long_long.
2826         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2827         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2828         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2829         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2830         cpp_interpret_integer): New.
2831
2832 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2833
2834         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2835
2836 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2837
2838         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2839         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2840         (CPP_SUBTARGET_SPEC): Define.
2841         (SUBTARGET_EXTRA_SPECS): Define.
2842         (CPP_SPEC): Remove.
2843
2844 2002-05-29  Chris Lattner  <sabre@nondot.org>
2845
2846         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2847         prevent confusion if/when the register is defined.
2848
2849 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2850
2851         PR target/6838
2852         * config/cris/cris.md: Fix typos and thinkos in comments.
2853         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2854         second alternative.
2855         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2856         ("*mov_sideqi_mem"): Similar, but for operand 3.
2857         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2858         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2859         Remove spurious mode specifier on operand 2.
2860
2861 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2862
2863         * config/h8300/h8300-protos.h: Remove the prototype for
2864         o_operand.
2865         Add prototypes for single_one_operand and single_zero_operand.
2866         * config/h8300/h8300.c (o_operand): Remove.
2867         (single_one_operand): New.
2868         (single_zero_operand): Likewise.
2869         (print_operand): For 'V' operand, and the operand with 0xff.
2870         For 'V' and 'W' operands, do not and the bit position with 7.
2871         * config/h8300/h8300.md (various anonymous patterns): Replace
2872         use of exact_log2 with single_one_operand/single_zero_operand.
2873
2874 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2875
2876         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2877
2878 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2879
2880         * config/s390/s390.c (legitimate_pic_operand_p): Do not
2881         accept symbolic LARL operands.
2882         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2883         epilogue insns.
2884
2885 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2886
2887         * config/s390/s390.md (cmpstr_64/31): Mark whole
2888         input registers as used.
2889
2890 2002-05-28  Richard Henderson  <rth@redhat.com>
2891
2892         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2893         not current_function_uses_pic_offset_table and
2894         current_function_uses_const_pool; examine current_function_profile.
2895         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
2896         input to blockage if needed.
2897         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2898         (legitimize_pic_address): Likewise.  Set regs_ever_live for
2899         pic_offset_table_rtx when invoked during reload.
2900         * config/i386/i386.h (FINALIZE_PIC): Remove.
2901         * config/i386/i386.md (tablejump): Reformat.  Do not set
2902         current_function_uses_pic_offset_table.
2903         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2904         (blockage): Accept anything as operand 0.
2905
2906 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2907
2908         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2909         common CPP built-ins for all NetBSD a.out targets.
2910         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2911         common CPP built-ins for all NetBSD ELF targets.
2912         * config/netbsd.h: Add missing notice.
2913         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2914         for all NetBSD targets.
2915         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2916         for all NetBSD targets using an LP64 code model.
2917         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2918         NetBSD targets.
2919
2920 2002-05-28  Richard Henderson  <rth@redhat.com>
2921
2922         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2923         update if UPDATE_LIFE_LOCAL.
2924
2925 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2926
2927         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2928
2929 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2930                           Jason R. Thorpe <thorpej@wasabisystems.com>
2931
2932         config/sh reorganization to factor out endianness and coff:
2933
2934         * config/sh/little.h: New file.
2935         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2936         defined, define to 0 to select big-endian.
2937         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2938         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2939         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2940         * config/sh/t-be: New file.
2941         * config/sh/t-le: New file.
2942
2943         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2944         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2945         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2946         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2947         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2948         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2949         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2950         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2951         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2952         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2953         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2954         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2955         (LINK_SPEC): Define to SH_LINK_SPEC.
2956         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2957         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2958         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2959         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2960         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2961         * config/sh/coff.h: New file.
2962         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2963         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2964         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2965         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2966         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2967         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2968         (PTRDIFF_TYPE): Likewise.
2969         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2970         (CPP_PREDEFINES): Don't define.
2971         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2972         (LINK_SPEC): Define to SH_LINK_SPEC.
2973         (LINK_EMUL_PREFIX): Redefine.
2974         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2975         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2976         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2977         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2978         (TARGET_OS_CPP_BUILTINS): Define.
2979         (TARGET_DEFAULT): Redefine.
2980         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2981         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2982         (LINK_SPEC): Don't redefine.
2983         (LINK_DEFAULT_CPU_EMUL): Redefine.
2984         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2985         * sh.c (sh_asm_named_section): Don't declare / define.
2986         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2987         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2988         (sh64-*-elf* tm_file): Likewise.
2989         (sh-*-rtemself* tm_file): Likewise.
2990         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
2991         (sh-*-linux* tmake_file): Add sh/t-le.
2992         (sh-*-rtems* tm_file): Add sh/coff.h
2993         (sh-*-* tm_file): Likewise.
2994
2995 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2996
2997         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2998         CONSTANT_POOL_ADDRESS_P.
2999
3000         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
3001
3002 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
3003             Jeff Law <law@redhat.com>
3004
3005         * optabs.c (expand_binop): Fix nwords sign warnings.
3006         generate pseudo for add_optab.
3007
3008         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
3009         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
3010
3011 2002-05-28      Marc Espie <espie@openbsd.org>
3012
3013         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
3014         inherited from gas.h.
3015         (ASM_QUAD):  Undef.  OpenBSD does not support it.
3016
3017 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
3018
3019         * doc/install.texi (binaries): Change mingw binaries
3020         link to www.mingw.org.
3021
3022 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3023
3024         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
3025
3026 2002-05-28  Richard Henderson  <rth@redhat.com>
3027
3028         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
3029         bottom alignment for leaf functions.
3030
3031 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3032
3033         * config/pa/milli32.S, config/pa/lib1funcs.asm,
3034         config/sparc/sol2-g1.asm: Delete unused files.
3035
3036 2002-05-28  Richard Henderson  <rth@redhat.com>
3037
3038         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
3039
3040         * flow.c (calculate_global_regs_live): Rename call_used to
3041         invalidated_by_call.  Initialize from regs_invalidated_by_call
3042         instead of call_used_regs.
3043
3044         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
3045         DECL_EXTERNAL.
3046
3047 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3048
3049         * tree.h: Don't include real.h.
3050         Forward-declare struct realvaluetype.
3051         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
3052         contain it.
3053         (TREE_REAL_CST_PTR): New accessor.
3054         (TREE_REAL_CST): Update.
3055         * real.h: Include machmode.h.
3056         (realvaluetype): Make it struct realvaluetype, not a typedef.
3057         (build_real): Prototype here.
3058
3059         * tree.c: Include real.h.
3060         (build_real): Allocate the REAL_VALUE_TYPE as a separate
3061         object in GC memory, set TREE_REAL_CST_PTR to point to it.
3062         (build_real_from_int_cst): Use build_real.
3063         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
3064         REAL_CST.
3065
3066         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
3067         fold-const.c, print-tree.c, real.c: Include real.h.
3068         * Makefile.in: Update dependency lists.
3069
3070 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3071
3072         * basic-block.h (last_basic_block): Declare.
3073         (expunge_block_nocompact): Declaration removed.
3074         (compact_blocks): Declare.
3075         * cfg.c (last_basic_block): New variable.
3076         (expunge_block_nocompact): Removed.
3077         (expunge_block): Do not compact basic blocks.
3078         (compact_blocks): New.
3079         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
3080         longer change.
3081         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
3082         last_basic_block.
3083         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
3084         real positions of blocks.
3085         (delete_unreachable_blocks): Simplified -- quadratic behavior now
3086         cannot occur.
3087         (cleanup_cfg): Compact blocks.
3088         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
3089         basic_block_info varray.
3090         (flow_delete_block): Comment update.
3091         (back_edge_of_syntactic_loop_p): Modify position check code.
3092         (verify_flow_info): Update checking.
3093         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
3094         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
3095         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
3096         indices no longer change.
3097         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
3098         last_basic_block.
3099         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
3100         * profile.c (branch_prob): Compact blocks.
3101         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
3102         last_basic_block.
3103
3104 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3105
3106         * config/h8300/h8300.md (two anonymous patterns): New.
3107
3108 2002-05-28  David S. Miller  <davem@redhat.com>
3109
3110         * config/sparc/sparc.md (cpu): Tidy.
3111         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
3112         'trap'.
3113         (in_call_delay): Delete reference to 'return' type.
3114         (eligible_for_return_delay, in_return_delay, define_delay
3115         referencing those): Delete.
3116         (rest of file): Use new type attributes as appropriate.
3117         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
3118         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
3119         * config/sparc/ultra1_2.md (us1_single): New reservation.
3120         (us1_ialuX): Likewise.
3121         * config/sparc/ultra3.md (us3_single): Likewise.
3122         (us3_ialuX): Likewise.
3123         (us3_imul, us3_idiv): Tweak.
3124
3125 2002-05-28  Richard Henderson  <rth@redhat.com>
3126
3127         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
3128         STRING_CST.
3129
3130 2002-05-28  Richard Henderson  <rth@redhat.com>
3131
3132         * config.gcc: Obsolete mn10200.
3133
3134 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3135
3136         * cppexp.c (interpret_number): Optimize for single-digit
3137         and less-than-half-precision cases.
3138         (num_trim, num_positive, num_div_op): Cast constants.
3139
3140 2002-05-27  Bo Thorsen  <bo@suse.de>
3141
3142         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
3143         3.1 branch. The file was made by Jakub Jelinek.
3144         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
3145         support so multilib doesn't break. And don't define this at all
3146         when -Dinhibit_libc is used.
3147         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
3148         * config/i386/t-linux64: Implement full multilib support. Patch
3149         originally done by Andreas Jaeger and Jakub Jelinek.
3150
3151 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3152
3153         * c-common.c: Add support for __attribute__((nothrow)) to specify
3154         that a function cannot throw an exception (using TREE_NOTHROW).
3155         (handle_nothrow_attribute): New function to process this attribute.
3156
3157         * doc/extend.texi: Document the new nothrow function attribute.
3158
3159 2002-05-27  H.J. Lu  (hjl@gnu.org)
3160
3161         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
3162         (num_positive): Likewise.
3163         (num_div_op): Likewise.
3164
3165 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3166
3167         * c-common.c (c_common_init): Always use intmax_t.
3168
3169 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3170
3171         * c-common.c (c_common_init): Use intmax_t for now.
3172
3173 2002-05-24  Andrew Haley  <aph@redhat.com>
3174
3175         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
3176         if T is a boolean type.
3177
3178 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3179
3180         * basic-block.h (last_basic_block): Defined as synonym for
3181         n_basic_blocks.
3182         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
3183         flow_depth_first_order_compute, flow_preorder_transversal_compute,
3184         flow_dfs_compute_reverse_init): Replaced relevant occurences of
3185         n_basic_blocks with last_basic_block.
3186         * cfgbuild.c (make_edges): Likewise.
3187         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
3188         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
3189         * combine.c (combine_instructions): Likewise.
3190         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
3191         iterative_dataflow_bitmap): Likewise.
3192         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
3193         calc_idoms, idoms_to_doms): Likewise.
3194         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
3195         Likewise.
3196         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
3197         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
3198         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
3199         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
3200         delete_null_pointer_checks, compute_code_hoist_vbeinout,
3201         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
3202         compute_store_table, build_store_vectors): Likewise.
3203         * haifa-sched.c (sched_init): Likewise.
3204         * ifcvt.c (if_convert): Likewise.
3205         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3206         pre_edge_lcm, compute_available, compute_nearerout,
3207         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
3208         Likewise.
3209         * predict.c (estimate_probability, process_note_prediction,
3210         note_prediction_to_br_prob): Likewise.
3211         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
3212         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3213         * regrename.c (copyprop_hardreg_forward): Likewise.
3214         * resource.c (init_resource_info): Likewise.
3215         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
3216         init_regions, schedule_insns): Likewise.
3217         * ssa-ccp.c (ssa_const_prop): Likewise.
3218         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3219         * ssa.c (compute_dominance_frontiers,
3220         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
3221
3222         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
3223         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
3224         sizes consistently.
3225
3226 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
3227
3228         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
3229         new.
3230         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
3231         hoist_insn_after, hoist_insn_to_edge): New.
3232
3233 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
3234
3235         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
3236         (PROP_FINAL): Include.
3237         * flow.c (life_analysis, update_life_info,
3238         init_propagate_block_info, mark_set_1, mark_used_rgs):
3239         Support SCAN_DEAD_STORE.
3240
3241 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3242
3243         * c-common.c (c_common_init): Set CPP arithmetic precision.
3244         * cppexp.c (cpp_num_part): Move typedef ...
3245         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
3246         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
3247         (sanity_checks): Update.
3248
3249 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
3250
3251         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
3252         (mkheaders): New rule.
3253         (install-mkheaders): New rule.
3254         * configure.in (all_outputs): Add mkheaders.
3255         * configure: Regenerate.
3256         * mkheaders.in: New file.
3257
3258 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
3259
3260         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
3261
3262 2002-05-26  Andreas Jaeger  <aj@suse.de>
3263
3264         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
3265
3266 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3267
3268         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
3269         right_shift): Remove.
3270         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
3271         HIGH_PART): New.
3272         (struct op): Use cpp_num.
3273         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
3274         num_part_mul, num_unary_op, num_binary_op, num_negate,
3275         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
3276         num_div_op, num_lshift, num_rshift, append_digit): New.
3277         (interpret_number, parse_defined, eval_token, reduce): Update
3278         for two-integer arithmetic.
3279         (binary_handler): New typedef.
3280         (optab): Update.
3281         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
3282         (_cpp_parse_expr, reduce): Update to handle two-integers.
3283         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
3284
3285 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3286
3287         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
3288         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
3289         branch insn into account, do not assume 1.
3290         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
3291         over single word insn.  Handle upper half of I/O space too.
3292         * config/avr/avr.md (*sbrx_branch): Use it.
3293         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
3294         (*sbix_branch, *sbix_branch_bit7): Likewise.
3295         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
3296         Use RTL peepholes to optimize register operand sign tests.
3297
3298 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3299
3300         * config/avr/avr.c (avr_asm_only_p): New variable.
3301         (avr_override_options): Set it here if AVR1.
3302         (asm_file_start): Test it here, report an error if set.
3303
3304 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
3305
3306         * alias.c: Fix formatting.
3307         * attribs.c: Likewise.
3308         * bb-reorder.c: Likewise.
3309         * bitmap.c: Likewise.
3310         * bitmap.h: Likewise.
3311         * builtins.c: Likewise.
3312
3313 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
3314
3315         * reload.c (find_valid_class): Accept new argument DEST,
3316         choose class accordingly.
3317         (push_reload): Update callers.
3318
3319 2002-05-26  Andreas Jaeger  <aj@suse.de>
3320
3321         * combine.c (combine_instructions): Do not indent #if for
3322         traditional C.
3323
3324 2002-05-25  Richard Henderson  <rth@redhat.com>
3325
3326         * c-pragma.c (apply_pragma_weak): Convert value identifier to
3327         string for decl_attributes.
3328         (handle_pragma_weak): Call assemble_alias if we're modifying
3329         an existing decl.
3330
3331 2002-05-25  Richard Henderson  <rth@redhat.com>
3332
3333         PR target/6788
3334         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
3335         using rtl instead of fprintf.
3336         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
3337         * config/sparc/sparc-protos.h: Update.
3338
3339 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3340
3341         * Makefile.in (C_COMMON_H): Fix.
3342         Update other targets.
3343         * c-common.c: Don't include c-lex.h.
3344         (builtin_define_with_value): Make static and prototype.
3345         (builtin_define_std): Move from c-lex.h.
3346         * c-common.h (init_c_lex): Move from c-lex.h.
3347         * c-decl.c: Don't include c-lex.h.
3348         (make_pointer_declarator): Move from c-parse.in.
3349         * c-lex.c: Don't include c-lex.h.
3350         * c-lex.h: Remove.
3351         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
3352         (make_pointer_declarator): Move to c-decl.c.
3353         * c-pragma.c: Don't include c-lex.h.
3354         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
3355         * c-tree.h (make_pointer_declarator): New.
3356 doc:
3357         * passes.texi, tm.texi: Update.
3358 objc:
3359         * Make-lang.in: Update and correct.
3360         * objc-act.c: Don't include c-lex.h or cpplib.h.
3361 treelang:
3362         * treetree.c: Don't include c-lex.h.
3363 config:
3364         * darwin-c.c: Don't include c-lex.h.
3365         * c4x/c4x-c.c: Don't include c-lex.h.
3366         * c4x/t-c4x: Update.
3367         * i370/i370-c.c: Don't include c-lex.h.
3368         * i370/t-i370: Update.
3369         * i960/i960-c.c: Don't include c-lex.h.
3370         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
3371         * i960/t-960bare: Update.
3372         * i960/t-vxworks: Update.
3373         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
3374         * rs6000/t-darwin: Update.
3375         * rs6000/t-rs6000-c-rule: Update.
3376         * v850/v850-c.c: Don't include c-lex.h.
3377         * v850/v850.c: Don't include c-lex.h or cpplib.h.
3378
3379
3380 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
3381
3382         * tree.def: Fix typos.
3383         * doc/install.texi: Likewise.
3384
3385 2002-05-25  Richard Henderson  <rth@redhat.com>
3386
3387         * configure.in (HAVE_AS_TLS): Add ia64 test.
3388         * configure: Rebuild.
3389         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
3390         (override_options): Set it.
3391         (TARGET_HAVE_TLS): New.
3392         (sdata_symbolic_operand): Look for 's'.
3393         (tls_symbolic_operand): New.
3394         (ia64_expand_load_address): Abort for tls symbols.
3395         (gen_tls_get_addr): New.
3396         (gen_thread_pointer): New.
3397         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
3398         (rtx_needs_barrier): Add new unspecs.
3399         (ia64_encode_section_info): Handle tls symbols.
3400         (ia64_strip_name_encoding): Strip two encoding chars.
3401         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
3402         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
3403         (TARGET_OPTIONS): Add tls-size.
3404         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
3405         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
3406         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
3407         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
3408         (movsf, movdf): Likewise.
3409         (movdi_symbolic): Use match_scratch.  Don't split if we won't
3410         have a scratch availiable.
3411         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
3412         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
3413         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
3414         * config/ia64/ia64-protos.h: Update.
3415         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
3416         sdata_symbolic_operand.
3417         (ASM_OUTPUT_LABELREF): Strip two characters.
3418
3419 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
3420
3421         * combine.c (simplify_set): Remove an unnecessary subreg.
3422
3423 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3424
3425         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
3426
3427         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
3428
3429 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
3430
3431         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
3432
3433 2002-05-25  Roger Sayle  <roger@eyesopen.com>
3434
3435         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
3436         (cond (compare x y) 0) into the equivalent (cond x y).
3437
3438 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
3439
3440         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
3441
3442 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
3443
3444         * config.gcc: Remove all stanzas for previously obsoleted
3445         systems.  Where necessary, add explicit error stanzas to
3446         prevent removed systems from being misidentified as something
3447         else.  Begin a fresh obsoletions list, with the systems that
3448         were reprieved last round.
3449         * doc/install.texi: Remove all mention of dead targets.
3450         * fixinc/mkfixinc.sh: Likewise.
3451
3452         * config/arm/arm.h: Bit 31 of target_flags is no longer
3453         reserved.
3454
3455         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
3456         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
3457         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
3458         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
3459         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
3460         config/alpha/osf12.h, config/alpha/osf2or3.h,
3461         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
3462         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
3463         config/clipper/clipper-protos.h, config/clipper/clipper.c,
3464         config/clipper/clipper.h, config/clipper/clipper.md,
3465         config/clipper/clix.h, config/convex/convex-protos.h,
3466         config/convex/convex.c, config/convex/convex.h,
3467         config/convex/convex.md, config/convex/fixinc.convex,
3468         config/convex/proto.h, config/elxsi/elxsi-protos.h,
3469         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
3470         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
3471         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
3472         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
3473         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
3474         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
3475         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
3476         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
3477         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
3478         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
3479         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
3480         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
3481         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
3482         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
3483         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
3484         config/m68k/altos3068.h, config/m68k/apollo68.h,
3485         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
3486         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
3487         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
3488         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
3489         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
3490         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
3491         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
3492         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
3493         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
3494         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
3495         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
3496         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
3497         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
3498         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
3499         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
3500         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
3501         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
3502         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
3503         config/mips/dec-osf1.h, config/mips/elflorion.h,
3504         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
3505         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
3506         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
3507         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
3508         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
3509         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
3510         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
3511         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
3512         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
3513         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
3514         config/ns32k/sequent.h, config/ns32k/tek6000.h,
3515         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
3516         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
3517         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
3518         config/sparc/rtems.h, config/we32k/we32k-protos.h,
3519         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
3520         Delete file.
3521
3522 2002-05-24  Richard Henderson  <rth@redhat.com>
3523
3524         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
3525         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
3526         * config/i386/i386.c (tls_model_chars): Add leading space.
3527         (tls_symbolic_operand): Don't bias by 1.
3528         (legitimize_address): Don't unbias by 1.
3529
3530 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3531
3532         * lcm.c (optimize_mode_switching): Change bb used as indices
3533         to bb->index.
3534
3535 2002-05-24  Richard Henderson  <rth@redhat.com>
3536
3537         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
3538         of update_life_info_in_dirty_blocks.
3539
3540 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
3541
3542         PR other/6782
3543         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
3544
3545 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3546
3547         PR preprocessor/6780
3548         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
3549
3550 2002-05-24  Jim Blandy  <jimb@redhat.com>
3551
3552         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
3553         entry with a type code of zero, marking the end of the compilation
3554         unit's macro info.
3555
3556 2002-05-24  Richard Henderson  <rth@redhat.com>
3557
3558         * varasm.c (asm_output_bss): Always output one byte.
3559         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3560
3561 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3562
3563         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
3564         namespace.
3565
3566 2002-05-24  Andreas Jaeger  <aj@suse.de>
3567
3568         * ggc-page.c (alloc_page): Cast variables of type size_t to
3569         unsigned long, adjust printf format string.
3570         (ggc_alloc): Likewise.
3571         (ggc_print_statistics): Likewise.
3572         (ggc_print_statistics): Correct printf format string for SCALE to
3573         use unsigned long.
3574
3575 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
3576
3577         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
3578
3579 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
3580             Zack Weinberg     <zack@codesourcery.com>
3581
3582         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
3583         quoted strings.
3584         * dwarf2out.c (lookup_filename): Properly quote filename in .file
3585         directive in assembly file.
3586         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3587         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3588         * config/pj/pj.h (ASM_FILE_START): Likewise.
3589         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
3590         * config/avr/avr.c (asm_file_end): Likewise.
3591         * toplev.c (output_quoted_string): Handle possibly signed plain
3592         char.
3593         * toplev.h (output_clean_symbol_name): Declare
3594         * toplev.c (output_clean_symbol_name): Define.
3595         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
3596         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
3597
3598 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
3599
3600         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
3601
3602 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
3603
3604         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
3605         of size of unsigned.
3606
3607 2002-05-23  Richard Henderson  <rth@redhat.com>
3608
3609         * configure.in (HAVE_AS_TLS): New test.
3610         * config.in, configure: Rebuild.
3611         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
3612         (ix86_tls_dialect_string, ix86_tls_dialect): New.
3613         (override_options): Set it.
3614         (tls_model_chars, tls_symbolic_operand): New.
3615         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
3616         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
3617         (local_exec_symbolic_operand): New.
3618         (get_pic_label_name): Merge into output_set_got.
3619         (ix86_asm_file_end): Emit pic_label_name if defined.
3620         (legitimate_constant_p, constant_address_p): New.
3621         (legitimate_pic_operand_p): New.
3622         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
3623         (legitimate_address_p): Likewise.
3624         (ix86_encode_section_info): Rename from i386_; handle tls decls.
3625         (ix86_strip_name_encoding): New.
3626         (get_thread_pointer): New.
3627         (legitimize_address): Handle tls symbols.
3628         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
3629         Remove UNSPEC_PLT.
3630         (struct machine_function): Add some_ld_name.
3631         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
3632         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
3633         (output_addr_const_extra): New.
3634         (maybe_get_pool_constant): New.
3635         (ix86_split_to_parts): Use it.
3636         (ix86_expand_move): Handle tls symbols.
3637         (ix86_tls_get_addr): New.
3638         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
3639         (TARGET_OPTIONS): Add tls-dialect.
3640         (CONSTANT_ADDRESS_P): Use new out-of-line function.
3641         (LEGITIMATE_CONSTANT_P): Likewise.
3642         (LEGITIMATE_PIC_OPERAND_P): Likewise.
3643         (TARGET_STRIP_NAME_ENCODING): New.
3644         (ASM_OUTPUT_LABELREF): New.
3645         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
3646         (OUTPUT_ADDR_CONST_EXTRA): New.
3647         (PREDICATE_CODES): Update.
3648         (ix86_tls_dialect, ix86_tls_dialect_string): New.
3649         * config/i386/i386.md: Regroup and renumber unspec constants.
3650         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3651         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3652         (tls_global_dynamic, tls_local_dynamic_base): New.
3653         (tls_local_dynamic_once): New.
3654         * config/i386/i386-protos.h: Update.
3655
3656 2002-05-23  Richard Henderson  <rth@redhat.com>
3657
3658         * genemit.c (gen_insn): Print file:lineno comment before function.
3659         (main): likewise.
3660         * gensupport.c (struct queue_elem): Add filename member.
3661         (queue_pattern): Initialize it; update all callers.
3662         (process_include): Don't free filename.
3663         (read_md_rtx): Set read_rtx_filename.
3664
3665 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3666
3667         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3668
3669 2002-05-23  Richard Henderson  <rth@redhat.com>
3670
3671         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3672
3673 2002-05-23  Richard Henderson  <rth@redhat.com>
3674
3675         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3676         commentary from Mark.
3677
3678 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3679
3680         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3681         Use FOR_EACH_BB macros to iterate over basic block chain.
3682         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3683         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3684         Likewise.
3685         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3686         find_unreachable_blocks, create_edge_list, verify_edge_list,
3687         remove_fake_edges, add_noreturn_fake_exit_edges,
3688         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3689         Likewise.
3690         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3691         find_sub_basic_blocks): Likewise.
3692         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3693         Likewise.
3694         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3695         Likewise.
3696         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3697         Likewise.
3698         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3699         commit_edge_insertions, commit_edge_insertions_watch_calls,
3700         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3701         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3702         * conflict.c (conflict_graph_compute): Likewise.
3703         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3704         df_modified_p, df_refs_unlink, df_dump): Likewise.
3705         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3706         * final.c (compute_alignments): Likewise.
3707         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3708         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3709         count_or_remove_death_notes): Likewise.
3710         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3711         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3712         classic_gcse, compute_transp, cprop, compute_pre_data,
3713         compute_transpout, invalidate_nonnull_info,
3714         delete_null_pointer_checks_1, delete_null_pointer_checks,
3715         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3716         compute_store_table, build_store_vectors, store_motion): Likewise.
3717         * global.c (global_conflicts, mark_elimination): Likewise.
3718         * graph.c (print_rtl_graph_with_bb): Likewise.
3719         * haifa-sched.c (sched_init): Likewise.
3720         * ifcvt.c (if_convert): Likewise.
3721         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3722         compute_available, compute_nearerout, compute_rev_insert_delete,
3723         optimize_mode_switching): Likewise.
3724         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3725         * predict.c (estimate_probability, note_prediction_to_br_prob,
3726         propagate_freq, counts_to_freqs, expensive_function_p,
3727         estimate_bb_frequencies): Likewise.
3728         * profile.c (instrument_edges, get_exec_counts,
3729         compute_branch_probabilities, compute_checksum, branch_prob,
3730         find_spanning_tree): Likewise.
3731         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3732         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3733         Likewise.
3734         * regclass.c (scan_one_insn, regclass): Likewise.
3735         * regmove.c (mark_flags_life_zones, regmove_optimize,
3736         record_stack_memrefs): Likewise.
3737         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3738         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3739         * resource.c (find_basic_block): Likewise.
3740         * sched-ebb.c (schedule_ebbs): Likewise.
3741         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3742         find_single_block_region, find_rgns, schedule_insns)
3743         * sibcall.c (optimize_sibling_and_tail_recursive_call)
3744         * ssa-ccp.c (optimize_unexecutable_edges,
3745         ssa_ccp_df_delete_unreachable_insns): Likewise.
3746         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3747         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3748         rename_block, convert_to_ssa, compute_conservative_reg_partition,
3749         compute_coalesced_reg_partition, rename_equivalent_regs,
3750         convert_from_ssa): Likewise.
3751         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3752         process_for_unwind_directive): Likewise.
3753
3754         * df.c (FOR_ALL_BBS): Removed.
3755         * gcse.c (struct null_pointer_info): Type of current_block field
3756         changed.
3757         (struct reg_avail_info): Type of last_bb field changed.
3758         * config/ia64/ia64.c (block_num): Removed.
3759         (need_copy_state): Type changed.
3760         (last_block): New.
3761
3762 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3763
3764         * cppinit.c (mark_named_operators): Split out from init_builtins.
3765         (cpp_finish_options): Call it from here instead.
3766
3767 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3768
3769         * builtin-attrs.def: Update copyright years.
3770         (ATTR_NONNULL): New attribute identifier.
3771         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3772         attribute tree lists.
3773         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3774         format operand.
3775         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3776         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3777         attribute lists.  Chain the appropriate nonnull attribute.
3778         * c-format.c (check_format_arg): Remove null format string
3779         warning.
3780         * testsuite/gcc.dg/format/null-1.c: New test.
3781
3782 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3783
3784         * Makefile.in (ADAC): Define.
3785         (SYSLIBS): Define.
3786         (.SUFFIXES): Move before language makefile fragments.
3787         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3788
3789 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3790
3791         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3792         placed in common.
3793
3794 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3795
3796         * cfg.c (dump_flow_info): Print results of
3797         maybe_hot/probably_never_executed predicates.
3798         * toplev.c (open_dump_file): Print function frequency.
3799
3800 2002-05-23  David S. Miller  <davem@redhat.com>
3801
3802         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3803         regsets.
3804
3805 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3806
3807         * c-common.c (warn_nonnull): Declare.
3808         (c_common_attribute_table): Add "nonnull" attribute.
3809         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3810         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3811         check_function_arguments_recurse): New functions.
3812         * c-common.h (warn_nonnull): Declare extern.
3813         (check_function_arguments, check_function_arguments_recurse): New
3814         prototypes.
3815         * c-decl.c (c_decode_option): Add -Wnonnull option.
3816         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3817         format checking.
3818         (format_check_context): New structure.
3819         (check_format_info_recurse): Remove recursion and rename to...
3820         (check_format_arg): ...this.  Update comment.
3821         (check_format_info): Use check_function_arguments_recurse.
3822         * c-typeck.c (build_function_call): Call check_function_arguments
3823         instead of check_function_format.
3824         * doc/extend.texi: Document "nonnull" attribute.
3825         * doc/invoke.texi: Docuemnt -Wnonnull option.
3826         * testsuite/gcc.dg/nonnull-1.c: New test.
3827         * testsuite/gcc.dg/nonnull-2.c: New test.
3828
3829 2002-05-23  David S. Miller  <davem@redhat.com>
3830
3831         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3832         * cfgcleanup.c (cleanup_cfg): If it is set do not
3833         attempt to delete trivially dead insns.
3834         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3835         * toplev.c (rest_of_compilation): Document non-trivial aspect
3836         the RTL before optimize_save_area_alloca is run.
3837
3838 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3839
3840         * c-lex.c (indent_level): Remove.
3841         (cb_file_change, c_lex): Remove indent level handling.
3842         * c-lex.h (indent_level): Remove.
3843         * input.h (struct file_stack): Remove indent_level.
3844         * toplev.c (push_srcloc): Remove indent_level handling.
3845
3846 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3847
3848         PR target/6753
3849         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3850         of x in constraints for clarity.
3851         (sse_mov?fcc split): abort if op2 == op3.
3852         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3853         sse_movsfcc_const0_4): Add earlyclobber.
3854         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3855         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
3856         Use Y instead of x in constraints.
3857
3858 2002-05-23  Richard Henderson  <rth@redhat.com>
3859
3860         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3861         (C++98 Thread-Local Edits): New subsection.
3862
3863         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3864         (ix86_arch): Set type to enum processor_type.
3865
3866         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3867         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3868
3869 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3870
3871         * configure.in: Fix as version test for binutils 2.12.1 releases
3872         (without dates).
3873         * configure: Rebuilt.
3874
3875 2002-05-23  Richard Henderson  <rth@redhat.com>
3876
3877         * config/i386/i386.c (get_pic_label_name): New.
3878         (load_pic_register): Remove.
3879         (output_set_got): New.
3880         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3881         * config/i386/i386.md (UNSPEC_SET_GOT): New.
3882         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3883         (prologue_set_got, prologue_get_pc): Remove.
3884         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3885         (builtin_setjmp_receiver): Use gen_set_got.
3886         * config/i386/i386-protos.h: Update.
3887
3888 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3889
3890         * gcse.c (hash_expr): Do not use alias set for hashing.
3891
3892 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3893
3894         * dbxout.c (dbxout_class_name_qualifiers): New function.
3895         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3896
3897 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3898
3899         * cpperror.c (_cpp_begin_message): No special casing
3900         of CPP_FATAL_LIMIT.
3901         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3902         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3903         * cpplib.c (do_include_common): Use DL_ERROR.
3904         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3905         (DL_ICE): Renumber.
3906         * fix-header.c (read_scan_file): Update.
3907
3908 2002-05-22  Richard Henderson  <rth@redhat.com>
3909
3910         * config/i386/i386.c (ix86_expand_call): New function, extracted
3911         from md call patterns.  Add pic_offset_table_rtx to
3912         CALL_INSN_FUNCTION_USAGE when needed.
3913         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3914         (call_value_pop, call_value, untyped_call): Likewise.
3915         (call_exp, call_value_exp): Remove.
3916         * config/i386/i386-protos.h: Update.
3917
3918 2002-05-22  Richard Henderson  <rth@redhat.com>
3919
3920         * varasm.c (default_section_type_flags): Check for VAR_DECL
3921         before using DECL_THREAD_LOCAL.
3922
3923 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3924
3925         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3926         (STARTFILE_SPEC): Delete PE crt0.o.
3927         * config/rs6000/aix51.h: Same.
3928         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3929         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3930         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
3931         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3932         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3933
3934 2002-05-22  Richard Henderson  <rth@redhat.com>
3935
3936         * varasm.c (default_section_type_flags): Handle tls data and
3937         default sections.
3938         (default_unique_section): Handle tls sections.
3939
3940 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3941
3942         * configure.in (CROSS): Define NATIVE_CROSS.
3943         * configure: Regenerate.
3944         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3945         (startfile_prefix_spec): New var.
3946         (static_specs): Add startfile_prefix_spec.
3947         (do_spec_2): Split out from..
3948         (do_spec): ..here.
3949         (main): Process startfile_prefix_spec.
3950         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3951         dynamic linker.
3952         (STARTFILE_PREFIX_SPEC): Define.
3953         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3954         absolute paths.
3955
3956 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3957
3958         * cpperror.c: Fix formatting.
3959         * cppexp.c: Likewise.
3960         * cppfiles.c: Likewise.
3961         * cpphash.c: Likewise.
3962         * cpphash.h: Likewise.
3963         * cppinit.c: Likewise.
3964         * cpplex.c: Likewise.
3965         * cpplib.c: Likewise.
3966         * cppmacro.c: Likewise.
3967         * cppmain.c: Likewise.
3968         * cppspec.c: Likewise.
3969
3970 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3971
3972         * combine.c (force_to_mode): Use gen_int_mode.
3973         Don't clear CONST_INT bits outside of mode.
3974
3975 2002-05-22  Richard Henderson  <rth@redhat.com>
3976
3977         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3978         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3979
3980 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3981
3982         PR c/6643
3983         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3984         if DECL_SIZE_UNIT is INTEGER_CST.
3985
3986 2002-05-22  Richard Henderson  <rth@redhat.com>
3987
3988         * flow.c (life_analysis): Delete broken reg_label check.
3989
3990 2002-05-22  Richard Henderson  <rth@redhat.com>
3991
3992         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3993         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3994
3995 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3996
3997         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3998         (embed-bb.c): New rule.
3999         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
4000         * config/sh/embed_bb.c: Delete.
4001
4002 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
4003
4004         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
4005
4006 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
4007
4008         * config/h8300/h8300.md (*andorqi3): New.
4009
4010 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4011
4012         PR preprocessor/6517
4013         * Makefile.in: Update.
4014         * c-common.c (c_common_post_options): Add preprocessor
4015         errors to the error count.
4016         * c-lang.c (c_post_options): Kill.
4017         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4018         * hooks.h: Add header guards.
4019         * langhooks-def.h: Include hooks.h.
4020         (LANG_HOOKS_POST_OPTIONS): Update.
4021         * langhooks.h (struct lang_hooks): Update post_options.
4022         * toplev.c (parse_options_and_default_flags): Update.
4023 objc:
4024         * objc-lang.c (objc_post_options): Kill.
4025         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4026
4027 2002-05-21  Bruce Korb  <bkorb@gnu.org>
4028
4029         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
4030         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
4031         * fixinc/fixincl.x: regen.
4032
4033 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
4034
4035         * cfgbuild.c: Fix formatting.
4036         * cfg.c: Likewise.
4037         * cfgcleanup.c: Likewise.
4038         * cfglayout.c: Likewise.
4039         * cfgloop.c: Likewise.
4040         * cfgrtl.c: Likewise.
4041
4042 2002-05-21  Richard Henderson  <rth@redhat.com>
4043
4044         * c-common.h (enum rid): Add RID_THREAD.
4045         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
4046         (grokdeclarator): Grok __thread.
4047         * c-parse.in (reswords): Add __thread.
4048         (rid_to_yy): Add RID_THREAD.
4049
4050         * tree.h (DECL_THREAD_LOCAL): New.
4051         (struct tree_decl): Add thread_local_flag.
4052         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
4053         * tree.c (staticp): TLS variables are not static.
4054
4055         * target-def.h (TARGET_HAVE_TLS): New.
4056         * target.h (have_tls): New.
4057         * output.h (SECTION_TLS): New.
4058         * varasm.c (assemble_variable): TLS variables can't be common for now.
4059         (default_section_type_flags): Handle .tdata and .tbss.
4060         (default_elf_asm_named_section): Handle SECTION_TLS.
4061         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
4062
4063         * flags.h (flag_tls_default): Declare.
4064         * toplev.c (flag_tls_default): Define.
4065         (display_help): Display help for it.
4066         (decode_f_option): Set it.
4067
4068         * doc/extend.texi (Thread-Local): New node describing language-level
4069         thread-local storage.
4070         * doc/invoke.texi (-ftls-model): Document.
4071
4072         * fixinc/inclhack.def (thread_keyword): New.
4073         * fixinc/fixincl.x: Rebuild.
4074
4075 2002-05-21  Jeffrey A Law  <law@redhat.com>
4076
4077         * optabs.c (expand_binop): For double-word integer multiplies,
4078         do not compute intermediate results into something that is
4079         not a register (such as a SUBREG or MEM).
4080
4081         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
4082         (ix86_sched_reorder): Make sure to initialize scheduling
4083         data even when there's only one insn in the ready queue.
4084
4085 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4086
4087         * genautomata.c (reserv_sets_hash_value): Fix a typo.
4088
4089 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4090
4091         * genautomata.c (reserv_sets_hash_value): Define hash_value as
4092         set_el_t.  Transform the hash value into unsigned.
4093         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
4094         (transform_3): Add code to process `(A,B)+(D,E)'.
4095
4096 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
4097
4098         * reload1.c (do_output_reload): Run delete_output_reload
4099         only if optimizing.
4100
4101 2002-05-21  Roger Sayle  <roger@eyesopen.com>
4102
4103         PR middle-end/6600
4104         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
4105         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
4106         (can_store_by_pieces): ... and here to limit the largest mode used.
4107         Add a comment to document this function.
4108
4109 2002-05-21  Richard Henderson  <rth@redhat.com>
4110
4111         * flow.c (life_analysis): Fix test for deleted label.
4112
4113 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4114
4115         * doc/tm.texi: Fix typo.
4116
4117 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
4118
4119         * c-common.c (c_common_init): Set options->unsigned_char from
4120         flag_signed_char.
4121         (cb_register_builtins): Define __STRICT_ANSI__ and
4122         __CHAR_UNSIGNED__ here...
4123         * cppinit.c (init_builtins): Not here.
4124         (cpp_create_reader): unsigned_char option defaults to 0, not
4125         !DEFAULT_SIGNED_CHAR.
4126         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
4127         and -funsigned-char.
4128
4129         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
4130         * cpphash.c (_cpp_init_hashtable): Don't set it.
4131         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
4132         directly.  Clarify comment.
4133
4134 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4135
4136         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
4137         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
4138         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
4139         BASIC_BLOCK (n_basic_blocks - 1).
4140         * cfganal.c (can_fallthru, flow_call_edges_add,
4141         flow_preorder_transversal_compute): Too.
4142         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4143         find_sub_basic_blocks): Too.
4144         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
4145         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
4146         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
4147         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
4148         * combine.c (this_basic_block): Type changed to basic_block.
4149         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
4150         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4151         get_last_value, distribute_notes, distribute_links): Too.
4152         * final.c (compute_alignments): Too.
4153         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
4154         * function.c (thread_prologue_and_epilogue_insns): Too.
4155         * gcse.c (compute_code_hoist_vbeinout): Too.
4156         * global.c (build_insn_chain): Too.
4157         * ifcvt.c (find_if_block, find_cond_trap): Too.
4158         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
4159         * regmove.c (regmove_optimize): Too.
4160         * resource.c (find_basic_block): Too.
4161         * sched-ebb.c (schedule_ebbs): Too.
4162         * ssa-dce.c (find_control_dependence, find_pdom): Too.
4163
4164 2002-05-21  Andreas Jaeger  <aj@suse.de>
4165
4166         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
4167
4168 2002-05-21  Richard Henderson  <rth@redhat.com>
4169
4170         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
4171         unspec names, not numbers.
4172
4173 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4174
4175         * doc/sourcebuild.texi: Mention snapshot-README and
4176         snapshot-index.html as needing updating for new front ends.
4177
4178 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4179
4180         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
4181         disabling checking, and avoid multiple evaluation of RTX.
4182
4183 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
4184
4185         * bitmap.c (bitmap_find_bit): Return early if we have the correct
4186         element cached.
4187
4188 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4189
4190         * profile.c (gen_edge_profiler):  Set alias set before the memory is
4191         used.
4192
4193 2002-05-20  David S. Miller  <davem@redhat.com>
4194
4195         * cselib.c (max_value_regs): New.
4196         (cselib_lookup, cselib_invalidate_regno): Initialize it when
4197         adding new entries to the REG_VALUES table and we are dealing with
4198         a hard register.
4199         (clear_table): Initialize it.
4200         (cselib_invalidate_regno): Use it to determine which hard
4201         registers to scan when mode is not VOIDmode.
4202
4203 2002-05-20  Duraid Madina   <duraid@fl.net.au>
4204
4205         * tradcpp.c (fixup_newlines): Use old-style function header.
4206
4207 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
4208
4209         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
4210
4211 2002-05-20  H.J. Lu  (hjl@gnu.org)
4212
4213         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
4214
4215         * config/mips/mips.h (DFMODE_NAN): Defined.
4216         (SFMODE_NAN): Likewise.
4217
4218 2002-05-20  Dale Johannesen  <dalej@apple.com>
4219
4220         * combine.c (cant_combine_insn_p):  Back out my
4221         previous patch.
4222
4223 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
4224
4225         * params.c: Fix formatting.
4226         * params.h: Likewise.
4227         * predict.c: Likewise.
4228         * prefix.c: Likewise.
4229         * print-rtl.c: Likewise.
4230         * print-tree.c: Likewise.
4231         * profile.c: Likewise.
4232
4233 2002-05-20  H.J. Lu  (hjl@gnu.org)
4234
4235         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
4236
4237 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
4238
4239         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
4240         switches straight on to the assembler, do not abbreviate them.
4241         * config/arm/elf.h (ASM_SPEC): As above.
4242         * config/arm/semi.h (ASM_SPEC): As above.
4243         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
4244         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
4245         -mcpu=xscale on to the assembler by default.
4246         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
4247
4248 2002-05-20  Richard Henderson  <rth@redhat.com>
4249
4250         * cse.c (canon_hash): Reorder do_not_record test.  Always
4251         allow pic_offset_table_rtx.
4252
4253 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
4254
4255         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
4256         (expand_binop): Ditto (3 times).
4257
4258 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
4259
4260         * Makefile.in (distclean): Remove QMTest stuff.
4261         (QMTEST_PATH): New variable.
4262         (QMTESTFLAGS): Likewise.
4263         (QMTESTRUNFLAGS): Likewise.
4264         (QMTEST): Likewise.
4265         (QMTEST_GPP_TESTS): Likewise.
4266         (QMTEST_DIR): Likewise.
4267         (QMTEST_DIR/context): New target.
4268         (qmtest-g++): Likeise.
4269         (qmtest-gui): Likewise.
4270         (QMTEST_DIR/gpp-expected.qmr): Likewise.
4271
4272 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
4273
4274         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
4275         an altivec register if TARGET_ALTIVEC.
4276
4277         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
4278         to ALTIVEC_VECTOR_MODE.
4279         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
4280         (rs6000_va_arg): Vectors may go in registers if they are not
4281         altivec vectors.
4282
4283 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
4284
4285         * protoize.c: Fix formatting.
4286
4287 2002-05-19  Richard Henderson  <rth@redhat.com>
4288
4289         * gensupport.c (init_include_reader): Merge into ...
4290         (process_include): ... here.  Simplify composite path creation.
4291         Plug memory leaks.  Fix file/line number tracking.  Do not
4292         process_define_cond_exec.  Return void.
4293         (process_rtx): Don't check process_include return value.
4294
4295 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4296
4297         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
4298         fields.
4299         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4300         traversing basic block chain.
4301         (create_basic_block_structure, create_basic_block): Declaration changed.
4302         (link_block, unlink_block): Declare.
4303         * cfg.c (entry_exit_blocks): Initialize new fields.
4304         (link_block, unlink_block): New.
4305         (expunge_block_nocompact): Unlink basic block.
4306         (dump_flow_info): Print prev_bb/next_bb fields.
4307         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
4308         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
4309         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
4310         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4311         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
4312         (verify_flow_info): Check that list agrees with numbering.
4313
4314 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4315
4316         * c-common.c (preprocessing_asm): New macro.
4317         * c-lex.h (builtin_define, builtin_assert): Use pfile.
4318 doc:
4319         * tm.texi: Update.
4320 config/alpha:
4321         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
4322         (CPP_SPEC): Simplify.
4323         (TARGET_CPU_CPP_BUILTINS): Update.
4324         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
4325         (CPP_SPEC): Simplify.
4326         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
4327         (TARGET_OS_CPP_BUILTINS): Update.
4328         * osf.h (CPP_XFLOAT_SPEC): Kill.
4329         (TARGET_OS_CPP_BUILTINS): Update.
4330         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
4331         * osf5.h (CPP_XFLOAT_SPEC): Kill.
4332         * vms.h (CPP_SUBTARGET_SPEC): Kill.
4333         (TARGET_OS_CPP_BUILTINS): Update.
4334
4335 2002-05-19  Richard Henderson  <rth@redhat.com>
4336
4337         * varasm.c (default_binds_local_p): Fix typo.
4338
4339 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4340
4341         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
4342         CONST_INT operand to the correct mode after adding 1 to it.
4343
4344 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
4345
4346         * config.gcc (powerpc-wrs-windiss*): New target.
4347
4348 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4349
4350         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
4351         (ashrdi3): Use it.
4352
4353 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
4354
4355         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
4356         alphasort.
4357         * config.in: Regenerated.
4358         * configure: Regenerated.
4359
4360 2002-05-19  Richard Henderson  <rth@redhat.com>
4361
4362         * target-def.h (TARGET_BINDS_LOCAL_P): New.
4363         * target.h (struct gcc_target): Move boolean fields to the end.
4364         Add binds_local_p.
4365         * varasm.c (default_binds_local_p): New.
4366         * output.h: Declare it.
4367
4368         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
4369         * config/cris/cris.c (cris_encode_section_info): Likewise.
4370         * config/i386/i386.c (i386_encode_section_info): Likewise.
4371         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4372         * config/sh/sh.c (sh_encode_section_info): Likewise.
4373
4374         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
4375         (TARGET_BINDS_LOCAL_P): New.
4376
4377 2002-05-19  Richard Henderson  <rth@redhat.com>
4378
4379         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
4380         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
4381         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
4382
4383         * toplev.c (display_help): Kill -a -ax help.
4384
4385         * config/1750a/1750a.h, config/alpha/alpha.h,
4386         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
4387         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
4388         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
4389         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
4390
4391         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
4392         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
4393
4394         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
4395         (ix86_output_function_block_profiler): Kill.
4396         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
4397         (m68hc11_function_block_profiler): Kill.
4398         * config/m68hc11/m68hc11-protos.h: Update.
4399         * config/m88k/m88k.c (output_block_profiler): Kill.
4400         (output_function_block_profiler): Kill.
4401         * config/m88k/m88k-protos.h: Update.
4402
4403 2002-05-19  Richard Henderson  <rth@redhat.com>
4404
4405         * system.h (STRIP_NAME_ENCODING): Poison it.
4406         * output.h (STRIP_NAME_ENCODING): Remove.
4407         (default_strip_name_encoding): Declare.
4408         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
4409         * target.h (strip_name_encoding): New.
4410         * varasm.c (default_strip_name_encoding): New.
4411
4412         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
4413         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
4414         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
4415         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
4416         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
4417         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
4418         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
4419         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
4420         config/v850/v850.h: Use the hook, not the macro.
4421
4422         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4423         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
4424         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
4425         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
4426         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
4427         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
4428         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
4429         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
4430         config/v850/v850.c, config/v850/v850.h:
4431         Move STRIP_NAME_ENCODING to out-of-line function and add
4432         TARGET_STRIP_NAME_ENCODING.
4433
4434         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
4435         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
4436         with TARGET_STRIP_NAME_ENCODING referencing existing function;
4437         make function static.
4438
4439         * xcoffout.c: Include target.h
4440         * Makefile.in (xcoffout.o): Update.
4441
4442         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
4443         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
4444         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
4445         reloc argument unused.
4446         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
4447
4448         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
4449         STRIP_NAME_ENCODING docs.
4450
4451 2002-05-19  Andreas Jaeger  <aj@suse.de>
4452
4453         * gengenrtl.c: Add prototype for excluded_rtx.
4454
4455         * real.h: Add prototype for exact_real_truncate.
4456
4457 2002-05-18  Richard Henderson  <rth@redhat.com>
4458
4459         * system.h (ENCODE_SECTION_INFO): Poison it.
4460         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
4461         * target.h (encode_section_info): New.
4462         * varasm.c (make_decl_rtl, output_constant_def): Use it.
4463         * hooks.c (hook_tree_int_void): New.
4464         * hooks.h: Declare it.
4465
4466         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4467         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
4468         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
4469         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
4470         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
4471         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
4472         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
4473         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
4474         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
4475         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4476         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
4477         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
4478         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
4479         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
4480         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
4481         referencing existing function.  Make function static.
4482
4483         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
4484         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
4485         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
4486         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
4487         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
4488         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
4489         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
4490         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
4491         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
4492         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
4493         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
4494         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
4495         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
4496         Move ENCODE_SECTION_INFO to out-of-line function and add
4497         TARGET_ENCODE_SECTION_INFO.
4498
4499         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
4500         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4501
4502         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
4503         from SUBTARGET_*
4504         (switch_to_section): Replace in_rdata case with in_readonly_data.
4505
4506         * config/h8300/h8300.c (h8300_encode_label): Make static.
4507         * config/h8300/h8300-protos.h: Update.
4508
4509         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
4510         from rs6000_encode_section_info; make static.
4511         (rs6000_xcoff_encode_section_info): New.
4512
4513         * config/v850/v850.c (v850_encode_data_area): Make static.
4514         * config/v850/v850-protos.h: Update.
4515
4516         * config/vax/vax.c: Include flags.h.
4517         (vms_select_section): Fix typo.
4518
4519         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
4520         ENCODE_SECTION_INFO docs.
4521
4522 2002-05-18  Richard Henderson  <rth@redhat.com>
4523
4524         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
4525         REGISTER_TARGET_PRAGMAS.
4526         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
4527
4528         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
4529
4530 2002-05-18  Richard Henderson  <rth@redhat.com>
4531
4532         * system.h (SELECT_RTX_SECTION): Poison.
4533         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
4534         * target.h (select_rtx_section): New.
4535         * varasm.c (output_constant_pool): Use it.
4536         (default_select_rtx_section, default_elf_select_rtx_section): New.
4537         * output.h: Declare them.
4538
4539         * config/darwin.h (SELECT_RTX_SECTION): Move ...
4540         * config/darwin.c (machopic_select_rtx_section): ... here.
4541         * config/darwin-protos.h: Update.
4542
4543         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
4544         * config/nextstep.c (machopic_select_rtx_section): ... here.
4545         (nextstep_select_section): Rename variable to avoid macro clash.
4546         * config/nextstep-protos.h: Update.
4547
4548         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
4549         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
4550         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
4551         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
4552         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
4553         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
4554         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
4555         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
4556         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
4557         (SELECT_RTX_SECTION): Remove.
4558
4559         * config/darwin.h, config/elfos.h, config/nextstep.h,
4560         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
4561         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
4562         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
4563         config/sparc/lynx.h, config/xtensa/xtensa.c
4564         (TARGET_ASM_SELECT_RTX_SECTION): New.
4565
4566         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
4567         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
4568         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
4569         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
4570         (ia64_aix_select_rtx_section): New.
4571         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
4572         redefining.
4573         * config/mips/mips.c (mips_select_rtx_section): Make static.
4574         Support ELF SHF_MERGE features.
4575         * config/mips/mips-protos.h: Update.
4576         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
4577         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
4578         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
4579         make static, fall back to default_elf_select_rtx_section.
4580         * config/rs6000/rs6000-protos.h: Update.
4581         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
4582         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
4583         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
4584         * config/romp/romp.c (romp_select_rtx_section): New.
4585         * config/s390/s390.c (s390_select_rtx_section): New.
4586         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
4587         declarations before target macro definition.
4588         (xtensa_emit_call): Use static buffer.
4589         (xtensa_select_rtx_section): New.
4590         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
4591         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
4592         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
4593
4594         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
4595         SELECT_RTX_SECTION docs.
4596
4597 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4598
4599         * i386.md (movsi/movdi): Fix template.
4600         (sse2 patterns): Set attributes consistently.
4601
4602         * i386.md (pushqi2, ashrqi_*): Fix constraint.
4603
4604 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
4605
4606         * optabs.c (complex_part_zero_p): New.
4607         * (expand_cmplxdiv_straight): Use it.
4608         * (expand_cmplxdiv_wide): Ditto.
4609         * (expand_binop): Ditto.
4610
4611 2002-05-18  Richard Henderson  <rth@redhat.com>
4612
4613         * final.c (HAVE_READONLY_DATA_SECTION): New.
4614         (shorten_branches): Use it instead of ifdefs.
4615         * varasm.c (enum in_section): Add in_readonly_data.
4616         (text_section, data_section): Tidy.
4617         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
4618
4619         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
4620         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
4621         (READONLY_DATA_SECTION): Don't undef.
4622
4623         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
4624         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
4625         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
4626
4627         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
4628         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
4629         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
4630         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
4631
4632         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
4633         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
4634         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4635         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
4636         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
4637         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
4638         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
4639         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
4640         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
4641
4642         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
4643         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
4644         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
4645         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
4646         config/pa/pa64-hpux.h, config/sparc/litecoff.h
4647         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
4648
4649         * config/elfos.h, config/netware.h, config/svr3.h,
4650         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4651         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4652         config/h8300/h8300.h, config/i386/i386-interix.h,
4653         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4654         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
4655
4656         * config/elfos.h, config/netware.h, config/svr3.h,
4657         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4658         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
4659         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4660         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
4661
4662         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
4663         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
4664         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
4665         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
4666         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
4667         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
4668         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
4669         config/rs6000/sysv4.h, config/v850/v850.h
4670         (EXTRA_SECTIONS): Remove in_const/in_rdata.
4671         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
4672
4673         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
4674         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
4675         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
4676         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
4677         * config/alpha/alpha.c (alpha_start_function): Likewise.
4678         (alpha_write_linkage): Likewise.
4679         * config/m32r/m32r.c (m32r_select_section): Likewise.
4680         * config/m88k/m88k.c (m88k_select_section): Likewise.
4681         * config/mips/mips.c (mips_select_rtx_section): Likewise.
4682         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
4683         (rs6000_elf_select_section): Likewise.
4684         * config/v850/v850.c (v850_select_section): Likewise.
4685
4686         * config/1750a/1750a.h, config/i860/sysv3.h
4687         (READONLY_DATA_SECTION_ASM_OP): New.
4688         READONLY_DATA_SECTION_ASM_OP.
4689         * config/i386/interix.c, config/i386/winnt.c
4690         (i386_pe_unique_section): Always use .rdata prefix.
4691         * config/pa/som.h (readonly_data): Always switch to read-only section.
4692         (READONLY_DATA_SECTION): Predicate on flag_pic.
4693         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
4694         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
4695         (READONLY_DATA_SECTION): Update.
4696
4697 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
4698
4699         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
4700         is used without -Wformat.
4701         * c-common.h (warn_format_zero_length): Declare extern.
4702         * c-decl.c (warn_options): Add "format-zero-length".
4703         * c-format.c (warn_format_zero_length): Declare.
4704         (set_Wformat): Set warn_format_zero_length for -Wformat.
4705         (check_format_info): Only warn about zero-length formats if
4706         warn_format_zero_length is true.  Include the format type
4707         name in the warning message.
4708         * doc/invoke.texi: Document -Wformat-zero-length.
4709         * testsuite/gcc.dg/format/zero-length-1.c: New test.
4710
4711 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
4712
4713         * timevar.c: Fix formatting.
4714         * tlink.c: Likewise.
4715         * toplev.c: Likewise.
4716         * tree-dump.c: Likewise.
4717         * tree-inline.c: Likewise.
4718
4719 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4720
4721         * cppinit.c (cpp_post_options): If preprocessed, turn off
4722         traditional.  If traditional, turn off column numbers.
4723         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
4724         * cpptrad.c (handle_newline): Update line_base.
4725         (skip_comment): Handle -Wcomment.
4726
4727 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
4728
4729         * cppinit.c (struct builtin): Remove unused fields.
4730         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
4731         (operator_array): New - was second half of builtin_array.
4732         (init_builtins): Simplify loop over builtin_array/operator_array.
4733
4734 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4735
4736         * defaults.h (UNIQUE_SECTION): Remove.
4737         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
4738
4739 2002-05-17  Richard Henderson  <rth@redhat.com>
4740
4741         * expr.c (init_expr_once): Don't use start/end_sequence.
4742         Use rtx_alloc instead of emit_insn.
4743         * toplev.c (lang_dependent_init): Run init_expr_once here ...
4744         (lang_independent_init): ... not here.
4745
4746 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
4747
4748         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
4749
4750 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4751
4752         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
4753         for fixed registers, possibly used for global register variables.
4754         (initial_elimination_offset, avr_output_function_prologue,
4755         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
4756
4757 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4758
4759         * Makefile.in: Update for cpptrad.c.
4760         * cpphash.h (struct cpp_buffer): New members for buffer
4761         overlays.
4762         (struct cpp_reader): New members for traditional output.
4763         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
4764         * cppinit.c (cpp_create_reader): Set trad_line.
4765         (cpp_destroy): Free trad_out_base if used.
4766         (cpp_read_main_file): Overlay an empty buffer if traditional.
4767         (cpp_finish_options): Don't do builtins.
4768         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
4769         (cpp_handle_option): Handle it.
4770         * cpplex.c (continue_after_nul): New.
4771         (_cpp_lex_direct): Use handle_nul.
4772         * cpplib.h (struct cpp_options): New traditional option.
4773         * cpptrad.c: New file.
4774
4775 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4776
4777         * c-common.c (c_common_init_options): Use C89 for Objective-C,
4778         and set the options flag.
4779         * cppinit.c (lang_flags): Remove objc.
4780         (lang_defaults): Remove OBJC and OBJCXX.
4781         (set_lang): Update.
4782         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
4783         (cpp_handle_option): Remove -+ and -lang-objc++.
4784         For ObjC, just set a flag.
4785         (print_help): Update.
4786         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
4787
4788 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4789
4790         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
4791         bootstrap with -mips3.
4792
4793 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
4794
4795         * final.c: Fix formatting.
4796         * fix-header.c: Likewise.
4797         * flow.c: Likewise.
4798         * fold-const.c: Likewise.
4799         * function.c: Likewise.
4800
4801 2002-05-17  David S. Miller  <davem@redhat.com>
4802
4803         PR c/6689, PR optimization/6615
4804         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
4805         and make it a pointer to rtx.  Update comments.
4806         (update_equiv_regs): When scanning for equivalences, record
4807         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
4808         it while making the equiv replacements.
4809
4810 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4811
4812         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
4813
4814 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
4815
4816         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
4817         when encoding visibility into SYMBOL_REF_FLAG.
4818
4819 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
4820
4821         * expr.c (force_operand): Fix reversed move.
4822
4823 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
4824
4825         * doc/install.texi (Testing): Mention two common DejaGnu warnings
4826         that can be ignored.
4827
4828 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4829
4830         * doc/install.texi (Final install): Recommend to install into a
4831         "clean" target directory.
4832
4833 2002-05-17  Richard Henderson  <rth@redhat.com>
4834
4835         * config/ia64/ia64.md: Use braced strings instead of quoted strings
4836         for code blocks.  Tidy whitespace.
4837
4838 2002-05-17  Richard Henderson  <rth@redhat.com>
4839
4840         * hooks.c (hook_tree_bool_false): New.
4841         * hooks.h: Declare it.
4842         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
4843         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
4844         * target.h (select_section, unique_section): New.
4845         (in_small_data_p): New.
4846         * varasm.c (resolve_unique_section): Use hooks instead of macros.
4847         (variable_section, output_constant_def_contents): Likewise.
4848         (default_select_section, default_unique_section): New.
4849         (categorize_decl_for_section, default_elf_select_section): New.
4850         * output.h: Declare them.
4851
4852         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
4853         (TARGET_ASM_SELECT_SECTION): New.
4854         (SELECT_SECTION): Move ...
4855         * config/darwin.c (machopic_select_section): ... here.
4856         * config/darwin-protos.h: Update.
4857
4858         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
4859         (SELECT_SECTION): Move ...
4860         * config/nextstep.c (nextstep_select_section): ... here.
4861         * config/nextstep-protos.h: Update.
4862
4863         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
4864         (TARGET_ASM_SELECT_SECTION): New.
4865         * config/svr3.h (SELECT_SECTION): Remove.
4866
4867         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
4868         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
4869         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
4870         (alpha_encode_section_info): Use it.
4871         * config/alpha/alpha-protos.h: Update.
4872         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
4873         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4874         (TARGET_ASM_SELECT_SECTION): New.
4875         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
4876
4877         * config/arm/pe.h (UNIQUE_SECTION): Remove.
4878         (TARGET_ASM_UNIQUE_SECTION): New.
4879
4880         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
4881         (avr_unique_section): Rename from unique_section; make static.
4882         * config/avr/avr-protos.h: Update.
4883         * config/avr/avr.h (UNIQUE_SECTION): Remove.
4884
4885         * config/c4x/c4x.h (SELECT_SECTION): Remove.
4886
4887         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
4888         (TARGET_ASM_UNIQUE_SECTION): New.
4889         * config/i386/i386-interix.h: Likewise.
4890         * config/i386/win32.h: Likewise.
4891         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
4892         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
4893         * config/i386/sco5.h (SELECT_SECTION): Remove.
4894         (TARGET_ASM_SELECT_SECTION): New.
4895         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
4896
4897         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
4898         instead of SELECT_SECTION.
4899         * config/m68k/dpx2.h: Likewise.
4900         * config/rs6000/lynx.h: Likewise.
4901
4902         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4903         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4904         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
4905         (ia64_in_small_data_p): New.
4906         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
4907         (ia64_aix_select_section, ia64_aix_unique_section): New.
4908         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
4909         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4910
4911         * config/m32r/m32r.h (SELECT_SECTION): Remove.
4912         (TARGET_ASM_SELECT_SECTION): New.
4913         * config/m32r/m32r.c (m32r_select_section): Take align argument.
4914         * config/m32r/m32r-protos.h: Update.
4915
4916         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
4917         (SELECT_SECTION): Move ...
4918         * config/m88k/m88k.c (m88k_select_section): ... here.
4919
4920         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
4921         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
4922         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
4923         (mcore_unique_section): Make static.
4924         * config/mcore/mcore-protos.h: Update.
4925
4926         * config/mips/elf.h (UNIQUE_SECTION): Remove.
4927         (TARGET_ASM_UNIQUE_SECTION): New.
4928         * config/mips/elf64.h: Likewise.
4929         * config/mips/iris6gld.h: Likewise.
4930         * config/mips/linux.h: Likewise.
4931         * config/mips/mips-protos.h: Update.
4932         * config/mips/mips.c (mips_select_section): Add align argument.
4933         * config/mips/mips.h (SELECT_SECTION): Remove.
4934         (TARGET_ASM_SELECT_SECTION): New.
4935
4936         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4937         * config/mmix/mmix.c (mmix_select_section): Remove.
4938         (mmix_unique_section): Remove.
4939         * config/mmix/mmix-protos.h: Update.
4940
4941         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
4942         (SELECT_SECTION): Move ...
4943         * config/pa/pa.c (pa_select_section): ... here.
4944         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
4945
4946         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
4947         from rs6000_select_section and make static.
4948         (rs6000_elf_unique_section): Similarly.
4949         (rs6000_xcoff_select_section): From xcoff.h.
4950         (rs6000_xcoff_unique_section): Likewise.
4951         * config/rs6000/rs6000-protos.h: Update.
4952         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4953         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4954         * config/rs6000/xcoff.h: Likewise.
4955
4956         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
4957         (SELECT_SECTION): Move ...
4958         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
4959
4960         * config/v850/v850.h (SELECT_SECTION): Move ...
4961         * config/v850/v850.c (v850_select_section): ... here.
4962         (TARGET_ASM_SELECT_SECTION): New.
4963
4964         * config/vax/vms.h (SELECT_SECTION): Move ...
4965         * config/vax/vax.c (vms_select_section): ... here.
4966         (TARGET_ASM_SELECT_SECTION): New.
4967
4968         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
4969         for the target hooks.
4970
4971 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
4972
4973         * config/arm/arm.c (emit_multi_reg_push): Do not set
4974         RTX_FRAME_RELATED_P on the SEQUENCE.
4975
4976 2002-05-16  Richard Henderson  <rth@redhat.com>
4977
4978         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
4979         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
4980
4981 2002-05-16  Richard Henderson  <rth@redhat.com>
4982
4983         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
4984
4985         * config/ia64/ia64.c (saveable_obstack): Do not declare.
4986
4987 2002-05-16  Richard Henderson  <rth@redhat.com>
4988
4989         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
4990         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
4991         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
4992         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
4993         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
4994         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
4995         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
4996         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
4997         Revert "Basic block renumbering removal", and two followup patches.
4998
4999 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5000
5001         * lcm.c (optimize_mode_switching): Revert previous change.
5002
5003 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5004
5005         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
5006         with only extant block numbers.
5007
5008 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5009
5010         * lcm.c (optimize_mode_switching): Fix typo.
5011
5012 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5013
5014         * flow.c (calculate_global_regs_live): Queue blocks in program order.
5015
5016 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5017
5018         * doc/install.texi (Configuration): Document PWDCMD.
5019
5020 2002-05-16  Dale Johannesen  <dalej@apple.com>
5021
5022         * combine.c (cant_combine_insn_p):  Reenable combinations
5023         involving hard regs unless CLASS_LIKELY_SPILLED_P.
5024
5025 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5026
5027         * c-common.c (cb_register_builtins): Handle more built-ins
5028         here rather than in gcc.c specs.
5029         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
5030         (cpp_options): Pass -O flags even when only preprocessing.
5031         * toplev.c (set_fast_math_flags): New prototype.
5032         (fast_math_flags_set_p): New.
5033         (set_no_fast_math_flags): Remove.
5034         (decode_f_option): Update.
5035         * toplev.h (set_fast_math_flags): Update.
5036         (fast_math_flags_set_p): New.
5037         (set_no_fast_math_flags): Remove.
5038 config:
5039         * c4x/c4x.c (c4x_override_options): Update.
5040
5041 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
5042
5043         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
5044         Default-define here.
5045         (builtin_define_with_value): Can now wrap the expansion in
5046         quotation marks if such is wanted.
5047         (cb_register_builtins): Update calls to builtin_define_with_value.
5048         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
5049         here.
5050         (c_common_init): Set options->stdc_0_in_system_headers.
5051         * c-lex.h: Update prototype of builtin_define_with_value.
5052         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
5053         and REGISTER_PREFIX.
5054
5055         * cppinit.c (VERS, ULP, C, X): Kill.
5056         (builtin_array): Remove entries for __VERSION__,
5057         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
5058         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
5059         a constant.
5060         (init_builtins): Kill off a bunch of now-dead code.
5061         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
5062         -fno-leading-underscore.
5063         (cpp_handle_option): Remove code to set user_label_prefix.
5064         (cpp_post_options): Likewise.
5065
5066         * cpplib.h (struct cpp_options): Remove user_label_prefix.
5067         (stdc_0_in_system_headers): New.
5068         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
5069         stdc_0_in_system_headers) too to decide the value of __STDC__.
5070
5071         * tradcpp.c (user_label_prefix): Kill.
5072         (main): Remove code handling -f(no-)leading-underscore.
5073         (initialize_builtins): Don't define __REGISTER_PREFIX__
5074         or __USER_LABEL_PREFIX__.
5075         (install_value): Wrap compound statement in dummy loop so the
5076         macro works properly in an if statement.
5077
5078
5079 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
5080
5081         * loop.h (struct loop_info): Add member has_prefetch.
5082         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
5083         (prescan_loop): Initialize has_prefetch.
5084         (struct prefetch_info): Change prefetch_in_loop and
5085         prefetch_before_loop from bit fields to ints.
5086         (emit_prefetch_instructions): Several small fixes.
5087         (check_dbra_loop): Don't reverse loop that uses prefetch.
5088
5089 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5090
5091         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
5092         * configure.in: Likewise.
5093         * fixinc/check.tpl: Likewise.
5094         * fixinc/fixinc.dgux: Likewise.
5095         * fixinc/fixinc.svr4: Likewise.
5096         * fixinc/fixinc.winnt: Likewise.
5097         * fixinc/fixincl.sh: Likewise.
5098         * fixproto: Likewise.
5099         * configure: Regenerate.
5100
5101 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5102
5103         Basic block renumbering removal:
5104         * basic_block.h (struct basic_block_def): Renamed index to sindex,
5105         added prev_bb and next_bb fields.
5106         (n_basic_blocks): Renamed to num_basic_blocks.
5107         (last_basic_block): New, index of last basic block.
5108         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
5109         traversing basic block chain.
5110         (BLOCK_NUM): index -> sindex.
5111         (create_basic_block_structure, create_basic_block): Declaration changed.
5112         (debug_num2bb): Declare.
5113         (expunge_block_nocompact): Declaration removed.
5114         (link_block, unlink_block, compact_blocks): Declare.
5115         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
5116         * cfg.c (entry_exit_blocks): Initialize new fields.
5117         (clear_edges, alloc_block, expunge_block, cached_make_edge,
5118         redirect_edge_pred, dump_flow_info, dump_edge_info,
5119         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
5120         free_aux_for_edges): Modified.
5121         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
5122         (expunge_block_nocompact): Removed.
5123         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
5124         find_unreachable_blocks, create_edge_list, print_edge_list,
5125         verify_edge_list, flow_edge_list_print, remove_fake_successors,
5126         remove_fake_edges, flow_reverse_top_sort_order_compute,
5127         flow_depth_first_order_compute, flow_preorder_transversal_compute,
5128         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
5129         flow_dfs_compute_reverse_execute): Modified.
5130         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
5131         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
5132         Modified.
5133         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5134         merge_blocks_move_predecessor_nojumps,
5135         merge_blocks_move_successor_nojumps, merge_blocks,
5136         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
5137         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
5138         * cfglayout.c (skip_insns_after_block, label_for_bb,
5139         record_effective_endpoints, scope_to_insns_finalize,
5140         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
5141         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
5142         cfg_layout_duplicate_bb): Modified.
5143         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
5144         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5145         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
5146         flow_loops_find, flow_loop_outside_edge_p): Modified.
5147         * cfgrtl.c (create_basic_block_structure, create_basic_block,
5148         flow_delete_block, compute_bb_for_insn, split_block,
5149         try_redirect_by_replacing_jump, redirect_edge_and_branch,
5150         force_nonfallthru_and_redirect, tidy_fallthru_edge,
5151         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
5152         commit_edge_insertions, commit_edge_insertions_watch_calls,
5153         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
5154         purge_all_dead_edges): Modified.
5155         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
5156         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
5157         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
5158         Modified.
5159         * conflict.c (conflict_graph_compute): Modified.
5160         * df.c (FOR_ALL_BBS): Removed.
5161         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
5162         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
5163         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
5164         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
5165         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
5166         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
5167         * final.c (compute_alignments, final_scan_insn): Modified.
5168         * flow.c (verify_local_live_at_start, update_life_info,
5169         update_life_info_in_dirty_blocks, free_basic_block_vars,
5170         delete_noop_moves, calculate_global_regs_live,
5171         initialize_uninitialized_subregs, allocate_bb_life_data,
5172         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
5173         mark_used_reg, count_or_remove_death_notes): Modified.
5174         * function.c (thread_prologue_and_epilogue_insns): Modified.
5175         * gcse.c (struct null_pointer_info): Change typo of current_block
5176         to basic_block.
5177         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
5178         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
5179         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
5180         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
5181         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
5182         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
5183         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
5184         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
5185         pre_delete, one_pre_gcse_pass, compute_transpout,
5186         invalidate_nonnull_info, delete_null_pointer_checks_1,
5187         free_code_hoist_mem, compute_code_hoist_vbeinout,
5188         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
5189         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
5190         compute_store_table, build_store_vectors, insert_insn_start_bb,
5191         insert_store, replace_store_insn, free_store_memory, store_motion):
5192         Modified.
5193         * global.c (global_alloc, global_conflicts, mark_elimination,
5194         build_insn_chain): Modified.
5195         * graph.c (print_rtl_graph_with_bb): Modified.
5196         * haifa-sched.c (sched_init): Modified.
5197         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
5198         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
5199         if_convert): Modified.
5200         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
5201         compute_insert_delete, pre_edge_lcm, compute_available,
5202         compute_farthest, compute_nearerout, compute_rev_insert_delete,
5203         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
5204         Modified.
5205         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
5206         * loop.c (loop_dump_aux): Modified.
5207         * predict.c (combine_predictions_for_insn, estimate_probability,
5208         last_basic_block_p, process_note_prediction, process_note_predictions,
5209         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
5210         expensive_function_p, estimate_bb_frequencies,
5211         compute_function_frequency): Modified.
5212         * print-rtl.c (print_rtx): Modified.
5213         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
5214         get_exec_counts, compute_branch_probabilities, compute_checksum,
5215         branch_prob, find_spanning_tree): Modified.
5216         * recog.c (split_all_insns, peephole2_optimize): Modified.
5217         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
5218         convert_regs_1, convert_regs_2, convert_regs): Modified.
5219         * regclass.c (scan_one_insn, regclass): Modified.
5220         * regmove.c (mark_flags_life_zones, regmove_optimize,
5221         combine_stack_adjustments): Modified.
5222         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
5223         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
5224         * reorg.c (dbr_schedule): Modified.
5225         * resource.c (find_basic_block, init_resource_info): Modified.
5226         * sbitmap.c (sbitmap_intersection_of_succs,
5227         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
5228         sbitmap_union_of_preds): Modified.
5229         * sched-deps.c (init_dependency_caches): Modified.
5230         * sched-ebb.c (schedule_ebbs): Modified.
5231         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
5232         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
5233         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
5234         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
5235         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
5236         ssa_const_prop): Modified.
5237         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
5238         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
5239         * ssa.c (remove_phi_alternative, find_evaluations,
5240         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
5241         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
5242         make_regs_equivalent_over_bad_edges,
5243         make_equivalent_phi_alternatives_equival,
5244         compute_conservative_reg_partition,
5245         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
5246         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
5247         Modified.
5248
5249 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
5250
5251         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
5252
5253 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
5254
5255         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
5256         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5257         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
5258         calling CONSTANT_POOL_ADDRESS_P.
5259         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
5260         to decide whether to define __arm__ or __thumb.
5261         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
5262         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5263
5264 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5265
5266         * config/arc/arc.h (CPP_PREDEFINES): Remove.
5267         (CPP_SPEC): Update.
5268         (TARGET_CPU_CPP_BUILTINS): New.
5269
5270 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5271
5272         * cpphash.h (cpp_macro): Move here, and make expansion a union.
5273         * cppmacro.c (cpp_macro): Remove.
5274         (enter_macro_context, replace_args, warn_of_redefinition,
5275         _cpp_create_definition, cpp_macro_definition): Update.
5276
5277 2002-05-16  Jason Merrill  <jason@redhat.com>
5278
5279         * config/mips/mips.c (mips_output_external): Don't do sdata
5280         optimization for a variable with DECL_COMDAT set.
5281
5282 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5283
5284         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
5285         Cleanups for accepting modifiers on pointers.
5286         Fix predicate typos.
5287         Allow long pointers as well as int pointers.
5288
5289 2002-05-15  Richard Henderson  <rth@redhat.com>
5290
5291         * varasm.c (merge_weak): Remove special case for extern and common.
5292
5293 2002-05-15  Matt Hiller  <hiller@redhat.com>
5294
5295         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
5296         XFAILing.
5297         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
5298         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
5299         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
5300         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
5301         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
5302         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
5303
5304 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5305
5306         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
5307
5308 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5309
5310         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
5311         ("altivec_mfvscr"): Read from VSCR.
5312
5313         Add vscr sets for the following insns: altivec_vctuxs,
5314         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
5315         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
5316         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
5317         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
5318         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
5319         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
5320         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
5321         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
5322         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
5323         altivec_vsum2sws, altivec_vsumsws.
5324
5325         * config/rs6000/rs6000.h: Add VSCR fixed register.
5326         (CALL_REALLY_USED_REGISTERS): Add vscr.
5327         (CALL_USED_REGISTERS): Same.
5328         (FIXED_REGISTERS): Same.
5329         (REG_ALLOC_ORDER): Same.
5330         (reg_class): Add VSCR_REGS.
5331         (REG_CLASS_NAMES): Same.
5332         (REG_CLASS_CONTENTS): Same.
5333         (VSCR_REGNO): New.
5334         (REGISTER_NAMES): Add vscr.
5335         (DEBUG_REGISTER_NAMES): Same.
5336         (ADDITIONAL_REGISTER_NAMES): Same.
5337         (FIRST_PSEUDO_REGISTER): Increment.
5338         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
5339
5340 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
5341
5342         * fold-const.c (fold): Fix a typo.
5343
5344 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
5345
5346         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
5347         comparison against the highest or lowest integer value before
5348         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
5349         transformation and that of an unsigned comparison against 0
5350         right after.
5351
5352 2002-05-15  Richard Henderson  <rth@redhat.com>
5353
5354         * varasm.c (merge_weak): Error for any weakening after definition.
5355         Adjust weakening after use warning to catch more cases.
5356         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
5357         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
5358
5359 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
5360
5361         * invoke.texi (-malign-double): Re-add lost warning.
5362
5363         * i386-protos.h (x86_output_mi_thunk): Declare.
5364         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
5365         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
5366
5367         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
5368         when flag_asynchronous_unwind_tables is set.
5369
5370         * flags.h (flag_reorder_functions): Declare.
5371         * function.c (prepare_function_start): Initialize frequnecy.
5372         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
5373         * Makefile.in (predict.o): Add dependency on target.h and params.h
5374         * defaults.h (HOT_TEXT_SECTION_NAME,
5375         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
5376         * predict.c (choose_function_section): New function.
5377         (estimate_bb_frequencies): Use it.
5378         * toplev.c (flag_reorder_functions): New global variable.
5379         (lang_independent_options): New.
5380         (parse_options_and_default_flags): Set.
5381         * varasm.c (assemble_start_function): Bypass functdion alignment
5382         for never executed functions.
5383         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
5384         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
5385         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5386         Document.
5387
5388         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
5389
5390         * predict.c: Inlude profile.h
5391         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
5392         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
5393         Use the information about maximal counter in the program.
5394
5395         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
5396
5397         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
5398         probably_never_executed_bb_p): New functions.
5399         * cfgcleanup.c (outgoing_edges_match): Use them.
5400         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
5401         (maybe_hot_bb_p, probably_cold_bb_p,
5402         probably_never_executed_bb_p): New functions.
5403
5404         * function.h (function): Add new field function_frequency.
5405         * predict.c (compute_function_frequency): New function.
5406         (estimate_probability): Call it.
5407
5408 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5409
5410         PR optimization/5172, optimization/5200
5411         * gcse.c (gcse_main): Disable store_motion.
5412
5413 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
5414
5415         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
5416         (c_common_nodes_and_builtins): Use it.
5417         (builtin_define_with_value): New function.
5418         (cb_register_builtins): Define __SIZE_TYPE__,
5419         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
5420         using builtin_define_with_value.  Use consistent notation when
5421         defining __GXX_WEAK__.
5422         (WCHAR_TYPE_SIZE): Don't redefine.
5423         (combine_strings): Don't use WCHAR_TYPE_SIZE.
5424
5425         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
5426         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
5427         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
5428         * tradcpp.c (initialize_builtins): Likewise.
5429         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
5430
5431         * c-lex.h (builtin_define_with_value): Prototype.
5432         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
5433         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
5434         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
5435
5436         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
5437         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
5438         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
5439         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
5440         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
5441         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
5442         config/sparc/sol2-bi.h, config/sparc/sparc.h:
5443         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
5444         to __SIZE_TYPE__ etc from all spec strings. When this makes
5445         extra specs empty, delete them.
5446
5447 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5448
5449         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
5450         for PA8000 or generating dwarf2 call frame information.
5451         (output_call): Remove DO_FRAME_NOTES check from return pointer
5452         optimization.
5453         (following_call): Return 0 when scheduling for PA8000 or generating
5454         dwarf2 call frame information.  Revise comment.
5455
5456 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5457
5458 config/alpha:
5459         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
5460         and __IEEE_FP_INEXACT as appropriate.
5461         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
5462         (CPP_SPEC): Remove ieee defines.
5463         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
5464
5465 2002-05-14  Richard Henderson  <rth@redhat.com>
5466
5467         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
5468         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
5469
5470 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5471
5472         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
5473         (CPP_SPEC): Update.
5474         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
5475         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
5476         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
5477         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
5478         (EXTRA_SPECS): Update.
5479         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
5480         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
5481         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
5482         define TARGET_OS_CPP_BUILTINS if necessary.
5483
5484 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5485
5486         * gcc.c (cpp_options): Must pass -m* and -f* options
5487         to the front end even when only preprocessing.
5488         (cc1_options): Remove redundant -lang-c.
5489         * tradcpp.c (main): Ignore -m options.
5490 objc:
5491         * lang-specs.h: Similarly.
5492
5493 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
5494
5495         * genautomata.c (transform_3): Add code for transformation
5496         `(A,B,...)+C -> A+C,B,...'.
5497
5498 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
5499
5500         * final.c (end_final): Do not output profile_arcs constructor, when
5501         no functions are instrumented.
5502
5503 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
5504
5505         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
5506
5507 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5508
5509         * doc/install.texi: Remove special markup originally required for
5510         HTML generation with texi2html.
5511
5512 2002-05-14  Andreas Schwab  <schwab@suse.de>
5513
5514         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
5515         SELECT_SECTION.
5516         (UNIQUE_SECTION): Define to get small data correctly.
5517
5518         * varasm.c (resolve_unique_section): Add third parameter
5519         flag_function_or_data_sections and use it instead of
5520         flag_function_sections.
5521         (assemble_start_function): Pass flag_function_sections.
5522         (asm_emit_uninitialised): Pass flag_data_sections.
5523         (assemble_variable): Likewise.
5524
5525 2002-05-14  Richard Henderson  <rth@redhat.com>
5526
5527         * config/i386/i386.md: Use define_constants for unspec numbers.
5528         * config/i386/i386.c: Likewise.
5529
5530 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5531
5532         * doc/contrib.texi: Update my entry.
5533
5534 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
5535
5536         * fixinc/inclhack.def (winidss_valist): Limit applicability.
5537         * fixinc/fixincl.x: Regenerated.
5538         * fixinc/tests/base/math.h: Update.
5539         * fixinc/tests/base/testing.h: Likewise.
5540
5541 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
5542
5543         * genattr.c (gen_attr): Don't emit a comma after the last
5544         enumerator.
5545
5546 2002-05-13  Richard Henderson  <rth@redhat.com>
5547
5548         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
5549         by non-local gotos.
5550         * recog.c (peephole2_optimize): Likewise.
5551
5552 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
5553
5554         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
5555         input to O_BINARY.
5556
5557 2002-05-13  Jeffrey A Law  (law@redhat.com)
5558
5559         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
5560         Update prototype and callers.
5561         (propagate_one_insn): Stack pointer adjustments kill MEMs on
5562         the mem_set_list which reference the stack pointer, as do
5563         calls to constant functions as they may clobber outgoing
5564         argument space.
5565
5566         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
5567
5568         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
5569         (ia32_multipass_dfa_lookahead): New function.
5570
5571 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5572
5573         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
5574         (translate_options): Remove 'V'.
5575         (process_command): Similarly.
5576 doc:
5577         * invoke.texi: Remove documentation of 'V'.
5578
5579 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
5580
5581         * config/s390/linux.h: Revert 2002-04-22 changes.
5582
5583 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
5584
5585         * config/fr30/fr30.md: Only allow splits of immediate loads
5586         if the destination is a register.
5587
5588 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5589
5590         * Makefile.in (c-common.o, cppinit.o): Update.
5591         * c-common.c: Include except.h.
5592         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
5593         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
5594         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
5595         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
5596         CPP_PREDEFINES): Handle here.
5597 config:
5598         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
5599         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
5600         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
5601         TARGET_OS_CPP_BUILTINS.
5602         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
5603         (CPP_SPEC, EXTRA_SPECS): Update.
5604         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
5605         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
5606         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
5607         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
5608         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
5609 doc:
5610         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
5611         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
5612
5613 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5614
5615         * emit-rtl.c (global_rtl): Update comment.
5616         (const_double_htab, const_double_htab_hash,
5617         const_double_htab_hash, lookup_const_double): New.
5618         (const_int_htab_hash, const_int_htab_eq): Remove const
5619         qualifiers, which cause tons of warnings with RTL checking on.
5620         (gen_rtx_CONST_DOUBLE): Deleted.
5621         (const_double_from_real_value): New function - bears some
5622         resemblance to the former immed_real_const_1.
5623         (immed_double_const): Moved here from varasm.c and
5624         simplified.
5625         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
5626         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
5627         (gen_rtx): Use immed_double_const.
5628         (init_emit_once): Initialize the const_double_htab.  Use
5629         REAL_VALUE_FROM_INT where possible.  Can now use
5630         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
5631         * varasm.c (struct varasm_status): Remove x_const_double_chain.
5632         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
5633         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
5634         (init_varasm_status, mark_varasm_status): Don't touch
5635         x_const_double_chain.
5636
5637         * output.h: Delete prototype for clear_const_double_mem.
5638         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
5639         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
5640         const_double_from_real_value, not immed_real_const_1, and use
5641         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
5642         CONST_DOUBLE_ATOF.
5643         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
5644         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
5645         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
5646         (gen_rtx_REG): Second arg is unsigned.
5647
5648         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
5649         (excluded_rtx): New, return true for CONST_DOUBLE.
5650         (genmacro): Write nothing for excluded codes.
5651         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
5652         * expr.c (expand_expr): Likewise.
5653         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
5654         CONST_DOUBLE_CHAIN.
5655         * toplev.c (rest_of_compilation): Don't call
5656         clear_const_double_mem.
5657
5658         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
5659         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
5660         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
5661         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
5662         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
5663         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
5664         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
5665         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
5666
5667 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5668
5669         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
5670
5671 2002-05-12  Tom Tromey  <tromey@redhat.com>
5672
5673         * tree.h (copy_node): Don't mention TREE_PERMANENT.
5674
5675 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5676
5677         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
5678         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
5679         * gensupport.h: Prototype new routines.
5680         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
5681         use of printf.
5682         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
5683         (next_comma_elt): Use scan_comma_elt.
5684
5685         * config/i386/i386.md: Use new attribute notation to break up
5686         long lines in define_attr forms.
5687
5688 2002-05-12  Richard Henderson  <rth@redhat.com>
5689
5690         * expr.c (compress_float_constant): New.
5691         (emit_move_insn): Use it.
5692         (float_extend_from_mem): New.
5693         (init_expr_once): Initialize it.
5694         * real.c (exact_real_truncate): New.
5695
5696         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
5697         dropped into memory; penalize for size.
5698         (RTX_COSTS): FLOAT_EXTEND is free.
5699         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
5700         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
5701
5702 2002-05-12  Richard Henderson  <rth@redhat.com>
5703
5704         * profile.h (profile_info): Add missing extern to declaration.
5705         * profile.c (profile_info): Define it.
5706
5707 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5708
5709         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
5710         used for DImode and TImode.
5711
5712 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5713
5714         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
5715         fake a newline.
5716
5717 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
5718
5719         * config/rs6000/rs6000.c (rs6000_default_long_calls,
5720         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
5721         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
5722         (rs6000_override_options): Handle -m(no-)longcall.
5723         (init_cumulative_args, output_mi_thunk): Check for both
5724         longcall and shortcall attributes on the function.
5725         (rs6000_attribute_table): Add "shortcall".
5726         (rs6000_handle_longcall_attribute): Update comment.
5727         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
5728         altivec_expand_ternop_builtin): Add default clauses to switches
5729         to silence warnings.
5730
5731         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
5732         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
5733         (TARGET_OPTIONS): Add longcall and no-longcall.
5734
5735         * config/rs6000/rs6000.md (call_nonlocal_sysv,
5736         call_value_nonlocal_sysv): Split by alternatives.  One pair
5737         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
5738         the call cookie.  The other pair accepts only LR/CTR and has
5739         no restriction.
5740
5741         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
5742         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
5743         tmake_file.
5744         * config/rs6000/rs6000-c.c: New file.
5745         * config/rs6000/t-rs6000-c-rule: New file.
5746         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
5747         Prototype rs6000_pragma_longcall.
5748
5749         * doc/extend.texi: Document shortcall attribute.
5750         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
5751
5752 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5753
5754         * reorg.c (dbr_schedule): Remove unnecessary test.
5755
5756 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5757
5758         * i386.md (testsi to testqi spliters): New.
5759
5760         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
5761
5762         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
5763
5764         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
5765
5766         * basic-block.h: New flag EDGE_CAN_FALLTHRU
5767         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
5768         that can be made fallthru.
5769
5770         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
5771
5772         * cfglayout.c (cleanup_unconditional_jumps): New static function.
5773         (cfg_layout_initialize): Use it.
5774
5775 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5776
5777         * config/avr/avr.c (avr_mcu_types): Update supported devices.
5778         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
5779         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
5780
5781 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5782
5783         * dbxout.c: Fix formatting.
5784         * dependence.c: Likewise.
5785         * df.c: Likewise.
5786         * diagnostic.c: Likewise.
5787         * doloop.c: Likewise.
5788         * dominance.c: Likewise.
5789         * doschk.c: Likewise.
5790         * dwarf2asm.c: Likewise.
5791         * dwarf2out.c: Likewise.
5792         * dwarfout.c: Likewise.
5793
5794 2002-05-10  Richard Henderson  <rth@redhat.com>
5795
5796         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
5797         Convert integers constants as needed.  Replace "nwords" field with
5798         "sizeof_bb".
5799         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
5800         * function.h: Fix typo in comment.
5801         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
5802
5803 2002-05-10  Roger Sayle  <roger@eyesopen.com>
5804
5805         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
5806         into the equivalent (signed char)c > 0.
5807
5808 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
5809
5810         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
5811         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
5812         (struct prefetch_info): Fix spelling of member bytes_accessed.
5813         (emit_prefetch_instructions): Make dump messages more regular;
5814         restructure code to add more dump messages; use new macros for
5815         heuristics. (There are no code generation changes in any of this).
5816
5817 2002-05-10  David S. Miller  <davem@redhat.com>
5818
5819         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
5820         (struct rtx_def): Update unchanging flag comment.
5821         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
5822         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
5823         to be handled to INSN too.
5824         (dbr_schedule): Likewise.
5825         * resource.c (next_insn_no_annul): Likewise.
5826
5827         * cse.c (rtx_cost): Remove multiplication by power of 2 special
5828         casing.
5829
5830 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5831
5832         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
5833         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
5834         (possibly) work around broken /bin/sh.
5835
5836 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5837
5838         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
5839         . as N64/N32 libgcc_s.so subdirs.
5840
5841 2002-05-10  David S. Miller  <davem@redhat.com>
5842
5843         * config/sparc/sparc.md: Use define_constants for unspec numbers.
5844
5845         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
5846         more accurately.
5847         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
5848         comment.
5849         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
5850         * doc/rtl.texi: Document these macros more accurately.
5851         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
5852         JUMP_INSNs and CALL_INSNs.
5853         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
5854         or INSN_FROM_TARGET_P if the code is appropriate.
5855
5856 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5857
5858         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
5859         before using SYMBOL_REF_FLAG (addr).
5860
5861         * config/avr/avr-protos.h (avr_io_address_p): Declare.
5862         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
5863         Make non-static.  Update all callers.
5864         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
5865         New insns to clear/set/test a single bit in I/O address space.
5866
5867 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5868
5869         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
5870
5871 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5872
5873         * Makefile.in: Update.
5874         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
5875         builtin_define_std): New.
5876         (c_common_init): Register CPP builtins callback.
5877         * c-common.h (flag_iso, flag_undef): New.
5878         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
5879         * c-lex.c: Don't include target.h.
5880         (cb_register_builtins): Move to c-common.c.
5881         (init_c_lex): Don't register hook here.
5882         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
5883         (cpp_define, cpp_assert): Remove.
5884         * gcc.c (cc1_options): Pass -undef to front end.
5885         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
5886         (TARGET_INITIALIZER): Update.
5887         * target.h (struct cpp_reader): Don't predeclare.
5888         (struct gcc_target): Remove cpp builtin hook.
5889         * tree.c (default_register_cpp_builtins): Remove.
5890 doc:
5891         * tm.texi: Update.
5892
5893 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5894
5895         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
5896
5897 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5898
5899         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
5900         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
5901
5902 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5903
5904         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
5905         * config/sparc/libgcc-sparc-glibc.ver: New file.
5906         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5907         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
5908
5909 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5910
5911         PR target/6429
5912         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
5913         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
5914         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
5915         base multilibs.
5916         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
5917         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
5918         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5919         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5920
5921 2002-05-09  Richard Henderson  <rth@redhat.com>
5922
5923         * config/ia64/ia64.md: Use define_constants for unspec numbers.
5924         * config/ia64/ia64.c: Likewise.
5925
5926 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
5927
5928         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
5929         (save_restore_insns): Likewise.
5930         (mips_expand_prologue, mips_expand_epilogue): Update callers.
5931         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
5932
5933 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
5934
5935         * athlon.md, k6.md, pentium.md, ppro.md): New files.
5936         * i386.md: Move scheduling information into new files.
5937
5938         * i386.md (type attribute): Add "rotate" for rotate insns.
5939         (rotate insns): Set type to "rotate".
5940         (various attributes and function units): Treat rotate like shift.
5941         (pent_pair attribute): Only rotates by one bit position are
5942         pairable.
5943         (sbb insns): Explicitly set pent_pair attribute on a couple
5944         that were missing it.
5945
5946 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
5947
5948         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
5949         make sure that buffer starts on odd word address.
5950         (sh_va_arg): Skip odd fp registers when reading a double precision
5951         value.
5952
5953 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5954
5955         * tree.h (preserve_data, object_permanent_p, type_precision):
5956         Remove.
5957
5958 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5959
5960         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
5961         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
5962 doc:
5963         * cpp.texi: Update for removal of obsolete features.
5964
5965 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
5966                           Jeffrey A Law  (law@redhat.com)
5967
5968         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
5969         the DFA interface for Pentium processors.
5970         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
5971         (attr_pent_pair, ix86_pent_find_pair): Remove.
5972         (ix86_sched_reorder_pentium): Remove.
5973         (ix86_sched_reorder): Remove reordering for Pentium.
5974         * i386.md (Pentium scheduling): Rewrite using DFA description.
5975
5976 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
5977
5978         * cfganal.c (can_fallthru): Fix fast path.
5979         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
5980         with edges to the next block.
5981
5982 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
5983                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
5984
5985         * final.c (end_final): Use C trees to output data structures for profiling.
5986
5987         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
5988         (profile.o): New dependency profile.h
5989         (final.o): New dependency profile.h
5990         * profile.h: New file. New global structure profile_info.
5991         * final.h (count_edges_instrumented_now): Declare.
5992         (current_function_cfg_checksum): Declare.
5993         (function_list): New structure.
5994         (functions_head, functions_tail): New static variables.
5995         (end_final): Emits more data, removed some -ax stuff.
5996         (final): Stores function names and chcksums.
5997         * gcov-io.h (__write_gcov_string): New function.
5998         (__read_gcov_string): New function.
5999         * gcov.c (read_profile): New function.
6000         (create_program_flow_graph): Uses read_profile instead of reading
6001         da_file.
6002         (read_files): Removed da_file checking, it's done by read_profile now.
6003         * libgcc2.c (bb_function_info): New structure.
6004         (bb): New field in structure, removed some -ax stuff.
6005         (__bb_exit_func): Changed structure of da_file.
6006         * profile.c (count_edges_instrumented_now): New global variable.
6007         (current_function_cfg_checksum): New global variable.
6008         (max_counter_in_program): New global variable.
6009         (get_exec_counts): New function.
6010         (compute_checksum): New function.
6011         (instrument_edges): Sets count_edges_instrumented_now.
6012         (compute_branch_probabilities): Uses get_exec_counts instead of
6013         reading da_file.
6014         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
6015         (init_branch_prob): Removed da_file checking, done in get_exec_counts
6016         now.
6017         (end_branch_prob): Removed da_file checking, done in get_exec_counts
6018         now.
6019         * gcov.texi: Updated information about gcov file format.
6020
6021 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6022
6023         * sbitmap.c: Fix formatting.
6024         * scan.c: Likewise.
6025         * scan-decls.c: Likewise.
6026         * sched-deps.c: Likewise.
6027         * sched-ebb.c: Likewise.
6028         * sched-rgn.c: Likewise.
6029         * sched-vis.c: Likewise.
6030         * sdbout.c: Likewise.
6031         * sibcall.c: Likewise.
6032         * simplify-rtx.c: Likewise.
6033         * ssa.c: Likewise.
6034         * ssa-ccp.c: Likewise.
6035         * ssa-dce.c: Likewise.
6036         * stmt.c: Likewise.
6037         * stor-layout.c: Likewise.
6038         * stringpool.c: Likewise.
6039
6040 2002-05-09  David S. Miller  <davem@redhat.com>
6041
6042         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
6043
6044 2002-05-07  David S. Miller  <davem@redhat.com>
6045
6046         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
6047         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
6048         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
6049         library implementation clobbers the output before the inputs
6050         are fully consumed, use stack temporary for the output.
6051
6052 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
6053
6054         * config/netbsd.h (CPP_SPEC): Remove.
6055         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
6056         * config/i386/netbsd.h (CPP_SPEC): Define.
6057         * config/ns32k/netbsd.h (CPP_SPEC): Define.
6058         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
6059         * config/sparc/netbsd.h (CPP_SPEC): Define.
6060         * config/vax/netbsd.h (CPP_SPEC): Define.
6061
6062 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6063
6064         * read-rtl.c: Fix formatting.
6065         * real.c: Likewise.
6066         * recog.c: Likewise.
6067         * regclass.c: Likewise.
6068         * regmove.c: Likewise.
6069         * reg-stack.c: Likewise.
6070         * reload1.c: Likewise.
6071         * reload.c: Likewise.
6072         * resource.c: Likewise.
6073         * rtlanal.c: Likewise.
6074         * rtl.c: Likewise.
6075         * rtl-error.c: Likewise.
6076
6077 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6078
6079         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
6080         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
6081
6082 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
6083
6084         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
6085         use __SSE2__ macro instead.
6086         * config/i386/xmmintrin.h: Likewise.
6087
6088 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
6089
6090         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
6091         and use it in all invocations of these macros.  Clean up comments.
6092         * rtl.c (rtl_check_failed_flag): Add an argument for the name
6093         of the flag access macro whose check failed.
6094         * doc/rtl.texi (Flags): Document additional flag uses.
6095
6096 2002-05-08  Robert Spier <rspier@pobox.com>
6097             Neil Booth  <neil@daikokuya.demon.co.uk>
6098
6099         PR preprocessor/6521
6100         * cppfiles.c (handle_missing_header): Don't do anything
6101         different for <> includes.
6102 doc:
6103         * cppopts.texi: Update documentation for -MG.
6104
6105 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6106
6107         * cpplex.c (cpp_interpret_charconst): Truncate as well as
6108         sign-extend.
6109 doc:
6110         * cpp.texi: Clarify multichar charconst valuation.
6111
6112 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6113
6114         * doc/invoke.texi: Document -mwindiss option.
6115
6116 2002-05-08  Jason Merrill  <jason@redhat.com>
6117
6118         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
6119
6120         * dwarf2out.c (gen_type_die): Abort on broken recursion.
6121
6122         PR c++/6381
6123         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
6124         REAL_CST.
6125
6126 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
6127
6128         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
6129         little-endian multilibs to override arm/thumb multilibs.
6130         Do not build hardware floating point multilibs, nor apcs-26
6131         multilibs for the Thumb.
6132
6133 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6134
6135         PR c/6569.
6136         * varasm.c (mark_weak): New function.
6137         (merge_weak): Use it.  Do not call declare_weak.
6138         (declare_weak): Use merge_weak.
6139
6140 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6141
6142         * cse.c (dead_libcall_p): Update counts.
6143         (delete_trivially_dead_insns): Update call of dead_libcall_p.
6144
6145 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
6146
6147         * cfglayout.c (function_tail_eff_head): Rename to ...
6148         (function_footer): ... this one.
6149         (unlink_insn_chain): New functions.
6150         (label_for_bb): Only call block_label and emit debug message.
6151         (record_effective_endpoints): Actually unlink the headers and footers.
6152         (fixup_reorder_cahin): Re-insert the unlinked sequences.
6153         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
6154         * cfglayout.h (struct reorder_block_def): New fields footer/header;
6155         remove eff_head/eff_end.
6156         * rtl.h (set_first_insn): Declare.
6157         * emit-rtl.c (set_first_insn): New function.
6158
6159         * cfglayout.c (fixup_reorder_chain): Dump duplicated
6160         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6161         cfg_layout_duplicate_bb): New global function.
6162         (duplicate_insn_chain): New static function.
6163         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6164         cfg_layout_duplicate_bb): Declare.
6165         (struct reorder_block_def): Add "original" field.
6166         * emit-rtl.c (emit_copy_of_insn_after): New function.
6167         * rtl.h (emit_copy_of_insn_after): Declare.
6168
6169         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
6170         (fixup_reorder_chain): properly handle edges to exit block.
6171
6172 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6173                                Jan Hubicka  <jh@suse.cz>
6174
6175         * basic-block.h (note_prediction_to_br_prob): declare.
6176         * c-semantics.c: Inlucde predit.h
6177         (expand_stmt): predict GOTO_STMT as not taken.
6178         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
6179         (cleanup_cfg): Do not free tail_recursion_list.
6180         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
6181         (flow_delete_block): Kill predictions past end of basic block.
6182         * output.h (delete_unreachable_blocks): Declare.
6183         * predict.c (predicted_by_p, process_note_predictions,
6184         process_note_prediction, last_block_p): New function.
6185         (estimate_probability): Bypass loop on PRED_CONTINUE;
6186         do not handle noreturn heuristics; kill PRED_RETURN; add
6187         PRED_EARLY_RETURN.
6188         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
6189         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
6190         * predict.h (IS_TAKEN): New constant.
6191         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
6192         * rtl.c (NOTE_INSN_PREDICTION): New.
6193         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
6194         New macro.
6195         (insn_note): add NOTE_INSN_PREDICTION.
6196         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
6197         CFG; free tail_recursion_label_list.
6198         * stmt.c: Include predict.h;
6199         (return_prediction): New.
6200         (expand_value_return): Use it.
6201         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
6202
6203 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
6204
6205         * config/mips/mips.md: Name the unspecs with define_constant.
6206         (*HILO_delay): Rename to 'hilo_delay' (no star).
6207         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
6208         (reload_outdi, reload_outsi): Likewise.
6209
6210 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
6211
6212         * toplev.c: Fix formatting.
6213
6214 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
6215
6216         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
6217         * configure.in (ac_rtlflag_checking): New.
6218         * doc/install.texi (--enable-checking): Document RTL flag checking.
6219
6220 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6221
6222         * c-common.c (c_common_init): Set options->unsigned_wchar.
6223         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
6224         group target dependencies.
6225         (init_builtins, cpp_handle_option): Update.
6226         * cpplex.c (cpp_interpret_charconst): Update.
6227         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
6228         signed_char to unsigned_char, group target dependencies.
6229         * defaults.h (WCHAR_UNSIGNED): Remove.
6230         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
6231 config:
6232         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
6233         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
6234         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
6235         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
6236         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
6237 doc:
6238         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
6239
6240 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6241
6242         * fixinc/inclhack.def (windiss_math1): New fix.
6243         (windiss_math2): Likewise.
6244         (windiss_valist): Likewise.
6245         * fixinc/fixincl.x: Regenerated.
6246
6247 2002-05-07  Andreas Jaeger  <aj@suse.de>
6248
6249         * genautomata.c (output_internal_min_issue_delay_func): Add
6250         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
6251         (output_internal_trans_func): Likewise.
6252
6253 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
6254
6255         * pa.c (hppa_profile_hook): Use force_reg to get the address
6256         of the profile hook into an appropriate pseudo register.
6257
6258 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6259
6260         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
6261         (LINK_START_SPEC): Handle it.
6262         (LINK_OS_SPEC): Likewise.
6263         (CPP_SPEC): Likewise.
6264         (STARTFILE_SPEC): Likewise.
6265         (LIB_SPEC): Likewise.
6266         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
6267         all platforms.
6268         (CRTSAVRES_DEFAULT_SPEC): New macro.
6269         (LIB_WINDISS_SPEC): New macro.
6270         (CPP_OS_WINDISS_SPEC): Likewise.
6271         (STARTFILE_WINDISS_SPEC): Likewise.
6272         (ENDFILE_WINDISS_SPEC): Likewise.
6273         (LINK_START_WINDISS_SPEC): Likewise.
6274         (LINK_OS_WINDISS_SPEC): Likewise.
6275         * config/rs6000/windiss.h: New file.
6276
6277 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
6278
6279         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
6280
6281 2002-05-06  David S. Miller  <davem@redhat.com>
6282
6283         * config/sparc/sparc.md (shift insns): Do not mask off
6284         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
6285         take care of it.
6286
6287 2002-05-06  Richard Henderson  <rth@redhat.com>
6288
6289         PR c++/6212
6290         * expr.c (highest_pow2_factor_for_type): New.
6291         (expand_assignment): Use it.
6292
6293 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
6294
6295         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
6296         unspec_volatile.
6297         ("altivec_mfvscr"): Same.
6298
6299 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6300
6301         * rtl.h (struct rtx_def): Update comments.
6302         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
6303         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
6304         RTL_FLAG_CHECK macros with list of expected RTL codes.
6305         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
6306         (rtl_check_failed_flag): New.
6307         * reload1.c (reload): Use REG macro before changing rtx to MEM.
6308         (reload_cse_noop_set_p): Check rtx code before using access macro.
6309         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
6310         before using access macro.
6311
6312 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6313
6314         * doc/rtl.texi (Flags): Update to reflect current usage.
6315
6316 2002-05-06  Roger Sayle  <roger@eyesopen.com>
6317
6318         PR opt/3995
6319         * fold-const.c (sign_bit_p): New function.
6320         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
6321         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
6322         Reapply fold when converting (A & C) == C into (A & C) != 0.
6323         (fold_binary_op_with_conditional_arg): Fix typo in comment.
6324
6325 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6326
6327         * c-common.c (warn_multichar): New.
6328         (c_common_init): Set CPP's warn_multichar.
6329         * c-common.h (warn_multichar): New.
6330         * c-decl.c (warn_multichar): Remove.
6331         * c-lex.c (lex_charconst): Update.
6332         * c-tree.h (warn_multichar): Remove.
6333         * cppexp.c (eval_token): Sign-extend charconst value.
6334         * cppinit.c (cpp_create_reader): Set warn_multichar.
6335         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
6336         each character.  Update prototype.  Sign-extend the result.
6337         * cpplib.h: Fix conditions.
6338         (struct cpp_options): Add new warning flag.
6339         (cpp_interpret_charconst): Update prototype.
6340 doc:
6341         * cpp.texi: Update documentation.
6342
6343 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
6344
6345         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
6346         Fix typo in usage of allof instead of unit.
6347
6348 2002-05-06  Richard Henderson  <rth@redhat.com>
6349
6350         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
6351         and any jump or call for IN.
6352
6353 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
6354
6355         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
6356         -msse2.
6357         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
6358
6359 2002-05-06  Roger Sayle  <roger@eyesopen.com>
6360
6361         * fold-const.c (lshift-double): Cast the high word to an unsigned
6362         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
6363         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
6364         avoid compiler warning.  (fold): Remove redundant code from
6365         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
6366
6367 2002-05-06  Jeff Law  <law@redhat.com>
6368
6369         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
6370         * pa.c (pa_adjust_cost): Remove all true dependency cost
6371         adjustments.  Also remove support for non-DFA scheduling.
6372         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
6373         to adjust true dependency costs.  Update various comments.
6374         (7100lc, 7200, 7300 scheduling): Simplify by combining the
6375         FP ALU & MPY units into a single unit.
6376
6377 2002-05-06  Catherine Moore  <clm@redhat.com>
6378
6379         * config/v850/v850.c (compute_register_save_size): Make sure
6380         to count all of the registers that will be saved.
6381
6382 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6383
6384         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
6385
6386 2002-05-06  David S. Miller  <davem@redhat.com>
6387
6388         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
6389         allow result to overlap input operands in memory.
6390
6391 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6392
6393 doc:
6394         * cpp.texi: Update multichar charconst docs.
6395
6396 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6397
6398         * cpplex.c (cpp_interpret_charconst): Sign-extend each
6399         character.  Don't ignore excess characters.  Treat
6400         multicharacter character constants as signed.
6401         (cpp_parse_escape): Clarify diagnostic.
6402
6403 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
6404
6405         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
6406         use add instead of shift.
6407         (ashldi3_sp64): Likewise.
6408         (ashlsi3_const1, ashldi3_const1): Remove.
6409         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
6410         * config/sparc/sparc.c (const1_operand): New.
6411
6412 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
6413
6414         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
6415
6416 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
6417
6418         PR target/6561
6419         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
6420
6421 2002-05-05  Richard Henderson  <rth@redhat.com>
6422
6423         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
6424         memory latency adjustments.
6425         (alpha_variable_issue): Remove.
6426         (alpha_use_dfa_pipeline_interface): New.
6427         (alpha_multipass_dfa_lookahead): New.
6428         * config/alpha/alpha.md: Remove define_function_unit scheduling;
6429         include new dfa scheduling.
6430         (attr type): Add none.
6431         (blockage): Use it.
6432         * config/alpha/ev4.md: New.
6433         * config/alpha/ev5.md: New.
6434         * config/alpha/ev6.md: New.
6435
6436 2002-05-05  David S. Miller  <davem@redhat.com>
6437
6438         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
6439
6440 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
6441
6442         * cse.c: Fix formatting.
6443         * emit-rtl.c: Likewise.
6444
6445 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
6446
6447         * genautomata.c (initiate_states): Add additional guard to
6448         initialize `units_array'.
6449
6450 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
6451
6452         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
6453         process_unit_to_form_the_same_automaton_unit_lists,
6454         form_the_same_automaton_unit_lists
6455         check_unit_distributions_to_automata): New prototypes and
6456         functions.
6457         (check_automata): Rename it into `check_automata_insn_issues'.
6458         (unit_decl): New fields `the_same_automaton_unit' and
6459         `the_same_automaton_message_reported_p'.
6460         (unit_decl_t): New typedef.
6461         (the_same_automaton_lists): New gloval variable.
6462         (unit_regexp, unit_set_el, units_array, units_cmp,
6463         output_get_cpu_unit_code_func): Use the typedef.
6464         (evaluate_max_reserv_cycles): Increment
6465         `description->max_insn_reserv_cycles'.
6466         (initiate_states): Don't increment `max_cycles_num'.
6467         (transform_insn_regexps): Move code around transformation of
6468         regexps from `generate'.
6469         (generate): Remove call of `transform_insn_regexps'.
6470         (expand_automata): Call `transform_insn_regexps' and
6471         `check_unit_distributions_to_automata'.  Check errors before
6472         `generate'.
6473
6474         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
6475         automaton `ultrasparc3_1'.
6476
6477 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6478
6479         * c-common.c (c_common_init): Set up CPP arithmetic.
6480         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
6481         something reasonable for the host.
6482         (sanity_checks): Add checks.
6483         (cpp_read_main_file): Call sanity_checks() from here...
6484         (cpp_post_options): ... not here.
6485         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
6486         * cpplib.h (struct cpp_options): New member int_precision.
6487
6488 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6489
6490         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
6491
6492 2002-05-04  David S. Miller  <davem@redhat.com>
6493
6494         * config/sparc/linux.h, config/sparc/linux64.h
6495         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
6496
6497         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
6498         more RTX codes.
6499         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
6500
6501         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
6502         of SETs.
6503
6504 2002-05-05  Tim Josling  <tej@melbpc.org.au>
6505
6506         * treelang; New directory for new sample language treelang.
6507
6508 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6509
6510         * Makefile.in (c-lex.o): Update.
6511         * c-lex.c: Include target.h.
6512         (cb_register_builtins): New.
6513         (init_c_lex): Set builtins callback.
6514         * c-lex.h (cpp_define, cpp_assert): New prototypes.
6515         * cppinit.c (init_builtins): Use callback, including for
6516         GXX_WEAK.
6517         * cpplib.h (struct cpp_callbacks): New member.
6518         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
6519         (TARGET_INITIALIZER): Update.
6520         * target.h (struct gcc_target): New hook.
6521         * tree.c (default_register_cpp_builtins): New.
6522         * tree.h (default_register_cpp_builtins): New.
6523 doc:
6524         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
6525
6526 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6527
6528         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
6529         (cpp_post_options): Move sanity checks to...
6530         (sanity_checks): New.
6531         * cpplex.c (maybe_read_ucs): Fix prototype.
6532         (parse_string, cpp_parse_escape): Cast for %c format specifier.
6533         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
6534         if necessary.
6535
6536 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
6537
6538         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
6539         builtins.  Use V2DI patterns instead of TI for logical operations.
6540         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
6541         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
6542         (ix86_expand_builtins): Change the pattern used for movntdq.
6543         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
6544         sse2_nandv2di3): New patterns.
6545         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
6546         on operands.
6547         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
6548         (cvtdq2pd): Correct mode on operand 1.
6549         (sse2_umulsidi3): Describe without unspec.
6550         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
6551         machine modes.
6552         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
6553         (ashlv2di3): Likewise, from sse2_ashlv2di3.
6554         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
6555         ashlv4si3, ashlv2di3): Use SImode for shift count.
6556         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
6557         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
6558         New patterns.
6559         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
6560         New typedefs.
6561         (__m128i, __m128d): New macros.
6562         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
6563         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
6564         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
6565         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
6566         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
6567         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
6568         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
6569         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
6570         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
6571         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
6572         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
6573         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
6574         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
6575         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
6576         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
6577         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
6578         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
6579         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
6580         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
6581         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
6582         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
6583         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6584         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
6585         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6586         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
6587         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
6588         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
6589         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
6590         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
6591         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
6592         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
6593         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6594         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
6595         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
6596         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
6597         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
6598         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
6599         functions.
6600         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
6601         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
6602
6603 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6604
6605         * dwarf2out.c: Fix formatting.
6606         * varasm.c: Likewise.
6607
6608 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
6609
6610         PR c/6543
6611         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
6612         clobber and use result as temporary value.
6613
6614 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
6615
6616         * expr.c (force_operand): Use expand_simple_* to handle more
6617         cases.
6618
6619 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6620
6621         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
6622         and sign-extension.
6623         (lex_charconst): Update for change in prototype of
6624         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
6625         appropriately.
6626         * cpphash.h (BITS_PER_CPPCHAR_T): New.
6627         * cppinit.c (cpp_create_reader): Initialize them for no
6628         change in semantics.
6629         (cpp_post_options): Add sanity checks.
6630         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
6631         and truncation issues.  Calculate in type cppchar_t.
6632         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
6633         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
6634         run-time dependent precision correctly.  Return whether the
6635         result is signed or not.
6636         * cpplib.c (dequote_string): Use cppchar_t; update.
6637         * cpplib.h (cppchar_signed_t): New.
6638         struct cpp_options): New precision members.
6639         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
6640         * cppexp.c (eval_token): Update.
6641
6642 2002-05-03  David S. Miller  <davem@redhat.com>
6643
6644         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
6645         * config/sparc/sparc.c (sparc_rtx_costs): New function
6646         implementing RTX_COSTS and CONST_COSTS.
6647         * config/sparc/sparc.h (CONST_COSTS): Delete.
6648         (RTX_COSTS_CASES): Define.
6649         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
6650         the work.
6651
6652         * config/sparc/sparc.md (DFA schedulers): Split out...
6653         * config/sparc/cypress.md, config/sparc/hypersparc.md,
6654         config/sparc/sparclet.md, config/sparc/supersparc.md,
6655         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
6656
6657         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
6658         checks on it, always defined for Sparc.
6659
6660         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
6661         Tweak, and add more detailed comments.
6662
6663 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
6664
6665         * Re-apply patch accidentally reverted with
6666         DFA scheduler merge: remove all rules and variables to slurp
6667         source files out of libiberty and rebuild them with HOST_CC.
6668         ($(HOST_PREFIX_1)varray.o): New rule.
6669         (genattrtab rule): Word wrap.
6670
6671 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6672
6673         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
6674         (CPP_SUBTARGET_SPEC): Define.
6675         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
6676         cpp_subtarget specs.
6677         (CPP_SPEC): Redefine to include %(cpp_subtarget).
6678
6679 2002-05-03  David S. Miller  <davem@redhat.com>
6680
6681         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
6682         * target.h (struct gcc_target): Delete cycle_display member.
6683
6684         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
6685         (rtx_needs_barrier): Delete reference to cycle_display unspec.
6686         (ia64_sched_reorder2): Mention need for cycle display handling
6687         once such notes exist.
6688
6689 2002-05-03  Richard Henderson  <rth@redhat.com>
6690
6691         * real.c (etoasc): Strip most trailing zeros for clarity.
6692         * sched-vis.c: Include real.h.
6693         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
6694         * Makefile.in (sched-vis.o): Add real.h.
6695
6696 2002-05-03  David S. Miller  <davem@redhat.com>
6697
6698         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
6699         no longer needed.
6700
6701 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
6702
6703         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
6704         when we get an out of range literal.
6705         (altivec_expand_ternop_builtin): Same.
6706         (altivec_expand_unop_builtin): Same.
6707         (altivec_expand_builtin): Same, for dss.
6708         (altivec_expand_builtin): Use trees instead of rtl when
6709         determining literal argument validity.
6710
6711 2002-05-03  David S. Miller  <davem@redhat.com>
6712
6713         Delete cycle display scheduling hook.
6714         * config/ia64/ia64.c (ia64_cycle_display,
6715         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
6716         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
6717         and use emit_insn_before instead of ia64_emit_insn_before.
6718         * config/ia64/ia64.md (unspec usage): Delete cycle display.
6719         (cycle_display): Delete insn pattern.
6720         * config/sparc/sparc.md (unspec usage): Delete cycle display.
6721         (cycle_display): Delete insn pattern.
6722         * config/sparc/sparc.c (sparc_cycle_display,
6723         TARGET_SCHED_CYCLE_DISPLAY): Delete.
6724         * doc/md.texi (cycle_display): Don't mention.
6725         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
6726
6727 2002-05-03  Richard Henderson  <rth@redhat.com>
6728
6729         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
6730         * recog.h: Declare them.
6731
6732         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
6733         * config/sparc/sparc.md: Use store_data_bypass_p instead.
6734         * config/sparc/sparc-protos.h: Update.
6735
6736 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6737
6738         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
6739         -D__arch64__.  Add -D_LP64.
6740         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
6741         from sparc.h.
6742         (CPP_ARCH64_SPEC): Likewise.
6743         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
6744         (NO_BUILTIN_SIZE_TYPE): Undef.
6745
6746 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
6747
6748         * genautomata.c (min_issue_delay_pass_states): Change return type
6749         in the prototype.
6750         (min_issue_delay_pass_states): Change the algorithm.
6751         (min_issue_delay): Set up min_insn_issue_delay for the state.
6752         (output_min_issue_delay_table): Interchange the nested loops and
6753         and initiate min_insn_issue_delay for states.
6754
6755 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
6756
6757         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
6758         jump is simplejump.
6759
6760 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
6761
6762         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
6763         sequence.
6764
6765 2002-05-03  Richard Henderson  <rth@redhat.com>
6766
6767         PR opt/6534
6768         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
6769         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
6770         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
6771         code before JUMP, not EARLIEST.
6772
6773 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6774
6775         * c-format.c (check_format_info_main): Don't check for presence of
6776         parameter for * width until after operand number has been read,
6777         and only check for it if format parameters are available.
6778         Fixes PR c/6547.
6779
6780 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6781
6782         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
6783         (LINK_SPEC): Undef before defining.
6784
6785 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6786
6787         PR preprocessor/6489
6788         * tradcpp.c (fixup_newlines): New.
6789         (main, finclude): Use it.
6790
6791 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
6792
6793         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
6794         * config/mips/mips.c (mips_unique_section): Strip encoding from
6795         decl name.
6796
6797 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6798
6799         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
6800         mode.
6801
6802 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6803
6804         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
6805         (Specific): Removed buildstats references.
6806         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
6807         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
6808         Accomodate Solaris versions beyond 8.
6809         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
6810         (Specific, *-*-solaris2.8): Removed, obsolete.
6811
6812 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6813
6814         PR target/6542
6815         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
6816         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
6817         fill leaf_reg_remap with identity.
6818         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
6819
6820 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6821
6822         * config/h8300/crti.asm: Remove trailing spaces.
6823         * config/h8300/h8300.c: Likewise.
6824         * config/h8300/lib1funcs.asm: Likewise.
6825
6826 2002-05-02  Jason Merrill  <jason@redhat.com>
6827
6828         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
6829         * c-decl.c (c_init_decl_processing): Use it.
6830         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6831         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
6832         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
6833
6834 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6835
6836         * regrename.c: Fix formatting.
6837         * tree.c: Likewise.
6838
6839 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
6840
6841         * i386.md (attribute memory): Handle compares properly.
6842
6843 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
6844
6845         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
6846         to none.
6847
6848 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6849
6850         * function.c: Fix formatting.
6851
6852 2002-05-02  Jan Hubicka  <jh@suse.cz>
6853
6854         * haifa-sched.c (schedule_insn): Print table of instructions and
6855         reservations.
6856         (sched_block): Do not print ready list at verbosity level 1.
6857         * sched-vis.c (print_insn): Make global.
6858         * sched-ebb.c (ebb_print_insn): Rename from...
6859         (print_insn): ... this one.
6860         * sched-int.h (print_insn): Declare
6861
6862 2002-05-02  Richard Henderson  <rth@redhat.com>
6863
6864         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
6865         emitted by cycle_display.
6866
6867 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
6868
6869         * doc/install.texi (*-*-freebsd*): Update to latest status.
6870
6871 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
6872
6873         PR target/6540
6874         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
6875         * config/float-sparc.h: Assume 128-bit long double if
6876         __LONG_DOUBLE_128__ is defined.
6877
6878 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6879
6880         * genattrtab.c (write_function_unit_info): Add a dummy element
6881         when num_units == 0.
6882
6883 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6884
6885         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
6886         TYPE_MODE (double_type_node) instead of DFmode.
6887
6888 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
6889
6890         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
6891         jumps post reload.
6892         * toplev.c (rest_of_compilation): Revert Richard's patch.
6893
6894 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6895
6896         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
6897
6898 2002-05-02  Catherine Moore  <clm@redhat.com>
6899
6900         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
6901
6902 2002-05-02  Kazu Hirata  <kazu@hxi.com>
6903
6904         * combine.c: Fix comment typos.
6905         * expr.c: Likewise.
6906         * genautomata.c: Likewise.
6907         * stmt.c: Likewise.
6908         * tree.h: Likewise.
6909
6910 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6911
6912         * doc/install.texi: State GNAT version requirements.
6913
6914 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
6915
6916         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
6917         of the frame pointer or arg pointer register which strict register
6918         checking is not enabled.
6919
6920 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
6921
6922         * gcc.dg/altivec-8.c: New.
6923
6924         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
6925         PRE_INC and PRE_DEC for altivec modes.
6926
6927 2002-05-01  Bruce Korb  <bkorb@gnu.org>
6928
6929         * fixinc/check.tpl(set-writable): make sure the function exists first
6930         * fixinc/inclhack.def(alpha_assert): fix test_text
6931         * fixinc/tests/base/assert.h: add in missing result
6932
6933 2002-05-01  Jeff Law  <law@redhat.com>
6934
6935         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
6936         'T' constraint.
6937
6938 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
6939
6940         * dbxout.c (dbxout_type): Emit size information for range types,
6941         as well, but only when using GDB extensions.
6942
6943 2002-05-01  Richard Henderson  <rth@redhat.com>
6944
6945         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
6946         target-independent gnu binutils date test.
6947
6948 2002-05-01  Richard Henderson  <rth@redhat.com>
6949
6950         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
6951         info before expunging the block.
6952
6953 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6954
6955         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
6956         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
6957         -M -or -MM is in effect.
6958
6959 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
6960
6961         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
6962         A29k configurations.
6963         * doc/install.texi: Update to match.
6964
6965 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6966
6967         PR bootstrap/6514
6968         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
6969         for duplicates. Always loop over whole list.
6970
6971 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6972
6973         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
6974
6975 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6976
6977         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
6978         support routines.
6979
6980 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6981
6982         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
6983
6984 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
6985
6986         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
6987         (nabs_nopower): Same.
6988         (floatdisf2): New pattern.
6989         (absdi2): Convert to define_insn_and_split.
6990         (nabsdi2): Same.
6991         (trunctfsf2): Same.
6992         (floatditf2): Same.
6993         (floatsitf2): Same.
6994         (fix_trunctfdi2): Same.
6995         (fix_trunctfsi2): Same.
6996
6997 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
6998
6999         * doc/install.texi: Update Texinfo version requirement
7000         documentation.
7001
7002 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7003
7004         PR target/6512, PR target/5628
7005         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
7006         when memory is not aligned.
7007         (movdf_insn_v9only_vis): Likewise.
7008         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
7009         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
7010         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
7011
7012 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
7013
7014         * gcc.dg/altivec-7.c: New.
7015
7016         * config/rs6000/altivec.h: Cleanup.
7017
7018 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
7019
7020         * doc/invoke.texi (Option Summary): Add -mvrsave=.
7021         (RS/6000 and PowerPC Options): Document -mvrsave=.
7022
7023         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
7024         (rs6000_altivec_vrsave_string): Same.
7025         (rs6000_override_options): Call rs6000_parse_vrsave_option.
7026         (rs6000_parse_vrsave_option): New.
7027         (rs6000_stack_info): Only generate vrsave instructions when
7028         TARGET_ALTIVEC_VRSAVE.
7029
7030         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
7031         (rs6000_altivec_vrsave_string): Define extern.
7032         (rs6000_altivec_vrsave): Same.
7033         (TARGET_ALTIVEC_VRSAVE): New.
7034
7035 2002-04-30  Richard Henderson  <rth@redhat.com>
7036
7037         PR opt/6516
7038         * toplev.c (rest_of_compilation): Don't run cross-jump before
7039         bb-reorder.
7040
7041 2002-04-30  Tom Rix  <trix@redhat.com>
7042
7043         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
7044         check which_alternative.
7045
7046 2002-04-30  Kazu Hirata  <kazu@hxi.com>
7047
7048         * cpplex.c: Fix comment formatting.
7049         * function.c: Likewise.
7050         * integrate.c: Likewise.
7051         * regrename.c: Likewise.
7052         * sibcall.c: Likewise.
7053         * simplify-rtx.c: Likewise.
7054         * tree-inline.c: Likewise.
7055
7056 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7057
7058         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
7059         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
7060         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
7061         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
7062         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
7063         * pa/x-ada: New file.  Define ADA_CFLAGS.
7064
7065 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
7066
7067         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
7068         from MMIX_LAST_REGISTER_FILE_REGNUM.
7069         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
7070         (struct machine_function): New member highest_saved_stack_register
7071         previously static variable in mmix.c.
7072         (MACHINE_DEPENDENT_REORG): Define.
7073         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
7074         (MMIX_OUTPUT_REGNO): New.
7075         (mmix_target_asm_function_prologue): Move calculation of last used
7076         saved-stack-register into...
7077         (mmix_machine_dependent_reorg): New function.  Update to also handle
7078         !TARGET_ABI_GNU.
7079         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
7080         register names, simplify somewhat by new variable regno.
7081         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
7082         register.
7083         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
7084         emitting register names.
7085         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
7086         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
7087         Remove fixed FIXME.
7088         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
7089         Declare.
7090
7091         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
7092
7093 2002-04-30  Richard Henderson  <rth@redhat.com>
7094
7095         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
7096         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
7097         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
7098         emit_tfmode_cvt): New.
7099         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
7100         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
7101         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
7102         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
7103         * config/sparc/sparc-protos.h: Update.
7104
7105 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
7106
7107         * install.texi (Final install): Add to the list of info to include
7108         in a report of a successful bootstrap, and add link to 3.1 list.
7109
7110 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
7111
7112         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
7113         (mode): Add vector modes
7114         (i387): Kill attribute.
7115         (unit): New attribute.
7116         (length_immediate): Grok new types.
7117         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
7118         (modrm): Use "unit".
7119         (memory): Handle MMX/SSE properly.
7120         (scheduling descriptions): Kill uses of fop1.
7121         (sse, mmx, fp patterns): Set type and mode properly.
7122
7123 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
7124
7125         * pa.c (override_options): Default to PA8000 scheduling.
7126         * doc/invoke.texi (HP-PA options): Mention newly added 7300
7127         scheduling parameter.
7128
7129         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
7130         handling of double precision multiplies.
7131
7132         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
7133         fpdiv and fpsqrt instructions.
7134         (7200 & 7300 scheduling): Fix typo in handling of
7135         store-load and store-store penalties.
7136
7137 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7138
7139         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
7140         mips.  Add two missing commas.
7141
7142 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
7143
7144         * doc/contrib.texi (Contributors): Update Paolo Carlini's
7145         and Benjamin Kosnik's entries.
7146
7147 2002-04-29  David S. Miller  <davem@redhat.com>
7148
7149         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
7150         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
7151         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
7152         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7153
7154 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7155
7156         * combine.c (find_split_point): Use gen_int_mode.
7157
7158 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
7159
7160         Merging code from dfa-branch:
7161
7162         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
7163
7164         * genautomata.c (output_reserv_sets): Fix typo.
7165
7166         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
7167
7168         * genautomata.c (output_reserv_sets): Remove
7169         next_cycle_output_flag.
7170
7171         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
7172
7173         * sched-rgn.c (init_ready_list): Make the DFA code handle
7174         USE/CLOBBER insns in the same way as the traditional
7175         scheduler.
7176         (new_ready): Similarly..
7177
7178         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
7179
7180         * haifa-sched.c (schedule_block): Change the DFA state only after
7181         issuing insn.
7182
7183         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
7184
7185         * pa.c (hppa_use_dfa_pipeline_interface): New function.
7186         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
7187         (override_options): Add PA7300 scheduling support.
7188         (pa_adjust_cost): Update various comments.  Properly
7189         handle anti and output dependencies when using the
7190         DFA scheduler.
7191         (pa_issue_rate): Add PA7300 scheduling support.
7192         (pa_can_combine_p): Call extract_insn before calling
7193         constrain_operands (taken from mainline tree).
7194         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
7195         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
7196         descriptions using DFA descriptions.  Add PA7300
7197         scheduling support.
7198
7199         2002-03-30  David S. Miller  <davem@redhat.com>
7200
7201         Add UltraSPARC-III DFA scheduling support.
7202         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
7203         Update FP conditional move on register insn patterns to use it, as
7204         appropriate.
7205         (define_attr cpu): Add ultrasparc3.
7206         (define_attr us3load_type): New, update integer load patterns to
7207         set it, as appropriate.
7208         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
7209         (rest): Add UltraSPARC3 scheduling description.
7210         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
7211         (PROCESSOR_ULTRASPARC3): New.
7212         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
7213         ({ASM,CPP}_CPU_SPEC): Likewise.
7214         (REGISTER_MOVE_COST): Likewise.
7215         (RTX_COSTS): Likewise.
7216         * config/sparc/sparc.c (sparc_override_options,
7217         sparc_initialize_trampoline, sparc64_initialize_trampoline,
7218         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
7219         sparc_issue_rate): Likewise.
7220         * config/sparc/sol2.h: Likewise.
7221         * config/sparc/sol2-sld-64.h: Likewise.
7222         * config/sparc/linux64.h: Likewise.
7223
7224         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
7225
7226         * doc/md.texi: Add comments about usage the latency time for the
7227         different dependencies and about case when two or more conditions
7228         in different define_insn_reservations returns TRUE for an insn.
7229
7230         * doc/md.texi: Add reference for automaton based pipeline
7231         description.
7232
7233         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
7234
7235         * doc/passes.texi: Add missed information about genattrtab.
7236
7237         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
7238
7239         * genautomata.c (output_automata_list_transition_code): Check
7240         automata_list on NULL.
7241
7242         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
7243
7244         * genautomata.c (output_insn_code_cases,
7245         output_automata_list_min_issue_delay_code,
7246         output_automata_list_transition_code,
7247         output_automata_list_state_alts_code): Comment the functions.
7248
7249         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
7250
7251         * genautomata.c (automata_list_el_t): New typedef.
7252         (get_free_automata_list_el,free_automata_list_el,
7253         free_automata_list, automata_list_hash, automata_list_eq_p,
7254         initiate_automata_lists, automata_list_start, automata_list_add,
7255         automata_list_finish, finish_automata_lists,
7256         output_insn_code_cases, output_automata_list_min_issue_delay_code,
7257         output_automata_list_transition_code,
7258         output_automata_list_state_alts_code, add_automaton_state,
7259         form_important_insn_automata_lists): New functions and prototypes.
7260         (insn_reserv_decl): Add members important_automata_list and
7261         processed_p.
7262         (ainsn): Add members important_p.
7263         (automata_list_el): New structure.
7264         (first_free_automata_list_el, current_automata_list,
7265         automata_list_table): New global variables.
7266         (create_ainsns): Initiate member important_p.
7267         (output_internal_min_issue_delay_func): Generate the switch and
7268         call output_insn_code_cases.
7269         (output_internal_trans_func, output_internal_state_alts_func):
7270         Ditto.
7271         (generate): Call initiate_automata_lists.
7272         (automaton_states): New global variable.
7273         (expand_automata): Call form_important_insn_automata_lists.
7274         (write_automata): Call finish_automata_lists.
7275
7276         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7277
7278         * genautomata.c (add_excls, add_presence_absence): Check that
7279         cpu units in the sets belong the same automaton.
7280
7281         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
7282         about that cpu units in the sets belong the same automaton.
7283
7284         * doc/md.texi: Ditto.
7285
7286         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
7287                     Nitin Gupta  <niting@noida.hcltech.com>
7288
7289         * config/sh/sh.c (sh_use_dfa_interface): New function.
7290
7291         (sh_issue_rate): New Function.
7292         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
7293         TARGET_SCHED_ISSUE_RATE: define.
7294
7295         * config/sh/sh.md: Add DFA based pipeline description for SH4.
7296
7297         (define_attr insn_class): New attribute used for DFA
7298          scheduling.
7299         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
7300         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
7301          cmpeqdi_t): Likewise.
7302
7303         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
7304          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
7305          ex_group.
7306         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
7307
7308         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7309
7310         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
7311         break.
7312
7313         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7314
7315         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
7316         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
7317         necessary.
7318         (output_dfa_start_func): Initiate new variable insn_codes_length,
7319         (write_automata): Output definition of the new variable.
7320
7321         2001-10-02  David S. Miller  <davem@redhat.com>
7322
7323         * haifa-sched.c (advance_one_cycle): New function.
7324         (schedule_block): Use it.
7325         (queue_to_ready): Use it, and also make sure to advance the DFA
7326         state on all stall cycles, not just those where insn_queue links
7327         are found.
7328
7329         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
7330
7331         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
7332         non-zero if the highest-priority instruction could be scheduled.
7333         (choose_ready): Remove last argument from max_issue call.
7334
7335         2001-09-28  David S. Miller  <davem@redhat.com>
7336
7337         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
7338         ultrasparc and 3 for other multi-issue sparcs.
7339
7340         2001-09-27  David S. Miller  <davem@redhat.com>
7341
7342         * config/sparc/sparc.md (cycle_display): New pattern.
7343         * config/sparc/sparc.c (sparc_cycle_display): New.
7344         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
7345
7346         2001-09-25  David S. Miller  <davem@redhat.com>
7347
7348         Convert all of Sparc scheduling to DFA
7349         * config/sparc/sparc.md: Kill all define_function_unit
7350         directives and replace with DFA equivalent.
7351         * config/sparc/sparc.c (ultrasparc_adjust_cost,
7352         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
7353         ultra_fpmode_conflict_exists, ultra_find_type,
7354         ultra_build_types_avail, ultra_flush_pipeline,
7355         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
7356         ultrasparc_variable_issue, ultrasparc_sched_init,
7357         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
7358         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
7359         ultra_cur_hist, ultra_cycles_elapsed): Kill.
7360         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
7361         ultrasparc_store_bypass_p): New.
7362         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
7363         Declare.
7364
7365         2001-09-24  David S. Miller  <davem@redhat.com>
7366
7367         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
7368         ready->vec[foo] not ready[foo].
7369
7370         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
7371
7372         * doc/md.texi: Correct examples for define_insn_reservations
7373         `mult' and `div'.
7374
7375         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
7376
7377         * genautomata.c (create_automata): Print message about creation of
7378         each automaton.
7379         (generate): Remove printing meease about creation of
7380         automata.
7381
7382         2001-09-05  David S. Miller  <davem@redhat.com>
7383
7384         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
7385         * config/sparc/linux64.h: Likewise.
7386
7387         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
7388
7389         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
7390         schedule_block, sched_init, sched_finish): Add missed calls of
7391         use_dfa_pipeline_interface.
7392
7393         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
7394         Ditto.
7395
7396         * sched-vis.c (get_visual_tbl_length): Ditto.
7397
7398         2001-08-27  Richard Henderson  <rth@redhat.com>
7399
7400         * genattr.c (main): Emit state_t even when not doing scheduling.
7401
7402         2001-08-27  Richard Henderson  <rth@redhat.com>
7403
7404         * genautomata.c (expand_automata): Always create a description.
7405
7406         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
7407
7408         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
7409         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
7410         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
7411         RTL constructions.
7412
7413         * genattr.c (main): New variable num_insn_reservations.  Increase
7414         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
7415         pipeline hazard recognizer interface.
7416
7417         * genattrtab.h: New file.
7418
7419         * genattrtab.c: Include genattrtab.h.
7420         (attr_printf, check_attr_test, make_internal_attr,
7421         make_numeric_value): Move protypes into genattrtab.h.  Define them
7422         as external.
7423         (num_dfa_decls): New global variable.
7424         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
7425         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
7426         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
7427         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
7428
7429         * genautomata.c: New file.
7430
7431         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
7432
7433         * sched-int.h: (curr_state): Add the external definition for
7434         automaton pipeline interface.
7435         (haifa_insn_data): Add comments for members blockage and units.
7436
7437         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7438         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7439         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7440         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7441         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7442         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7443         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
7444         macros.
7445         (TARGET_SCHED): Use the new macros.
7446
7447         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
7448         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
7449         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
7450         dfa_bubble): New members in gcc_target.sched.
7451
7452         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
7453         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
7454         (insn_queue): Redefine it as pointer to array.
7455         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
7456         INSN_QUEUE_SIZE.
7457         (max_insn_queue_index_macro_value): New variable.
7458         (curr_state, dfa_state_size, ready_try): New varaibles for
7459         automaton interface.
7460         (ready_element, ready_remove, max_issue): New function prototypes
7461         for automaton interface.
7462         (choose_ready): New function prototype.
7463         (insn_unit, blockage_range): Add comments.
7464         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
7465         FUNCTION_UNITS_SIZE == 0.
7466         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
7467         actual_hazard, potential_hazard): Add comments.
7468         (insn_cost): Use cost -1 as undefined value.  Remove
7469         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
7470         pipeline interface.
7471         (ready_element, ready_remove): New functions for automaton
7472         interface.
7473         (schedule_insn): Add new code for automaton pipeline interface.
7474         (queue_to_ready): Add new code for automaton pipeline interface.
7475         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
7476         (debug_ready_list): Print newline when the queue is empty.
7477         (max_issue): New function for automaton pipeline interface.
7478         (choose_ready): New function.
7479         (schedule_block): Add new code for automaton pipeline interface.
7480         Print ready list before scheduling each insn.
7481         (sched_init): Add new code for automaton pipeline interface.
7482         Initiate insn cost by -1.
7483         (sched_finish): Free the current automaton state and finalize
7484         automaton pipeline interface.
7485
7486         * sched-rgn.c: Include target.h.
7487         (init_ready_list, new_ready, debug_dependencies): Add new code for
7488         automaton pipeline interface.
7489
7490         * sched-vis.c: Include target.h.
7491         (get_visual_tbl_length): Add code for automaton interface.
7492         (target_units, print_block_visualization):  Add comments.
7493
7494         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
7495         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
7496         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
7497         (getruntime.o, genautomata.o): New entries.
7498         (genattrtab.o): Add new dependency file genattrtab.h.
7499         (genattrtab): Add new dependencies.  Link it with `libm.a'.
7500         (getruntime.o, hashtab.o): New entries for canadian cross.
7501
7502         * doc/md.texi: Description of automaton based model.
7503
7504         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
7505         Add comments.
7506         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7507         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7508         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7509         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7510         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7511         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7512         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
7513         hook descriptions.
7514         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
7515         MAX_DFA_ISSUE_RATE): New macro descriptions.
7516
7517         * doc/contrib.texi: Add dfa based scheduler contribution.
7518
7519         * doc/gcc.texi: Add more information about genattrtab.
7520
7521 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7522
7523         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
7524         adjust_address_nv call.
7525
7526 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
7527
7528         * doc/install.texi (Testing): Provide additional information, and
7529         a stronger encouragement, for running the testsuites.
7530
7531 2002-04-29  DJ Delorie  <dj@redhat.com>
7532
7533         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
7534         given in upper case.
7535
7536 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7537
7538         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
7539         Solaris 2 <widec.h> if missing.
7540         * fixinc/fixincl.x: Regenerate.
7541         * fixinc/tests/base/widec.h: New file.
7542
7543 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
7544
7545         * toplev.c (f_options): Add "profile" switch so that
7546         -fno-profile can be used to disable -p.
7547
7548 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
7549
7550         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
7551         UV2DImode.
7552         * tree.c (build_common_tree_nodes_2): Likewise.
7553         * tree.h (enum tree_index): Likewise.
7554         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
7555
7556         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
7557         entries.
7558         (init_mmx_sse_builtins): Initialize SSE2 builtins.
7559         (ix86_expand_builtin): Add support for SSE2 builtins.
7560         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
7561         (VALID_SSE_REG_MODE): Use it.
7562         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
7563         (enum ix86_builtins): Add SSE2 builtins.
7564         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
7565         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
7566         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
7567         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
7568         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
7569         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
7570         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
7571         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
7572         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
7573         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
7574         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
7575         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
7576         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
7577         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
7578         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
7579         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
7580         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
7581         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
7582         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
7583         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
7584         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
7585         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
7586         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
7587         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
7588         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
7589         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
7590         lfence_insn): New patterns.
7591         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
7592         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
7593
7594 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
7595
7596         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
7597
7598 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7599
7600         * doc/contrib.texi (Contributors): Add Paolo Carlini and
7601         Janis Johnson.
7602         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
7603         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
7604         and CPU instead of cpu.
7605
7606 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
7607
7608         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
7609         variables.
7610         (lang_independent_options): Add -fif-conversion, -fif-conversion2
7611         (rest_of_compilation): Do if conversion only when asked for.
7612         (parse_options_and_default_flags): Set new variables to 1 for -O1
7613         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
7614
7615 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
7616
7617         * i386.c (dbx64_register_map): Fix typo.
7618
7619 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
7620
7621         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
7622         real_one_half, real_bb_freq_max): New static variables.
7623         (debug_profile_bbauxs): Kill.
7624         (process_note_predictions): Kill unused variable.
7625         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
7626         volatile double.
7627         (propagate_freq): Use REAL_ARITHMETICS.
7628         (estimate_bb_frequencies): Likevise; init new static variables.
7629         * Makefile.in (predict.o): Add dependency on real.h
7630
7631 2002-04-28  David S. Miller  <davem@redhat.com>
7632
7633         PR target/6500
7634         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
7635         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
7636         several {reads,writes} instead.
7637         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
7638         Define.
7639
7640 2002-04-27  David S. Miller  <davem@redhat.com>
7641
7642         PR target/6494
7643         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
7644         of the stack bias.
7645
7646         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
7647         including signal.h and sys/ucontext.h, not needed.
7648
7649 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
7650
7651         * varasm.c (output_constant_def): Correct test for not calling
7652         ENCODE_SECTION_INFO for INTEGER_CST.
7653
7654 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7655
7656         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
7657         keep most cases as function eval_token.
7658         (eval_token): New function.
7659         (_cpp_parse_expr): Read token here for improved diagnostics.
7660         Don't use op_as_text.  Detect bad ':' here.
7661         (reduce): Don't detect bad ':' here.
7662         (op_as_text): Remove.
7663         * cpphash.h (_cpp_test_assertion): Change prototype.
7664         * cpplib.c (_cpp_test_assertion): Change prototype.
7665
7666 2002-04-28  Richard Henderson  <rth@redhat.com>
7667
7668         PR c/5154
7669         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
7670         (ggc_mark_rtx_children): New.
7671
7672 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7673
7674         PR target/6496
7675         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
7676         after call peepholes for UltraSPARC.
7677         (call + jump 64-bit peepholes): Remove.
7678
7679 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7680
7681         PR c/6497
7682         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
7683         result as temporary value.
7684
7685 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7686
7687         PR c++/6396
7688         * toplev.c (rest_of_compilation): Only run regrename and copy
7689         propagation if optimizing.
7690
7691 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7692
7693         PR optimization/6475
7694         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
7695         register of REGNO_DECL (i).
7696         * Makefile.in (reload1.o): Add $(TREE_H).
7697
7698 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7699
7700         * cppexp.c (lex): Update to use state.skip_eval.
7701         (struct op): Remove prio and flags members.
7702         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
7703         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
7704         (LEFT_ASSOC): New macro.
7705         (optab): New table of operator priorities and flags.
7706         (SHIFT): Update.
7707         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
7708         malloc-ed parser stack.
7709         (reduce): New; reduce the operator stack.
7710         (_cpp_expand_op_stack): Expand the operator stack as necessary.
7711         * cpphash.h (struct op): Predeclare.
7712         (struct cpp_reader): New members op_stack, op_limit.
7713         (struct lexer_state): New member skip_eval.
7714         (_cpp_parse_expr): Update.
7715         (_cpp_expand_op_stack): New.
7716         * cpplib.c (do_if): Update.
7717         * cppinit.c (cpp_create_reader): Create op stack.
7718         (cpp_destroy): And destroy it.
7719         * cpplib.h (CPP_LAST_CPP_OP): Correct.
7720         (TTYPE_TABLE): Correct.
7721
7722 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7723
7724         PR c/6343
7725         * c-decl.c (duplicate_decls): Call merge_weak.
7726         * c-pragma.c (apply_pragma_weak): Warn about misuse.
7727         * output.h (merge_weak): Prototype merge_weak.
7728         * varasm.c (merge_weak): New function.
7729         (declare_weak): Make sure we don't give an error on VAR_DECLs.
7730         Mark RTL with SYMBOL_REF_WEAK.
7731
7732 2002-04-27  Kurt Garloff <garloff@suse.de>
7733
7734         * tree-inline.c (inlinable_function_p): Improve heuristics
7735         by using a smoother function to cut down allowable inlinable size.
7736         * param.def: Add parameters max-inline-insns-single,
7737         max-inline-slope, min-inline-insns that determine the exact
7738         shape of the above function.
7739         * param.h: Likewise.
7740
7741 2002-04-26  Richard Henderson  <rth@redhat.com>
7742
7743         * c-parse.in (malloced_yyss, malloced_yyvs): New.
7744         (yyoverflow): Re-add.  Set them.
7745         (free_parser_stacks): New.
7746         * c-common.h: Declare it.
7747         * c-lex.c (c_common_parse_file): Call it.
7748
7749 2002-04-26  Richard Henderson  <rth@redhat.com>
7750
7751         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
7752         for fallthru search.
7753
7754 2002-04-26  Eric Christopher  <echristo@redhat.com>
7755
7756         PR optimization/3700
7757         * config/mips/mips.c (mips_issue_rate): Define.  New function.
7758         (TARGET_SCHED_ISSUE_RATE): Use.
7759
7760 2002-04-25  David S. Miller  <davem@redhat.com>
7761
7762         PR target/6422
7763         * reorg.c (optimize_skip): Do not allow exception causing
7764         instructions to be considered for delay slots.
7765         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
7766         (relax_delay_slots): Do not try to consider exception causing
7767         instructions as redundant.
7768
7769 2002-04-26  Richard Henderson  <rth@redhat.com>
7770
7771         PR c/5225
7772         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
7773
7774 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
7775
7776         PR bootstrap/6445
7777         * config/i386/i386.md (untyped_call): Return the value in a float
7778         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
7779         TARGET_80387.
7780
7781 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
7782
7783         * tree.c (tree_int_cst_lt): Compare constants whose types differ
7784         in unsigned-ness correctly.
7785
7786 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7787
7788         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
7789         portable runtime model.
7790
7791 2002-04-26  Richard Henderson  <rth@redhat.com>
7792
7793         * c-parse.in (yyoverflow): Revert.
7794
7795 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
7796             Richard Henderson  <rth@redhat.com>
7797
7798         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
7799         result as temporary value.
7800
7801 2002-04-26  Richard Henderson  <rth@redhat.com>
7802
7803         PR c/3581
7804         * c-common.c (fix_string_type): Split out of ...
7805         (combine_strings): ... here.  Take a varray, not a tree list.
7806         (c_expand_builtin_printf): Use fix_string_type.
7807         * c-common.h: Update decls.
7808         * c-parse.in (string): Remove.  Update all uses to use STRING
7809         instead, and not call combine_strings.
7810         (yylexstring): New.
7811         (_yylex): Use it.
7812         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
7813         (build_asm_stmt): Likewise.
7814         * objc/objc-act.c (my_build_string): Use fix_string_type.
7815         (build_objc_string_object): Build varray for combine_strings.
7816
7817 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
7818
7819         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
7820         x86-64.
7821
7822 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7823
7824         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
7825         (HAVE_NO_R_OPERAND): Remove.
7826         (HAVE_VALUE): Remove.
7827         (op_to_prio): Update.
7828         (UNARY): Don't alter flags.
7829         (_cpp_parse_expr): want_value used to indicate whether
7830         a number or unary operator is expected next.  Distinguish
7831         unary and binary +/-.
7832         (op_as_text): Update for unary operators.
7833
7834 2002-04-25  Richard Henderson  <rth@redhat.com>
7835
7836         PR c/2161
7837         * c-parse.in (yyoverflow): New.
7838
7839 2002-04-25  Richard Henderson  <rth@redhat.com>
7840
7841         PR c/2098
7842         * c-common.c (shorten_compare): Simplfy conditions leading to
7843         the generation of a warning.
7844
7845 2002-04-25  Richard Henderson  <rth@redhat.com>
7846
7847         PR c/2035
7848         * expmed.c (extract_bit_field): Fall through to generic code rather
7849         than aborting on subreg special case.
7850
7851 2002-04-25  David S. Miller  <davem@redhat.com>
7852
7853         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
7854         for DECL being NULL.
7855
7856 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
7857
7858         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
7859
7860 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
7861
7862         * c-decl.c (grokdeclarator): Remove outdated ??? note
7863         on invalid declaration of flexible array members.
7864
7865 2002-04-25  Richard Henderson  <rth@redhat.com>
7866
7867         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
7868
7869 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
7870
7871         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
7872         needed by the compiler, even if they are used as global regs.
7873
7874 2002-04-25  Matt Hiller  <hiller@redhat.com>
7875
7876         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
7877         functions.
7878         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
7879         of the corresponding functions.
7880         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
7881         New prototypes.
7882
7883 2002-04-25  Matt Hiller  <hiller@redhat.com>
7884
7885         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
7886
7887         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
7888         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
7889         registers, adjust comment accordingly.
7890         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7891         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
7892         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
7893         for coprocessor registers.
7894         (ADDITIONAL_REGISTER_NAMES): Include
7895         ALL_COP_ADDITIONAL_REGISTER_NAMES.
7896
7897         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
7898         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
7899         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
7900         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
7901         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
7902
7903         (mips_char_to_class): Adjust comment to include coprocessor
7904         constraint letters.
7905
7906         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
7907         New functions.
7908         (mips_reg_names, mips_regno_to_class): Include coprocessor
7909         information.
7910         (mips_sw_reg_names): Ditto, make non-static.
7911         (mips_move_1word): Handle moves to and from coprocessor registers.
7912         (mips_move_2words): Handle moves to and from coprocessor
7913         registers.
7914         (mips_class_max_nregs, mips_register_move_cost): Handle
7915         coprocessor register classes.
7916         (override_options): Initialize mips_char_to_class and
7917         mips_hard_regno_mode_ok properly for coprocessor registers.
7918
7919         * config/mips/mips.md (movdi_internal, movdi_internal2,
7920         movsi_internal1, movsi_internal2): Add constraint-sets for
7921         coprocessor registers.
7922         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
7923         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
7924         isn't mips.
7925         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
7926         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
7927         isn't mips.
7928         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
7929         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
7930         isn't mips.
7931         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
7932         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
7933         isn't mips.
7934
7935         * doc/tm.texi: Document feature.
7936
7937 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7938
7939         * integrate.c (function_attribute_inlinable_p): Simplify.
7940         Check the table pointer is not NULL.
7941
7942 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
7943
7944         * doc/c-tree.texi: Fix typo in introduction.
7945
7946 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7947
7948         * c-common.h (c_common_parse_file): Update.
7949         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7950         * c-lex.c (YYDEBUG): Get from c-lex.h.
7951         (c_common_parse_file): Update.
7952         * c-lex.h (YYDEBUG, yydebug): New.
7953         * c-parse.in (YYDEBUG): Get from c-lex.h.
7954         (c_set_yydebug): Remove.
7955         * c-tree.h (c_set_yydebug): Remove.
7956         * langhooks-def.h (lhd_do_nothing_i): New.
7957         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
7958         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
7959         * langhooks.c  (lhd_do_nothing_i): New.
7960         (lhd_set_yydebug): Remove.
7961         * langhooks.h (struct lang_hooks): Update.
7962         * toplev.c (set_yydebug): New.
7963         (compile_file): Update call to parse_file hook.
7964         (decode_d_option): Update.
7965 objc:
7966         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7967
7968 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
7969
7970         * loop.c (load_mems): Don't change the interface of called functions.
7971
7972         * calls.c (expand_call): Take current_function_pretend_args_size
7973         into account when setting argblock for sibcalls.
7974
7975 2002-04-24  Matt Hiller  <hiller@redhat.com>
7976
7977         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
7978         * c-lex.c: Ditto.
7979
7980         * cpplex.c (skip_line_comment): Process comment one multibyte
7981         character at a time rather than one char at a time, if
7982         appropriate.
7983         (parse_string): Process string one multibyte character at a time
7984         rather than one char at a time, if appropriate.
7985         * c-lex.c (lex_string): Lex and copy multibyte strings
7986         appropriately.
7987         * cpplib.h (cppchar_t): Change to unsigned.
7988
7989 2002-04-24  Richard Henderson  <rth@redhat.com>
7990
7991         PR c/3467
7992         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
7993         for c99.
7994
7995 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
7996
7997         * sh.c (sh_va_arg): If argument was passed by reference,
7998         dereference the pointer.
7999
8000         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8001
8002         * sh.md (divsi3_i4_media): Use match_operand for input values
8003         rather than hard registers.
8004         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
8005         unnecessarily through hard registers.  Keep copies of pseudo
8006         registers outside of the libcall sequence.
8007
8008         * sh.md (casesi_shift_media): Add modes.
8009
8010         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
8011         values in memory.
8012
8013 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8014
8015         * attribs.c (c_common_attribute_table): Move table and handlers
8016         to c-common.c.
8017         (format_attribute_table, lang_attribute_table,
8018         lang_attribute_common): Remove.
8019         (init_attributes): Replace NULL pointers with pointers to the
8020         empty table.
8021         (handle_packed_attribute, handle_nocommon_attribute,
8022         handle_common_attribute, handle_noreturn_attribute,
8023         handle_noinline_attribute, handle_always_inline_attribute,
8024         handle_used_attribute, handle_unused_attribute,
8025         handle_const_attribute, handle_transparent_union_attribute,
8026         handle_constructor_attribute, handle_destructor_attribute,
8027         handle_mode_attribute, handle_section_attribute,
8028         handle_aligned_attribute, handle_weak_attribute,
8029         handle_alias_attribute, handle_visibility_attribute,
8030         handle_no_instrument_function_attribute, handle_malloc_attribute,
8031         handle_no_limit_stack_attribute, handle_pure_attribute,
8032         handle_deprecated_attribute, handle_vector_size_attribute,
8033         vector_size_helper): Move to c-common.c.
8034         * c-common.c (c_common_attribute_table,
8035         handle_packed_attribute, handle_nocommon_attribute,
8036         handle_common_attribute, handle_noreturn_attribute,
8037         handle_noinline_attribute, handle_always_inline_attribute,
8038         handle_used_attribute, handle_unused_attribute,
8039         handle_const_attribute, handle_transparent_union_attribute,
8040         handle_constructor_attribute, handle_destructor_attribute,
8041         handle_mode_attribute, handle_section_attribute,
8042         handle_aligned_attribute, handle_weak_attribute,
8043         handle_alias_attribute, handle_visibility_attribute,
8044         handle_no_instrument_function_attribute, handle_malloc_attribute,
8045         handle_no_limit_stack_attribute, handle_pure_attribute,
8046         handle_deprecated_attribute, handle_vector_size_attribute,
8047         vector_size_helper): Move from attribs.c.
8048         * c-common.h (c_common_attribute_table,
8049         c_common_format_attribute_table): New.
8050         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8051         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8052         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
8053         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
8054         (LANG_HOOKS_INITIALIZER): Update.
8055         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
8056         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
8057         * target.h: Update comment.
8058         * tree.c (default_target_attribute_table): Remove.
8059         * tree.h (default_target_attribute_table, format_attribute_table,
8060         lang_attribute_table, lang_attribute_common): Remove.
8061 objc:
8062         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8063         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8064
8065 2002-04-24  Jason Merrill  <jason@redhat.com>
8066
8067         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
8068         * dwarf2out.c (dwarf_attr_name): Support it.
8069         (gen_array_type_die): Emit it.
8070         (lookup_type_die): No special handling for VECTOR_TYPE.
8071         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
8072
8073 2002-04-24  Richard Henderson  <rth@redhat.com>
8074
8075         * config/mips/mips.md (movdi_usd): Renumber.
8076
8077 2002-04-24  David S. Miller  <davem@redhat.com>
8078
8079         PR target/6420
8080         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
8081         32-bit Sparc and current_function_returns_struct is true.
8082
8083 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8084
8085         * loop.c (canonicalize_condition): Use gen_int_mode.
8086
8087 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
8088
8089         * config/rs6000/altivec.h: Cleanup file.  Add non individual
8090         variants.
8091         (vec_vaddubm): New.
8092         (vec_vadduhm): New.
8093         (vec_vadduwm): New.
8094         (vec_vaddfp): New.
8095         (vec_vaddcuw): New.
8096         (vec_vaddubs): New.
8097         (vec_vaddsbs): New.
8098         (vec_vadduhs): New.
8099         (vec_vadduws): New.
8100         (vec_vaddsws): New.
8101         (vec_vand): New.
8102         (vec_vandc): New.
8103         (vec_vavgub): New.
8104         (vec_vavgsb): New.
8105         (vec_vavguh): New.
8106         (vec_vavgsh): New.
8107         (vec_vavguw): New.
8108         (vec_vavgsw): New.
8109         (vec_vrfip): New.
8110         (vec_vcmpbfp): New.
8111         (vec_vcmpequb): New.
8112         (vec_vcmpequh): New.
8113         (vec_vcmpequw): New.
8114         (vec_vcmpeqfp): New.
8115         (vec_vcmpgefp): New.
8116         (vec_vcmpgtub): New.
8117         (vec_vcmpgtsb): New.
8118         (vec_vcmpgtuh): New.
8119         (vec_vcmpgtsh): New.
8120         (vec_vcmpgtuw): New.
8121         (vec_vcmpgtsw): New.
8122         (vec_vcmpgtfp): New.
8123         (vec_vcmpgefp): New.
8124         (vec_vcfux): New.
8125         (vec_vcfsx): New.
8126         (vec_vctsxs): New.
8127         (vec_vctuxs): New.
8128         (vec_vexptefp): New.
8129         (vec_vrfim): New.
8130         (vec_lvx): New.
8131         (vec_lvebx): New.
8132         (vec_lvehx): New.
8133         (vec_lde): Add vector float variant.
8134         (vec_lvewx): New.
8135         (vec_lvxl): New.
8136         (vec_vlogefp): New.
8137         (vec_vmaddfp): New.
8138         (vec_vmhaddshs): New.
8139         (vec_vmaxub): New.
8140         (vec_vmaxsb): New.
8141         (vec_vmaxuh): New.
8142         (vec_vmaxsh): New.
8143         (vec_vmaxuw): New.
8144         (vec_vmaxsw): New.
8145         (vec_vmaxsw): New.
8146         (vec_vmaxfp): New.
8147         (vec_vmrghb): New.
8148         (vec_vmrghh): New.
8149         (vec_vmrghw): New.
8150         (vec_vmrglb): New.
8151         (vec_vmrglh): New.
8152         (vec_vmrglw): New.
8153         (vec_vminub): New.
8154         (vec_vminsb): New.
8155         (vec_vminuh): New.
8156         (vec_vminsh): New.
8157         (vec_vminuw): New.
8158         (vec_vminsw): New.
8159         (vec_vminfp): New.
8160         (vec_vmladduhm): New.
8161         (vec_vmhraddshs): New.
8162         (vec_msumubm): New.
8163         (vec_vmsummbm): New.
8164         (vec_vmsumuhm): New.
8165         (vec_vmsumshm): New.
8166         (vec_vmsumuhs): New.
8167         (vec_vmsumshs): New.
8168         (vec_vmuleub): New.
8169         (vec_vmulesb): New.
8170         (vec_vmuleuh): New.
8171         (vec_vmulesh): New.
8172         (vec_vmuloub): New.
8173         (vec_mulosb): New.
8174         (vec_vmulouh): New.
8175         (vec_vmulosh): New.
8176         (vec_vnmsubfp): New.
8177         (vec_vnor): New.
8178         (vec_vor): New.
8179         (vec_vpkuhum): New.
8180         (vec_vpkuwum): New.
8181         (vec_vpkpx): New.
8182         (vec_vpkuhus): New.
8183         (vec_vpkshss): New.
8184         (vec_vpkuwus): New.
8185         (vec_vpkswss): New.
8186         (vec_vpkshus): New.
8187         (vec_vpkswus): New.
8188         (vec_vperm): New.
8189         (vec_vrefp): New.
8190         (vec_vrlb): New.
8191         (vec_vrlh): New.
8192         (vec_vrlw): New.
8193         (vec_vrfin): New.
8194         (vec_vrsqrtefp): New.
8195         (vec_vsel): New.
8196         (vec_vslb): New.
8197         (vec_vslh): New.
8198         (vec_vslw): New.
8199         (vec_vsldoi): New.
8200         (vec_vsl): New.
8201         (vec_vslo): New.
8202         (vec_vspltb): New.
8203         (vec_vsplth): New.
8204         (vec_vspltw): New.
8205         (vec_vspltisb): New.
8206         (vec_vspltish): New.
8207         (vec_vspltisw): New.
8208         (vec_vsrb): New.
8209         (vec_vsrh): New.
8210         (vec_vsrw): New.
8211         (vec_vsrab): New.
8212         (vec_vsrah): New.
8213         (vec_vsraw): New.
8214         (vec_vsr): New.
8215         (vec_vsro): New.
8216         (vec_stvx): New.
8217         (vec_stvebx): New.
8218         (vec_stvehx): New.
8219         (vec_stvewx): New.
8220         (vec_stvxl): New.
8221         (vec_vsububm): New.
8222         (vec_vsubuhm): New.
8223         (vec_vsubuwm): New.
8224         (vec_vsubfp): New.
8225         (vec_vsubcuw): New.
8226         (vec_vsububs): New.
8227         (vec_vsubsbs): New.
8228         (vec_vsubuhs): New.
8229         (vec_vsubshs): New.
8230         (vec_vsubuws): New.
8231         (vec_vsubsws): New.
8232         (vec_vsum4ubs): New.
8233         (vec_vsum4sbs): New.
8234         (vec_vsum4shs): New.
8235         (vec_vsum2sws): New.
8236         (vec_vsumsws): New.
8237         (vec_vrfiz): New.
8238         (vec_vupkhsb): New.
8239         (vec_vupkhpx): New.
8240         (vec_vupkhsh): New.
8241         (vec_vupklsb): New.
8242         (vec_vupklpx): New.
8243         (vec_vupklsh): New.
8244         (vec_vxor): New.
8245
8246 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
8247
8248         PR c/5430
8249         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
8250         added literals from substracted literals.
8251         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
8252         (fold) [associate]: Preserve MINUS_EXPR if needed.
8253
8254 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
8255
8256         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
8257         are obsoleted.
8258
8259 2002-04-23  Tom Tromey  <tromey@redhat.com>
8260
8261         * gcc.c: Added --resource.  For PR java/6314.
8262
8263 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8264
8265         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
8266         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
8267         these libraries.
8268
8269 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8270
8271         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
8272
8273 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8274
8275         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
8276         workaround.
8277         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
8278         (ix86_expand_clrstr): Fix typo.
8279         * loop.c (gen_load_of_final_value): New.
8280         (loop_givs_rescan, strength_reduce, check_dbra_loop):
8281         Use it.
8282
8283 2002-04-23  Roger Sayle  <roger@eyesopen.com>
8284
8285         * builtins.c (builtin_memset_gen_str): New function.
8286         (expand_builtin_memset): Optimize the case of constant length, but
8287         unknown value.
8288
8289 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
8290
8291         * config/rs6000/altivec.h (vec_step): Remove extraneous
8292         parentheses.
8293         (vec_ctu): Cast return.
8294
8295 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
8296
8297         PR target/6413
8298         * function.h: (struct function): Add profile_label_no field.
8299         (current_function_profile_label_no): Define.
8300         * function.c: (profile_label_no): New static var.
8301         (expand_function_start): Increment it, and copy to
8302         current_function_profile_label_no.
8303         * output.h (profile_label_no): Delete.
8304         * final.c (profile_label_no): Delete.
8305         (profile_function): Use current_function_profile_label_no.
8306         (final_end_function): Don't increment profile_label_no here.
8307         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
8308         profile_label_no with current_function_profile_label_no.
8309         * config/pa/pa.c (current_function_number): Delete.
8310         (pa_output_function_prologue): Don't output profile label here.
8311         (hppa_profile_hook): Use label_no param rather than
8312         current_function_number.
8313         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
8314         * config/pa/pa.h: .. here.
8315         (FUNCTION_PROFILER): Output profile label here.
8316
8317 2002-04-22  Eric Christopher  <echristo@redhat.com>
8318
8319         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
8320         patch of 2002-04-09 due to binutils issues.
8321         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
8322
8323 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
8324
8325         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
8326         constraint to 'o' for m=r and r=m alternatives.
8327         ("*movv8hi_internal1"): Same.
8328         ("*movv16qi_internal1"): Same.
8329         ("*movv4sf_internal1"): Same.
8330
8331 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
8332
8333         * rtl.h (RTX_FLAG): New macro.
8334         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
8335         * final.c (alter_subreg): Use macro to access rtx flag.
8336         * integrate.c (copy_rtx_and_substitute): Use new access macro.
8337         * print-rtl.c (print_rtx): Use new access macro.
8338
8339         * cse.c (insert): Check rtx code before accessing flag.
8340
8341         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
8342         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
8343         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
8344         convert_const_symbol_ref, make_canonical, make_alternative_compare,
8345         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
8346         simplify_test_exp, optimize_attrs, simplify_by_exploding,
8347         find_and_mark_used_attributes, unmark_used_attributes,
8348         add_values_to_cover, simplify_with_current_value,
8349         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
8350         copy_rtx_unchanging, main): Use new access macros.
8351
8352 2002-04-22  Tom Rix  <trix@redhat.com>
8353
8354         * expmed.c (init_expmed): Generate shifted constant once.
8355
8356 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
8357
8358         * c-lex.c (lex_charconst): Call convert to get constant in
8359         proper type; don't just smash the type field.
8360         Fixes PR c/6300.
8361
8362         * config.gcc: Add list of obsolete configurations.  Disallow
8363         building these without --enable-obsolete.
8364         * doc/install.texi: Document --enable-obsolete and obsoletion
8365         policy.  Mention obsoletion of individual targets in
8366         appropriate places.
8367
8368 2002-04-22  Richard Henderson  <rth@redhat.com>
8369
8370         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
8371
8372 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
8373
8374         PR f/6138.
8375         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
8376         (walk_fixup_memory_subreg): Likewise.
8377         (fixup_var_refs_insn): Adjust accordingly.
8378         (fixup_var_refs_1): Likewise.
8379
8380 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
8381
8382         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
8383         LIBPATH_ARCH64_SPEC): Define.
8384         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
8385         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
8386         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
8387         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
8388
8389 2002-04-22      Joel Sherrill <joel@OARcorp.com>
8390
8391         * gthr-rtems.h: Correct prototypes to remove warnings.
8392
8393 2002-04-22  Richard Henderson  <rth@redhat.com>
8394
8395         PR c/6344
8396         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
8397
8398         * gcse.c (free_insn_expr_list_list): New.
8399         (clear_modify_mem_tables): Use it.  Fix bit set usage.
8400         (canon_list_insert): Use EXPR_LISTs for expressions.
8401         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
8402
8403 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8404
8405         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
8406         file change and include code to _cpp_pop_buffer.
8407         * cpphash.h (struct pending_option): Predeclare.
8408         (struct cpp_reader): New member next_include_file.
8409         (_cpp_pop_file_buffer): Update.
8410         (_cpp_push_next_buffer): Update, rename.
8411         * cppinit.c (cpp_destroy): Free include chain and pending here.
8412         (cpp_finish_options): Simplify.
8413         (_cpp_push_next_buffer): Rename and clean up.
8414         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
8415         Clarify.
8416         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
8417
8418 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
8419
8420         * config/rs6000/altivec.h (vec_xor): Add variant for both args
8421         being vector signed int.
8422         (vec_andc): Same.
8423         (vec_xor): Add variant for both args being vector signed char.
8424         Remove redundant variant.
8425         (vec_andc): Same.
8426
8427 2002-04-21  David S. Miller  <davem@redhat.com>
8428
8429         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
8430         compare mode in output RTL.
8431
8432 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
8433
8434         * config/rs6000/rs6000.c (rs6000_override_options): Correct
8435         style and formatting of previous patch.
8436
8437 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
8438
8439         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
8440         flag_pic for ABI_AIX.
8441
8442 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8443
8444         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
8445         * cppfiles.c (read_include_file): Similarly.
8446         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
8447         uxstrdup ustrchr, ufputs): Similarly.
8448         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
8449         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
8450         cpp_ideq, parse_identifier, parse_number): Similarly.
8451         * cpplib.c (struct directive, dequote_string, D, run_directive,
8452         cpp_push_buffer): Similarly.
8453         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
8454         _cpp_create_definition, check_trad_stringification,
8455         cpp_macro_definition): Similarly.
8456
8457 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8458
8459         * cppmacro.c (funlike_invocation_p): Don't step back
8460         over CPP_EOF.
8461
8462 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
8463
8464         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
8465         labelno.
8466
8467 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
8468
8469         * doc/invoke.texi: Remove Chill references.
8470         * doc/gcc.texi: Update last modified date.
8471
8472 2002-04-20  Kazu Hirata  <kazu@hxi.com>
8473
8474         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
8475         push and pop.  Replace add.l with add.w.
8476
8477 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
8478
8479         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
8480         multiply instructions for H8/300H case.
8481
8482 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
8483
8484         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
8485         Bum three instructions from each routine.
8486
8487 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8488
8489         * Makefile.in: Update.
8490         * decl.c (push_c_function_context, pop_c_function_context,
8491         mark_c_function_context): Rename for consistency.
8492         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
8493         * c-tree.h (push_c_function_context, pop_c_function_context,
8494         mark_c_function_context): Rename for consistency.
8495         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8496         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
8497         * function.c (init_lang_status, save_lang_status,
8498         restore_lang_status, mark_lang_status, free_lang_status):
8499         Move to langhooks.h.
8500         (push_function_context_to, pop_function_context_from,
8501         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
8502         Update.
8503         * function.h (init_lang_status, save_lang_status,
8504         restore_lang_status, mark_lang_status, free_lang_status):
8505         Move to langhooks.h.
8506         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
8507         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
8508         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
8509         LANG_HOOKS_FUNCTION_INITIALIZER): New.
8510         (LANG_HOOKS_INITIALIZER): Update.
8511         (lhd_do_nothing_f): New.
8512         * langhooks.h (struct lang_hooks_for_functions): New.
8513         (struct lang_hooks): New hooks.
8514         * langhooks.c (lhd_do_nothing_f): New.
8515 objc:
8516         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8517         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
8518
8519 2002-04-19  David S. Miller  <davem@redhat.com>
8520
8521         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
8522         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
8523
8524 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8525
8526         PR optimization/3756
8527         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
8528         x = ((int) y < 0) ? cst1 : cst2.
8529
8530 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8531
8532         PR c/6358
8533         * function.c: Reapply patch for c/6358.
8534         (expand_function_end): Copy decl_rtl's mode, not
8535         current_function_return_rtx mode.
8536
8537 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
8538
8539         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
8540         targets.
8541
8542 2002-04-19  Tom Tromey  <tromey@redhat.com>
8543
8544         * doc/install.texi (Specific): Update status of Solaris 2.8.
8545         For PR libgcj/6158.
8546
8547 2002-04-19  Andreas Schwab  <schwab@suse.de>
8548
8549         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
8550         (PUT_REAL): Restore old definition.
8551
8552 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
8553             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8554
8555         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
8556         binutils 2.11.2 and higher generate smaller binaries than Sun's
8557         native tools.
8558
8559 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
8560
8561         PR c++/6352
8562         * toplev.c (rest_of_compilation): Do not defer functions for which
8563         TREE_SYMBOL_REFERENCED has already been set.
8564
8565 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
8566
8567         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
8568         alternative.
8569
8570 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8571
8572         * builtins.c: Include langhooks.h.
8573         (lang_type_promotes_to): Remove.
8574         (expand_builtin_va_arg): Use new hook.
8575         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
8576         (simple_type_promotes_to): Move to c-typeck.c.
8577         * c-common.h (simple_type_promotes_to): Remove.
8578         * c-decl.c (duplicate_decls, grokdeclarator): Update.
8579         * c-format.c: Include langhooks.h.
8580         (check_format_types): Update.
8581         * c-tree.h (c_type_promotes_to): New.
8582         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
8583         (type_lists_compatible_p): Update.
8584         * langhooks-def.h (lhd_type_promotes_to): New.
8585         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
8586         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8587         * langhooks.c (lhd_type_promotes_to): New.
8588         * langhooks.h (struct lang_hooks_for_types): New hook.
8589         * tree.h (lang_type_promotes_to): Remove.
8590 objc:
8591         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
8592
8593 2002-04-18  Richard Henderson  <rth@redhat.com>
8594
8595         * function.c: Revert patch for c/6358.
8596
8597 2002-04-18  Richard Henderson  <rth@redhat.com>
8598
8599         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
8600         blocks.  Handle multiple references to the TRAP block.  Handle
8601         non-adjacent THEN and OTHER blocks.
8602
8603 2002-04-18  Richard Henderson  <rth@redhat.com>
8604
8605         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
8606         crash with no type for by-mode libcalls.
8607
8608         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
8609
8610 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
8611
8612         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
8613         __xtensa_nonlocal_goto): Use a syscall instructions to flush
8614         the register windows.
8615
8616 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8617
8618         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
8619         appropriate.  Document need for extended precision even when
8620         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
8621         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
8622         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
8623         instead of relying on later syntax error when REAL_WIDTH > 5.
8624         * real.c: Define NE based only on whether or not we have a
8625         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
8626         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
8627         define GET_REAL and PUT_REAL as simple memcpy operations; no
8628         need to byteswap or round.
8629         Use #error instead of #ifdef-ing out the entire file, for
8630         prompt error detection.
8631
8632         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
8633
8634 2002-04-18  David S. Miller  <davem@redhat.com>
8635
8636         * config/sparc/sparc.h (BRANCH_COST): Define.
8637
8638         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
8639         does it.
8640
8641 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
8642
8643         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
8644         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
8645         propagate_block calls after relaxation loop using new variable
8646         stabilized_prop_flags.
8647
8648 2002-04-18  Richard Henderson  <rth@redhat.com>
8649
8650         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
8651         (ia64_va_arg): Expect variable sized types by reference.
8652         * config/ia64/ia64-protos.h: Update.
8653         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
8654         ia64_function_arg_pass_by_reference.
8655
8656 2002-04-18  Richard Henderson  <rth@redhat.com>
8657
8658         * ifcvt.c: Include except.h.
8659         (block_has_only_trap): Break out from find_cond_trap.
8660         (find_cond_trap): Use it.  Always delete the trap block.
8661         (merge_if_block): Allow then block null.  Be less simplistic about
8662         what insns can end a block.
8663         * Makefile.in (ifcvt.o): Depend on except.h.
8664
8665         * config/ia64/ia64.md (trap, conditional_trap): New.
8666
8667 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8668
8669         PR c/6358
8670         * function.c (assign_parms): Assign hard current_function_return_rtx
8671         register here...
8672         (expand_function_end): ...not here.
8673
8674 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8675
8676         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8677         * c-tree.h (c_incomplete_type_error): New.
8678         * c-typeck.c (require_complete_type, build_component_ref): Update.
8679         (incomplete_type_error): Rename.
8680         * langhooks-def.h (lhd_incomplete_type_error): New.
8681         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
8682         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8683         * langhooks.c (lhd_incomplete_type_error): New.
8684         * langhooks.h (struct lang_hooks_for_types): New hook.
8685         * tree.c (size_in_bytes): Use new hook.
8686         * tree.h (incomplete_type_error): Remove.
8687 objc:
8688         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8689
8690 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8691
8692         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
8693         TARGET_FLOAT_FORMAT blocks.
8694
8695 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8696
8697         * doc/install.texi (Downloading the source): Do not mention Chill
8698         any longer, but mention Ada.
8699         (Configuration): Do not mention Chill any longer.
8700
8701 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
8702
8703         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
8704
8705 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
8706
8707         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
8708         in last patch.
8709
8710 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8711
8712         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
8713         instead of unsigned_type.
8714
8715 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
8716
8717         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
8718         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
8719         later.
8720
8721 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
8722
8723         * attribs.c (vector_type_node_list): New static variable.
8724         (handle_vector_size_attribute): Use it to avoid generating a
8725         new type node each time we are called.
8726
8727         * combine.c (subst): Avoid trying to make a vector mode subreg of
8728         an integer constant.
8729         (gen_lowpart_for_combine): Likewise.
8730
8731 2002-04-18  Roger Sayle  <roger@eyesopen.com>
8732             Jakub Jelinek  <jakub@redhat.com>
8733
8734         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
8735         for integer constant c (if x has unsigned type or sign bit is not
8736         set in c).  This folds the zero/sign extension into the bit-wise and
8737         operation.
8738
8739 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8740
8741         PR middle-end/6205
8742         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
8743         otherwise xorps.
8744
8745 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
8746
8747         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
8748
8749 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
8750
8751         * gcc.c (read_specs): Detect and fail if an attempt is made to
8752         rename a spec string to an already existing string.
8753
8754 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8755
8756         * config/s390/s390.c (legitimize_pic_address): Do not generate
8757         illegal address constant without CONST.
8758
8759 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8760
8761         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
8762         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8763
8764 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8765
8766         PR optimization/6305
8767         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
8768         to make sure previous reloads are taken into account.  Generate
8769         better code if one operand is an in-range immediate constant.
8770
8771 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
8772
8773         * doc/install.texi (Building): libgcj requires GNU make.
8774
8775 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
8776
8777         PR bootstrap/6315
8778         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
8779         even if hard quad and register is not floating.
8780         (movtf reg<-mem split): Disallow splitting if hard quad and
8781         register is floating.
8782         (movtf mem<-reg split): Likewise.
8783         * config/sparc/sparc.c (fp_register_operand): New predicate.
8784         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
8785
8786 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
8787
8788         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
8789         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
8790         (unprotoize.o): Ditto.  Build from protoize.c.  Define
8791         UNPROTOIZE on command line.
8792         * protoize.c: Include cppdefault.h.  Delete include_defaults.
8793         (in_system_include_dir): Use cpp_include_defaults (defined in
8794         cppdefault.o).
8795         * unprotoize.c: Delete file.
8796
8797 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
8798
8799         * config/rs6000/altivec.h (vec_ld): Add array variants.
8800         (vec_lde): Same.
8801         (vec_ldl): Same.
8802
8803 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
8804             Aldy Hernandez <aldyh@redhat.com>
8805
8806         * config/rs6000/altivec.h: Define __ALTIVEC__.
8807         (bool): New.
8808         (__pixel): New.
8809         (pixel): New.
8810         (vec_cfux): New.
8811         (vec_vmaddfp): New.
8812         (vec_vsldoi): New.
8813         Add parentheses to all macro arguments.
8814
8815 2002-04-16  Richard Henderson  <rth@redhat.com>
8816
8817         PR c++/6320
8818         * except.c (remove_eh_handler): Insert inner regions at beginning
8819         of sibling chain.  Refactor expressions.
8820
8821 2002-04-16  Richard Henderson  <rth@redhat.com>
8822
8823         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
8824         * config/sparc/sol2-gas-bi.h: New file.
8825         * config.gcc (sparc*-solaris): Add it as needed.
8826         * configure.in (AS_SPARC64_FLAG): Remove check.
8827         * config.in, configure: Regenerate.
8828
8829         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
8830
8831 2002-04-16  Richard Henderson  <rth@redhat.com>
8832
8833         * config/mips/mips.c (override_options): Don't override N32 for
8834         a 64-bit ISA.
8835
8836         PR 6202
8837         * config/mips/mips.md (can_delay): Split out of existing define_delays.
8838         (HILO_delay): Set can_delay false.
8839
8840 2002-04-16  Dale Johannesen <dalej@apple.com>
8841
8842         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
8843         instruction addresses.
8844         (rs6000_output_function_epilogue): Likewise.
8845
8846 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
8847
8848         * c-parse.in (poplevel, compstmt_start,
8849         compstmt_primary_start): Add ending ';', in accordance
8850         with POSIX.
8851
8852 2002-04-16  Richard Henderson  <rth@redhat.com>
8853
8854         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
8855         Adjust tm_file order to get TARGET_DEFAULT set properly.
8856         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
8857         * doc/install.texi (sparc-solaris): Update.
8858
8859 2002-04-16  Dale Johannesen <dalej@apple.com>
8860
8861         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
8862         comparison operands do not match each other or if modes of
8863         conditions do not match result.
8864
8865 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
8866
8867         PR target/6305
8868         * config/s390/s390.md (mulsidi3): Set both subregs of the
8869         multiword register.
8870
8871 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
8872
8873         * config/rs6000/altivec.h (vec_addc): Type check.
8874
8875 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8876
8877         PR middle-end/6279
8878         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
8879
8880         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
8881
8882 2002-04-15  Richard Henderson  <rth@redhat.com>
8883
8884         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
8885         call_really_used_regs too.
8886
8887 2002-04-15  Richard Henderson  <rth@redhat.com>
8888
8889         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
8890
8891 2002-04-15  David S. Miller  <davem@redhat.com>
8892
8893         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
8894         as being CLOBBERed.
8895
8896 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8897
8898         PR c/6290
8899         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
8900         CONST_VECTOR is { 0, ... 0 }.
8901
8902 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
8903
8904         * doc/install.texi (Installing GCC: Configuration): Clarify
8905         the only supported ways to configure gcc.
8906
8907 2002-04-15  Roland McGrath  <roland@frob.com>
8908
8909         * config.gcc (alpha*-*-gnu*): New target configuration.
8910         * config/alpha/gnu.h: New file for it.
8911         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
8912
8913 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
8914
8915         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
8916         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
8917         * tree.h (expand_start_stmt_expr): Update prototype.
8918         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
8919         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
8920         on the STMT_EXPR created for the inline function.
8921
8922 2002-04-15  Richard Henderson  <rth@redhat.com>
8923
8924         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
8925         config/i386/linux-aout.h, config/i386/linux-oldld.h,
8926         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
8927         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
8928         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
8929         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
8930         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
8931         Define __gnu_linux__, not gnu_linux.
8932         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
8933
8934 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
8935
8936         Remove Chill front end.
8937         * gcc.c (default_compilers): Remove Chill entries.
8938         * ch: Remove directory.
8939         * doc/frontends.texi: Remove information about Chill.
8940         * doc/sourcebuild.texi: Likewise.
8941         * doc/standards.texi: Likewise.
8942
8943 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
8944
8945         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
8946         (LONGLONG_STANDALONE): Define.
8947
8948 2002-04-15  David S. Miller  <davem@redhat.com>
8949
8950         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
8951         Call emit_library_call with LCT_NORMAL.
8952         (sparc_initialize_trampoline): Use LCT_foo instead of
8953         magic constant in emit_library_call invocations.
8954         (sparc64_initialize_trampoline): Likewise.
8955         (sparc_profile_hook): Likewise.
8956         * config/sparc/sparc.md: Likewise.
8957
8958         * config/sparc/sparc.c (sparc_extra_constraint_check):
8959         Fix type of argument 'c'.
8960         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
8961         Likewise.
8962
8963 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8964
8965         * diagnostic.h (output_buffer_state): Redefine.
8966         (output_format_decoder): New macro.
8967         (output_prefixing_rule): Likewise.
8968         (output_line_cutoff): Likewise.
8969         (diagnostic_format_decoder): Adjust.
8970         (diagnostic_prefixing_rule): Likewise.
8971         (diagnostic_line_cutoff): Likewise.
8972         (diagnostic_state): Likewise.
8973         (diagnostic_kind_count): Likewise.
8974         (diagnostic_buffer): Now a macro.
8975
8976         * diagnostic.c (diagnostic_buffer): Remove definition.
8977         (output_is_line_wrapping): Adjust.
8978         (set_real_maximum_length): Likewise.
8979         (output_set_maximum_length): Likewise.
8980         (init_output_buffer): Likewise.
8981         (lhd_print_error_function): Likewise.
8982         (output_do_verbatim): Likewise.
8983
8984 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8985
8986         * cpperror.c (print_location): Don't print include chain
8987         if line == 0.
8988         (cpp_begin_message): Update to use DL_ macros.
8989         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8990         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8991         cpp_notice, cpp_notice_from_errno): Remove.
8992         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8993         level.
8994         (cpp_errno): New.
8995         * cppexp.c (CPP_ICE): Remove.
8996         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
8997         lex, integer_overflow, _cpp_parse_expr): Update.
8998         * cppfiles.c (read_include_file, find_include_file,
8999         handle_missing_header, _cpp_read_file, remap_filename): Update.
9000         * cpphash.h (enum error_type): Remove.
9001         (_cpp_begin_message): Update.
9002         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
9003         cpp_handle_option, cpp_post_options): Update.
9004         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
9005         skip_whitespace, parse_identifier, parse_slow, parse_string,
9006         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
9007         cpp_interpret_charconst): Update.
9008         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
9009         lex_macro_node, do_undef, glue_header_name, parse_include,
9010         do_include_common, read_flag, do_line, do_linemarker, do_ident,
9011         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
9012         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
9013         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
9014         _cpp_pop_buffer, do_diagnostic): Update.
9015         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
9016         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
9017         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
9018         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
9019         cpp_notice, cpp_notice_from_errno): Remove.
9020         (cpp_error, cpp_error_with_line): Update to take a diagnostic
9021         level.
9022         (cpp_errno): New.
9023         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
9024         collect_args, enter_macro_context, save_parameter, parse_params,
9025         _cpp_create_definition, check_trad_stringification,
9026         cpp_macro_definition): Update.
9027         * cppmain.c (cpp_preprocess_file): Update.
9028         * fix-header.c (read_scan_file): Update.
9029
9030 2002-04-14  Andreas Schwab  <schwab@suse.de>
9031
9032         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
9033
9034 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9035
9036         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
9037
9038 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9039
9040         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
9041         not gnu_hurd.
9042
9043 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
9044
9045         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
9046
9047 2002-04-13      Joel Sherrill <joel@OARcorp.com>
9048
9049         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
9050         sparc-elf and sparc-rtems targets.
9051
9052 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9053
9054         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
9055         defined, and __gnu_hurd__ wherever __GNU__ is defined.
9056         * arm/linux-elf.h: Likewise.
9057         * cris/aout.h: Likewise.
9058         * cris/linux.h: Likewise.
9059         * i370/linux.h: Likewise.
9060         * i386/gnu.h: Likewise.
9061         * i386/linux-aout.h: Likewise.
9062         * i386/linux-oldld.h: Likewise.
9063         * i386/linux.h: Likewise.
9064         * i386/linux64.h: Likewise.
9065         * ia64/linux.h: Likewise.
9066         * m68k/linux-aout.h: Likewise.
9067         * m68k/linux.h: Likewise.
9068         * mips/linux.h: Likewise.
9069         * pa/pa-linux.h: Likewise.
9070         * pj/linux.h: Likewise.
9071         * rs6000/sysv4.h: Likewise.
9072         * s390/linux.h: Likewise.
9073         * sh/linux.h: Likewise.
9074         * sparc/linux-aout.h: Likewise.
9075         * sparc/linux.h: Likewise.
9076         * sparc/linux64.h: Likewise.
9077         * xtensa/linux.h: Likewise.
9078
9079 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
9080
9081         * stmt.c (check_unique_operand_names): Expect operand names to
9082         be strings rather than identifiers.  Use simple_cst_equal to
9083         compare them.
9084         (resolve_operand_name_1): Make same identifier to string change here.
9085         * c-parse.in (asm_operand): Convert a named operand into a string.
9086         * cp/parse.y (asm_operand): Likewise.
9087
9088 2002-04-13  Andreas Schwab  <schwab@suse.de>
9089
9090         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
9091
9092 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
9093
9094         Revert these changes:
9095
9096         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9097
9098         PR c++/5571
9099         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9100
9101 2002-04-12  Richard Henderson  <rth@redhat.com>
9102
9103         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
9104         (sparc*-*-solaris): Clean up header files.
9105         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
9106         and plan on generating 64-bit code.
9107         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
9108         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
9109         * config/sparc/sol2-sld-64.h: Rename ...
9110         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
9111         for AS_SPARC64_FLAG not defined.
9112         * config/sparc/sol2-gld-bi.h: New.
9113         * config/sparc/sol2-sld.h: Remove.
9114         * config/sparc/sol26-sld.h: New.
9115         * config/sparc/sol2.h: Tidy comments.
9116         * doc/install.texi: Document sparc-solaris configury changes.
9117
9118 2002-04-12  Richard Henderson  <rth@redhat.com>
9119
9120         * recog.c (offsettable_address_p): Match the logic in adjust_address.
9121
9122         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
9123         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
9124
9125 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9126
9127         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
9128
9129 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
9130
9131         * pa.c (pa_can_combine_p): Call extract_insn before calling
9132         constrain_operands.
9133
9134 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
9135
9136         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
9137         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
9138         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
9139         (CPP_PREDEFINES): Handle __declspec.
9140         * config/i386/t-interix (USER_H): Remove.
9141
9142 2002-04-12  DJ Delorie  <dj@redhat.com>
9143
9144         * integrate.c (compare_blocks): Make comparisons safe for when
9145         sizeof(int) < sizeof(char *).
9146         (find_block): Likewise.
9147
9148 2002-04-12  Jan Hubicka  <jh@suse.cz>
9149             David Edelsohn  <edelsohn@gnu.org>
9150
9151         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
9152         registers.
9153         (symbol_ref_operand): New.
9154         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
9155         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
9156
9157 2002-04-12  Andreas Schwab  <schwab@suse.de>
9158
9159         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
9160         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
9161         overrides the definition in config/svr4.h.
9162
9163 2002-04-12      Eric Norum <eric.norum@usask.ca>
9164
9165         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
9166         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
9167         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
9168         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
9169         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
9170         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
9171         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
9172         definitions to config/rtems.h and make the targets more similar.
9173
9174 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9175
9176         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
9177         POINTERS_EXTEND_UNSIGNED.
9178         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
9179         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
9180
9181         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
9182         not specified.
9183
9184 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
9185
9186         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
9187         depends on TARGET_SHMEDIA, not TARGET_SH5.
9188
9189 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
9190
9191         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
9192         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
9193
9194 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
9195
9196         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
9197         no r0 clobber.
9198
9199 2002-04-12  Andreas Schwab  <schwab@suse.de>
9200
9201         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
9202
9203 2002-04-12  Richard Henderson  <rth@redhat.com>
9204
9205         PR bootstrap/4191
9206         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
9207
9208         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
9209         modes spanning multiple hard regs.
9210
9211         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
9212
9213 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9214
9215         * pa.c (pa_output_function_prologue): Don't accumulate the total
9216         number of code bytes when using TARGET_64BIT, or gas, SOM and not
9217         the portable runtime.
9218         (output_deferred_plabels): Handle 64bit plabels.
9219         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
9220         generating pic code using the GAS assembler for object formats that
9221         are not SOM (ie., ELF32 and ELF64).
9222         (output_millicode_call): Check attribute type if attribute length is 28.
9223         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
9224         dbr_sequence_length once.
9225         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
9226         dbr_sequence_length once.
9227         * pa.h (TARGET_SOM): Define if not defined.
9228         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
9229         with GAS and not SOM.
9230         (jump, call_internal_reg, call_value_internal_reg): Likewise.
9231         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
9232
9233 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9234
9235         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
9236         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
9237         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
9238         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
9239         elfos.h and dbxelf.h values are fine now.
9240         * config/i386/freebsd.h, config/alpha/freebsd.h
9241         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
9242
9243 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9244
9245         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
9246         or set Acpu or Amachine.  Reformat.
9247         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9248         define.
9249         (LINK_SPEC): Do not need to undef.
9250         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
9251         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
9252         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9253         define.
9254         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
9255         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
9256         (LINK_SPEC): Do not need to undef.
9257         (DONT_USE_BUILTIN_SETJMP): Do not define.
9258         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
9259         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
9260         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
9261         Remove trailing spaces.
9262         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
9263         __ELF__, or set Acpu or Amachine.  Reformat.
9264         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9265         define.
9266
9267 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9268
9269         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
9270         all other *-*-freebsd* targets.
9271
9272 2002-04-11  Richard Henderson  <rth@redhat.com>
9273
9274         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
9275
9276 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9277
9278         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
9279         Include {cpu}/{cpu}.h thru tm_file.
9280         (alpha*-*-linux*ecoff): Remove target.
9281         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
9282         (LINK_SPEC): Remove, is not OS independent.
9283         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
9284         (LINK_SPEC): Do not need to #undef any longer.
9285         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
9286         any longer.
9287         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
9288         __ELF__.
9289         (LINK_SPEC): Moved here from alpha/elf.h.
9290         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
9291         SUB_CPP_PREDEFINES.
9292         * config/alpha/linux-ecoff.h: Remove.
9293         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
9294         (CPP_SPEC): Define _POSIX_SOURCE as needed.
9295         (CPP_SUBTARGET_SPEC): Do not define.
9296         (LINK_SPEC): Do not need to #undef any longer.
9297         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
9298         * config/alpha/vms.h: Likewise.
9299
9300 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
9301
9302         * doc/extend.texi: Remove old claim that typedefs cannot have
9303         an alignment attribute.
9304
9305 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9306
9307         PR optimization/6177
9308         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
9309         bitpos is 0 and bitsize CONCAT size.
9310
9311 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9312
9313         PR c/6223
9314         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
9315
9316 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
9317
9318         * config/alpha/freebsd.h: Minor reformatting.
9319         (CPP_SPEC): Define ELF and add cpp_subtarget.
9320         (ASM_SPEC): No longer needed.
9321
9322 2002-04-11  Richard Henderson  <rth@redhat.com>
9323
9324         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
9325         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
9326         (dimode mem/zero splitter): New.
9327
9328 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
9329
9330         * config/cris/cris.c (cris_override_options): Tweak error message
9331         for PIC not implemented.
9332
9333         * config/cris/cris.h: Tweak comments related to parameter-passing.
9334
9335         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
9336
9337 2002-04-10  Richard Henderson  <rth@redhat.com>
9338
9339         * except.c (add_ehl_entry): Allow duplicates after landing pad
9340         creation.
9341
9342 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
9343
9344         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
9345
9346 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
9347
9348         * c-decl.c (c_init_decl_processing): Move generation of
9349         decls for g77_integer_type_node and friends from here ...
9350         * c-common.c (c_common_nodes_and_builtins): ... to here.
9351
9352 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
9353
9354         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
9355         is only used as frame pointer when frame_pointer_needed is true.
9356
9357 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
9358
9359         PR target/817
9360         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
9361         for the fact that the pool entry uses two words.
9362         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
9363         1k bytes.
9364         (movdf_soft_insn): Similarly.
9365         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
9366         for the fact that the pool entry uses three words.
9367
9368 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
9369
9370         * config/mips/mips.c (mips_va_arg): When using the struct version
9371         of the EABI va_list, allow arguments in the register save area to
9372         take up less room than a stack argument.
9373
9374 2002-04-10  Richard Henderson  <rth@redhat.com>
9375
9376         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
9377         if EXPAND_INITIALIZER.
9378
9379 2002-04-09  Richard Henderson  <rth@redhat.com>
9380
9381         * config/alpha/alpha.md (movdi_er_maybe_g): New.
9382         * config/alpha/alpha.c (alpha_expand_mov): Use it.
9383
9384 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
9385
9386         PR optimization/6233
9387         * rtlanal.c (pure_call_p): New function.
9388         * rtl.h (pure_call_p): Declare.
9389         * loop.c (prescan_loop): Use it to set has_nonconst_call.
9390         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
9391
9392 2002-04-09  Eric Christopher  <echristo@redhat.com>
9393
9394         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
9395         information to .comm directive.
9396
9397 2002-04-09  Richard Henderson  <rth@redhat.com>
9398
9399         PR c/5078
9400         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
9401
9402 2002-04-09  Richard Henderson  <rth@redhat.com>
9403
9404         * basic-block.h (flow_delete_block_noexpunge): Declare.
9405         (expunge_block_nocompact): Declare.
9406         * cfg.c (expunge_block_nocompact): Split out from ...
9407         (expunge_block): ... here.
9408         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
9409         (flow_delete_block_noexpunge): Split out from ...
9410         (flow_delete_block): ... here.
9411         * cfgcleanup.c (delete_unreachable_blocks): Compact while
9412         removing dead blocks.
9413         * except.c (exception_handler_labels): Remove.
9414         (exception_handler_label_map): New.
9415         (struct eh_region): Add aka member.
9416         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
9417         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
9418         (for_each_eh_label, for_each_eh_label_1): New.
9419         (init_eh): Register exception_handler_label_map.
9420         (free_eh_status): Use free_region.
9421         (find_exception_handler_labels): Use the map, not the list.
9422         (remove_exception_handler_label): Likewise.
9423         (maybe_remove_eh_handler): Likewise.
9424         (remove_eh_handler): Use the region aka bitmap.
9425         * except.h (exception_handler_labels): Remove.
9426         (for_each_eh_label): Declare.
9427         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
9428         * loop.c (invalidate_loops_containing_label): New.
9429         (find_and_verify_loops): Use it.  Use for_each_eh_label.
9430         * sched-rgn.c (is_cfg_nonregular): Use
9431         current_function_has_exception_handlers.
9432
9433 2002-04-09  Richard Henderson  <rth@redhat.com>
9434
9435         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
9436         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
9437         Do not return changed status.
9438         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
9439         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
9440         New functions that do return changed status.
9441         * sbitmap.h: Update decls.
9442         * gcse.c, lcm.c: Use _cg functions as needed.
9443
9444 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
9445
9446         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
9447         (sh64-*-elf*, sh-*-rtemself*): Likewise.
9448         * config/sh/embed_bb.c: New file.
9449         * config/sh/embed-elf.h: New file.
9450         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
9451         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
9452         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
9453         __PTRDIFF_TYPE__ .
9454         (SUBTARGET_CPP_PTR_SPEC): Don't define.
9455         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
9456         Add subtarget_asm_endian_spec.
9457         (ASM_SPEC): Use subtarget_asm_endian_spec.
9458         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
9459         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
9460         (WCHAR_UNSIGNED): Define.
9461         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
9462         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
9463         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
9464         Fix value.
9465         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
9466         (sh_adjust_cost): Likewise.
9467         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
9468         __PTRDIFF_TYPE__ .
9469         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
9470         (WCHAR_TYPE_SIZE): Likewise.
9471         (ASM_SPEC): Use subtarget_asm_endian_spec.
9472         (SH_ELF_WCHAR_TYPE): #undef/ #define.
9473         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
9474         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
9475         (MAX_WCHAR_TYPE_SIZE): Don't #define .
9476         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
9477         (USER_LABEL_PREFIX): Don't #undef /#define .
9478         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
9479         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
9480         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
9481         (ASM_SPEC): Likewise.
9482         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
9483         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
9484         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
9485         (LIB2FUNCS_EXTRA): Define.
9486         * t-sh64 (LIB2FUNCS_EXTRA): Define.
9487         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
9488         (LIB1ASMFUNCS_CACHE): Define.
9489         (LIB2FUNCS_EXTRA): Redefine empty.
9490
9491 2002-04-08  Richard Henderson  <rth@redhat.com>
9492
9493         * reorg.c (get_branch_condition): Use reversed_comparison_code.
9494
9495 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9496
9497         * config/m68hc11/larith.asm (__map_data_section): Fix condition
9498         and optimize for size.
9499         (__do_global_ctors): Fix pointer comparison.
9500         (__do_global_dtors): Likewise.
9501
9502 2002-04-09  David S. Miller  <davem@redhat.com>
9503
9504         * config/sparc/sparc.c (sparc_extra_constraint_check): New
9505         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
9506         allow reloading pseudos.
9507         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
9508         * config/sparc/sparc-protos.h: Declare it.
9509
9510         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
9511         unsigned comparison warning.
9512         (output_restore_regs): Mark leaf_function as unused.
9513
9514 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9515
9516         * expr.c (is_aligning_offset): New function.
9517         (expand_expr, case COMPONENT_EXPR): Call it.
9518
9519 2002-04-08  David S. Miller  <davem@redhat.com>
9520
9521         PR target/6082
9522         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
9523
9524         Make init_priority work on Sparc when using GNU ld.
9525         * config/sparc/linux.h, config/sparc/linux64.h,
9526         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
9527         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
9528         * config/sparc/sol2-gld.h: New file to do the same.
9529         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
9530         sparc/sol2-gld.h to tm_file.
9531
9532         PR optimization/4328
9533         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
9534         * doc/md.texi: Document it.
9535         * config/sparc/sparc.md (movdi_insn_sp64_novis,
9536         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
9537         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
9538         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
9539         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
9540
9541 2002-04-08  Andreas Jaeger  <aj@suse.de>
9542
9543         * stmt.c (expand_asm_operands): Revert last patch from Richard
9544         Henderson.
9545
9546 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9547
9548         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
9549         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
9550
9551 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9552
9553         * doc/contrib.texi (Contributors): Add David O'Brien.
9554
9555 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
9556
9557         * configure.in (auto-build.h): Use target_alias and build_alias
9558         when running configure.
9559         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
9560         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
9561         * configure: Regenerate.
9562
9563 2002-04-07  David S. Miller  <davem@redhat.com>
9564
9565         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
9566
9567 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9568
9569         PR 5933
9570         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
9571         generating 32-bit pic code.
9572
9573 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
9574
9575         * cppinit.c (cpp_create_reader): Initialize
9576         discard_comments_in_macro_exp.
9577         (COMMAND_LINE_OPTIONS): Add "-CC" option.
9578         (cpp_handle_option): Handle "-CC" option.
9579         * cpplex.c (save_comment): If saving a C++ comment in
9580         a directive, convert it to a C comment.
9581         (_cpp_lex_direct): Pass second comment start character to
9582         save_comment to indicate comment type.
9583         * cpplib.c (_cpp_handle_directive): If processing
9584         a "#define" directive and discard_comments_in_macro_exp
9585         is false,  re-enable saving of comments.
9586         (lex_macro_node): If discard_comments_in_macro_exp is false,
9587         discard any comments before the macro identifier.
9588         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
9589         member.
9590         * cppmacro.c (cpp_get_token): If expanding a macro while
9591         processing a directive, discard any comments we might encounter.
9592         (parse_params): If discard_comments_in_macro_exp is false,
9593         ignore comments in the macro parameter list.
9594         * gcc.c (cpp_unique_options): Add "-CC" option.
9595         (option_map): Map "--comments-in-macros" to "-CC".
9596         * doc/cppopts.texi: Document "-CC" option.
9597         * f/lang-specs.h: Add "-CC" option.
9598         * testsuite/gcc.dg/cpp/maccom1.c: New test.
9599         * testsuite/gcc.dg/cpp/maccom2.c: New test.
9600         * testsuite/gcc.dg/cpp/maccom3.c: New test.
9601         * testsuite/gcc.dg/cpp/maccom4.c: New test.
9602         * testsuite/gcc.dg/cpp/maccom5.c: New test.
9603         * testsuite/gcc.dg/cpp/maccom6.c: New test.
9604
9605 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9606
9607         PR middle-end/6180
9608         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
9609
9610 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9611
9612         PR c++/5571
9613         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9614
9615         PR opt/5120
9616         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
9617         RTX_UNCHANGING_P for the functions arguments when a tail call
9618         is made.
9619
9620 2002-04-06  Jason Merrill  <jason@redhat.com>
9621
9622         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
9623         (parse_options_and_default_flags): Set them appropriately.
9624         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
9625
9626 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
9627
9628         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
9629         here.
9630
9631         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
9632         semicolon.
9633
9634         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
9635         types come in by-reference.  Fix typo in comment.
9636
9637 2002-04-05  David S. Miller  <davem@redhat.com>
9638
9639         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
9640         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
9641         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
9642         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
9643
9644 2002-04-05  David S. Miller  <davem@redhat.com>
9645
9646         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
9647         are not going to emit return instructions, emit at least a nop
9648         for the sake of sane backtraces.
9649
9650 2002-04-05  Richard Henderson  <rth@redhat.com>
9651
9652         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
9653
9654 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
9655
9656         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
9657
9658 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
9659
9660         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
9661         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
9662         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
9663
9664 2002-04-05  Andreas Schwab  <schwab@suse.de>
9665
9666         * c-convert.c: Include c-common.h.
9667         * Makefile.in (c-convert.o): Updated.
9668
9669 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9670
9671         * mklibgcc.in: Use separate libgcc.map for each multilib.
9672         * Makefile.in (distclean): Don't remove libgcc.map here.
9673
9674 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9675
9676         * Makefile.in (s-mlib): Handle --disable-multilib by separate
9677         genmultilib invocation.
9678
9679 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
9680
9681         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
9682         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
9683         to num_gprs for symmetry.
9684         * config/mips/mips.c: Adjust accordingly.
9685
9686 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9687
9688         * c-common.c (truthvalue_conversion): Rename, update.
9689         * c-common.h (c_common_truthvalue_conversion): New.
9690         * c-convert.c (convert): Update.
9691         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9692         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
9693         * c-typeck.c (build_binary_op, build_unary_op,
9694         build_conditional_expr): Update.
9695         * fold-const.c (constant_boolean_node, fold): Use langhook.
9696         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
9697         * langhooks.h (struct lang_hooks): New hook.
9698         * stmt.c (expand_decl_cleanup): Use langhook.
9699         * tree.h (truthvalue_conversion): Remove.
9700 objc:
9701         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9702
9703 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
9704
9705         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
9706         Add rules to make null object file.
9707
9708 2002-04-04  Jim Blandy  <jimb@redhat.com>
9709
9710         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
9711         macro formal parameter names.
9712
9713 2002-04-04  David S. Miller  <davem@redhat.com>
9714
9715         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
9716
9717 2002-04-04  Richard Henderson  <rth@redhat.com>
9718
9719         PR middle-end/5099
9720         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
9721         Support copies into and out of memory.  Don't accept allows_reg
9722         and allows_mem as gospel.
9723
9724 2002-04-04  Richard Henderson  <rth@redhat.com>
9725
9726         PR opt/6165
9727         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
9728         (write_dependence_p): Likewise.
9729
9730 2002-04-04  Richard Henderson  <rth@redhat.com>
9731
9732         * predict.c (estimate_bb_frequencies): Do frequency calculation
9733         with a volatile temporary.
9734
9735 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
9736
9737         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
9738
9739 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9740
9741         PR c++/6119
9742         * final.c (final_start_function): Don't bump profile_label_no here...
9743         (final_end_function): ...but here.
9744
9745 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9746
9747         * config/sparc/sparc.md (pic): New attribute.
9748         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
9749         into stack slots.
9750         (split after do_builtin_setjmp_setup): New.
9751
9752 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9753
9754         PR fortran/6106
9755         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
9756         change.
9757
9758 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9759
9760         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
9761         UNITS_PER_WORD for zero sized aggregates.
9762
9763 2002-04-03  David S. Miller  <davem@redhat.com>
9764
9765         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
9766         one-character spec for this, just use %(link_gcc_c_sequence).
9767
9768 2002-04-03  David S. Miller  <davem@redhat.com>
9769
9770         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
9771         handling.
9772
9773 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9774
9775         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
9776         (DWARF_FRAME_RETURN_COLUMN): Move.
9777         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9778         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
9779         * pa.c (except.h, predict.h): Include.
9780         (FRP): Delete.
9781         (store_reg_modify, set_reg_plus_d): Revise prototypes.
9782         (output_ascii): Add cast.
9783         (store_reg_modify): Revise to add frame notes.
9784         (set_reg_plus_d): Likewise.
9785         (compute_frame_size): Include space for eh data registers in frame if
9786         the current function calls eh_return.
9787         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
9788         function calls eh_return.  Save eh data registers if the current
9789         function calls eh_return.  Fix code to add frame notes.  Emit
9790         blockage to prevent insns with frame notes being scheduled in the
9791         delay slot of calls.
9792         (hppa_expand_epilogue): Restore eh data registers and do final stack
9793         adjustment if the current function calls eh_return.  Don't add frame
9794         notes.
9795         (output_call): Revise for change in length of call insn.  Don't do
9796         return pointer adjustment for an unconditional jump in the delay slot
9797         of a call when using frame notes.
9798         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
9799         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
9800         (ARG_POINTER_CFA_OFFSET): Define.
9801         * pa.md (return_external_pic): New pattern.
9802         (prologue): Correct formatting.  Use return_external_pic if current
9803         function calls eh_return.
9804         (call_internal_symref, call_value_internal_symref,
9805         sibcall_internal_symref, sibcall_value_internal_symref): Change default
9806         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
9807         respectively.
9808         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
9809
9810         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
9811         list of targets to check using "nop" insn.
9812         * configure: Rebuilt.
9813
9814 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
9815
9816         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
9817
9818 2002-04-03  David S. Miller  <davem@redhat.com>
9819
9820         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
9821         library sequence passed to the linker.
9822         (LINK_COMMAND_SPEC): Use it.
9823         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
9824         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
9825         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9826
9827 2002-04-03  Jason Merrill  <jason@redhat.com>
9828
9829         * except.c (struct eh_status): Remove protect_list.
9830         (begin_protect_partials, end_protect_partials): Remove.
9831         (add_partial_entry): Remove.
9832         * except.h: Remove prototypes.
9833
9834         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
9835         expand_decl_cleanup_eh.
9836
9837         PR c++/5636
9838         * tree.h (CLEANUP_EH_ONLY): New macro.
9839         * stmt.c (expand_decl_cleanup_eh): New fn.
9840         (expand_cleanups): Check CLEANUP_EH_ONLY.
9841         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
9842         Use expand_decl_cleanup_eh.
9843         (expand_stmt): Adjust.
9844         * c-common.h: Adjust prototype.
9845
9846 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
9847
9848         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
9849         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
9850         (cris_target_asm_function_epilogue): Ditto.
9851         (cris_initial_frame_pointer_offset): Ditto.
9852         (cris_simple_epilogue): Ditto.
9853         (cris_expand_builtin_va_arg): Variable-size types come in
9854         by-reference.
9855
9856 2002-04-03  David S. Miller  <davem@redhat.com>
9857
9858         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
9859         little-endian.
9860         (set_fast_math): Correct 'fsr' type.
9861
9862 2002-04-03  Richard Henderson  <rth@redhat.com>
9863
9864         PR opt/3569
9865         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
9866         * toplev.c (check_global_declarations): Use it.
9867         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
9868         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9869         (LANG_HOOKS_DECLS): Add it.
9870         * langhooks.c (lhd_warn_unused_global_decl): New.
9871         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9872         * c-objc-common.c (c_warn_unused_global_decl): New.
9873         * c-tree.h (c_warn_unused_global_decl): Declare.
9874         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9875
9876 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9877
9878         * langhooks-def.h (lhd_set_decl_assembler_name,
9879         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
9880         (LANG_HOOKS_INITIALIZER): Update.
9881         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
9882         * langhooks.h (struct lang_hooks): New hook.
9883         * tree.c (set_decl_assembler_name): Move to langhooks.c.
9884         (lang_set_decl_assembler_name): Remove.
9885         (init_obstacks): Don't set hook.
9886         (decl_assembler_name): New function.
9887         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
9888         (decl_assembler_name): New.
9889         (lang_set_decl_assembler_name): Remove.
9890
9891 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9892
9893         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
9894         works properly with .hidden symbols.
9895         * configure: Rebuilt.
9896         * config.in: Rebuilt.
9897         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9898         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
9899         properly with .hidden symbols.
9900
9901 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9902
9903         PR middle-end/6102
9904         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
9905         USE argument.
9906
9907 2002-04-03  Richard Henderson  <rth@redhat.com>
9908
9909         PR opt/4120
9910         * sched-rgn.c (sets_likely_spilled): New.
9911         (sets_likely_spilled_1): New.
9912         (add_branch_dependences): Use it.
9913
9914 2002-04-02  Richard Henderson  <rth@redhat.com>
9915
9916         PR opt/4311
9917         * loop.h (LOOP_FIRST_PASS): New.
9918         * loop.c (strength_reduce): Mind it when deciding to unroll.
9919         * toplev.c (rest_of_compilation): Set it.
9920
9921 2002-04-02  David S. Miller  <davem@redhat.com>
9922
9923         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
9924         mems_ok_for_ldd_peep when the order of the loads being examined
9925         is reversed.
9926         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
9927         existing comment to increase comprehension of this situation.
9928
9929 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
9930
9931         * config/sh/sh.md: Don't use union real_extract.
9932
9933 2002-04-02  Richard Henderson  <rth@redhat.com>
9934
9935         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
9936
9937 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9938
9939         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
9940         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
9941         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
9942         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
9943         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
9944         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
9945         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
9946         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
9947         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
9948         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
9949         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
9950         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
9951         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
9952         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
9953         Include as many configury headers via tm_file as possible.  This
9954         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
9955         * config/openbsd-oldgas.h: New file.
9956         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
9957         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
9958         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
9959         config/i386/i386-coff.h, config/i386/i386-interix.h,
9960         config/i386/iscdbx.h, config/i386/linux-aout.h,
9961         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
9962         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
9963         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
9964         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
9965         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
9966         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
9967         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
9968         config/i386/vxi386.h: Do not directly include configury headers.
9969         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
9970         Directly include configury headers that are no longer automatically
9971         included by the above headers.
9972         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
9973         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
9974         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
9975         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
9976         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
9977         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
9978         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
9979         (TARGET_VERSION): Define.
9980         * config/i386/beos-elf.h, config/i386/freebsd.h,
9981         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
9982         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
9983         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
9984         config/i386/sco5.h, config/i386/sysv4.h
9985         (TARGET_VERSION): Do not need to protect.
9986         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
9987         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
9988         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
9989         config/i386/i386-interix.h, config/i386/linux-aout.h,
9990         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
9991         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
9992         (YES_UNDERSCORES): Do not define - not needed.
9993         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
9994         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9995         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
9996         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
9997         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9998         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
9999         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
10000         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
10001
10002 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
10003             Richard Henderson  <rth@redhat.com>
10004
10005         PR c/5484
10006         * function.c (assign_temp): Accept either type or decl argument.
10007         Detect variables whose size is too large to fit into an integer.
10008         * stmt.c (expand_decl): Pass the decl, not the type.
10009
10010 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
10011
10012         * protoize.c: Match include directory usage with cppdefault.c.
10013
10014 2002-04-03  Jeffrey A Law  (law@redhat.com)
10015             Hans-Peter Nilsson  <hp@bitrange.com>
10016
10017         * combine.c (simplify_comparison): Avoid narrowing a comparison
10018         with a paradoxical subreg when doing so would drop signficant bits.
10019
10020 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
10021
10022         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
10023         if POINTERS_EXTEND_UNSIGNED is defined.
10024
10025 2002-04-02  Richard Henderson  <rth@redhat.com>
10026
10027         PR opt/3967
10028         * local-alloc.c (contains_replace_regs): LO_SUM may contain
10029         replace regs.
10030
10031 2002-04-02  Richard Henderson  <rth@redhat.com>
10032
10033         * doc/standards.texi: Document required freestanding libc entry points.
10034
10035 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
10036
10037         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
10038         associated splitter.  Remove MQ constraint.
10039         (ctrdi_internal4): Correct CCmode clobber.
10040
10041 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10042
10043         * milli64.S ($$dyncall): New function.
10044         * t-linux (LIB1ASMFUNCS): Revise module list.
10045         (LIB1ASMSRC): Use pa/milli64.S.
10046
10047 2002-04-02  Richard Henderson  <rth@redhat.com>
10048
10049         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
10050         rename solaris_sys_varargs_h.
10051
10052 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10053
10054         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
10055         the same mode as its component.
10056
10057 2002-04-02  Richard Henderson  <rth@redhat.com>
10058
10059         PR opt/190
10060         * final.c (this_is_asm_operands): Export.
10061         * output.h (this_is_asm_operands): Declare.
10062         * config/i386/i386.c (print_operand): Error odd asm operands.
10063
10064 2002-04-02  Richard Henderson  <rth@redhat.com>
10065
10066         PR opt/420
10067         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
10068
10069 2002-04-01  Richard Henderson  <rth@redhat.com>
10070
10071         PR target/1538
10072         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
10073         * fixinc/fixincl.x: Rebuild.
10074
10075 2002-04-01  Richard Henderson  <rth@redhat.com>
10076
10077         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
10078         (atomic_alloc, atomic_free): New.
10079         (SIZE, MASK_FOR, PTR_IN): New.
10080         (emergency_reg_state, emergency_reg_state_free): New.
10081         (emergency_labeled_state, emergency_labeled_state_free): New.
10082         (reg_state_alloced, labeled_state_alloced): New.
10083         (alloc_reg_state, free_reg_state): New.
10084         (alloc_label_state, free_label_state, free_label_states): New.
10085         (push, pop, dup_state_stack, free_state_stack): Use them.
10086         (desc_label_state): Likewise.
10087         (uw_frame_state_for): Free label states and state stack.
10088         (uw_update_reg_address): Eliminate warnings.
10089
10090 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
10091
10092         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
10093         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
10094
10095 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10096
10097         * c-decl.c (grokdeclarator): Update.
10098         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10099         * c-tree.h (c_mark_addressable): New.
10100         * c-typeck.c (default_function_array_conversion, build_unary_op,
10101         build_array_ref, convert_for_assignment): Update.
10102         (mark_addressable): Rename.
10103         * calls.c (try_to_integrate, expand_call): Use langhook.
10104         * expr.c (expand_expr): Use langhook.
10105         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
10106         * langhooks.h (struct lang_hooks): New hook.
10107         * stmt.c (expand_asm_operands): Use langhook.
10108         * tree.h (mark_addressable): Remove.
10109 objc:
10110         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10111
10112 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10113
10114         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
10115         in previous change.
10116
10117 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10118
10119         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
10120         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
10121
10122 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10123
10124         * c-common.c (unsigned_conversion_warning, convert_and_check,
10125         unsigned_type, signed_type, shorten_compare,
10126         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
10127         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
10128         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
10129         New.
10130         * c-decl.c (grokdeclarator): Update.
10131         * c-format.c (check_format_types): Update.
10132         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10133         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10134         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
10135         * convert.c (convert_to_integer): Use new hooks.
10136         * expmed.c (make_tree): Use new hooks.
10137         * expr.c (store_expr): Use new hooks.
10138         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
10139         all_ones_mask_p, unextend, fold): Use new hooks.
10140         * langhooks.h (struct lang_hooks_for_types): New hooks.
10141         * tree.h (signed_or_unsigned_type, signed_type,
10142         unsigned_type): Remove.
10143 objc:
10144         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10145         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10146
10147 2002-03-31  Richard Henderson  <rth@redhat.com>
10148
10149         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
10150         (desc_frgr_mem): Fix reference to f16-f31.
10151
10152 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10153
10154         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
10155         RTVEC_ELT): Const-ify.
10156         * varray.h (VARRAY_CHECK): Const-ify.
10157         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
10158         ggc_mark_rtvec, ggc_mark): Const-ify.
10159
10160 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10161
10162         * diagnostic.c: Include langhooks-def.h.
10163         * Makefile.in (diagnostic.o): Update.
10164
10165 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10166
10167         * c-common.c (c_unsafe_for_reeval): Rename.
10168         * c-common.h (c_unsafe_for_reeval): Rename.
10169         * c-decl.c (finish_incomplete_decl): Rename.
10170         (c_init_decl_processing): Don't set langhook.
10171         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10172         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10173         * c-objc-common.c (c_objc_common_init): Don't set langhook.
10174         * c-tree.h (finish_incomplete_decl): Rename.
10175         * langhooks-def.h (lhd_unsafe_for_reeval): New.
10176         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
10177         (LANG_HOOKS_INITIALIZER): Update.
10178         * langhooks.c (lhd_unsafe_For_reeval): New.
10179         * langhooks.h (struct langhooks): New hooks.
10180         * toplev.c (incomplete_decl_finalize_hook): Remove.
10181         (wrapup_global_declarations): Update.
10182         * tree.c (lang_unsafe_for_reeval): Remove.
10183         (unsafe_for_reeval): Update.
10184         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
10185         Remove.
10186 objc:
10187         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10188         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10189
10190 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10191
10192         * diagnostic.c (print_error_function): Remove.
10193         (default_print_error_function): Rename.
10194         (report_error_function): Update.
10195         * diagnostic.h (print_error_function): Remove.
10196         (default_print_error_function): Remove.
10197         * langhooks-def.h (struct diagnostic_context): Predeclare.
10198         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
10199         (LANG_HOOKS_INITIALIZER): Update.
10200         * langhooks.h (struct diagnostic context): Predeclare.
10201         (struct lang_hooks): New hook.
10202
10203 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10204
10205         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
10206         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
10207         !flag_pic.
10208         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
10209         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
10210         of PIC_OFFSET_TABLE_REGNUM thruout.
10211         * config/rs6000/rs6000.md: Likewise.
10212         * config/rs6000/darwin.h: Likewise.
10213
10214 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10215
10216         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
10217         unsigned HOST_WIDE_INT, not unsigned int.
10218
10219 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10220
10221         PR middle-end/6096, middle-end/6098, middle-end/6099
10222         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
10223         CODE_LABELs.
10224         (fill_slots_from_thread): Likewise.
10225
10226 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10227
10228         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
10229         floating fields in float regs.
10230         (function_arg_record_value_2): Likewise.
10231
10232 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10233
10234         * config/mmix/mmix.md (define_constants): Remove misleading
10235         FIXME.  Add MMIX_fp_rO_OFFSET.
10236         ("nonlocal_goto_receiver"): Don't have stack-frame address of
10237         saved rO as part of the pattern.  Remove FIXME.
10238         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
10239         here, at output-time.
10240
10241 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10242
10243         PR middle-end/6100
10244         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
10245         REG_BR_PRED.
10246         (output_v9branch): Likewise.
10247
10248 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10249
10250         * gcc.c: Revert previous patch for now.
10251         * config/i386/djgpp.h: Likewise.
10252
10253 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10254
10255         * config/mmix/crti.asm (_init): Register _fini with atexit.
10256         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
10257
10258 2002-03-31  Richard Henderson  <rth@redhat.com>
10259
10260         PR target/3997
10261         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
10262         (ASM_OUTPUT_DEF_FROM_DECLS): New.
10263
10264 2002-03-31  Richard Henderson  <rth@redhat.com>
10265
10266         * libgcc2.c (__bb_exit_func): Make static.
10267
10268         * config/alpha/alpha.md (trap): New.
10269
10270 2002-03-31  Richard Henderson  <rth@redhat.com>
10271
10272         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
10273         promoted argument types; build trap.
10274         (expand_builtin_trap): New.
10275         (expand_builtin): Use it.
10276         * stmt.c (expand_nl_goto_receivers): Likewise.
10277         * expr.h (expand_builtin_trap): Declare.
10278         * libfuncs.h (LTI_abort, abort_libfunc): New.
10279         * optabs.c (init_optabs): Init abort_libfunc.
10280
10281 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10282
10283         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
10284         (LINK_COMMAND_SPEC): ... from here.
10285         (init_gcc_specs): Duplicate it here too, omitting
10286         shared_name in the second copy.
10287         (init_spec): Test for duplicate
10288         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
10289
10290 2002-03-30  David S. Miller  <davem@redhat.com>
10291
10292         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10293         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
10294
10295 2002-03-30  Roger Sayle <roger@eyesopen.com>
10296             Richard Henderson  <rth@redhat.com>
10297
10298         * regmove.c (combine_stack_adjustments_for_block): Avoid
10299         emitting a stack adjustment of zero bytes.  Let delete_insn
10300         update bb->head.
10301
10302 2002-03-30  Richard Henderson  <rth@redhat.com>
10303
10304         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
10305         (sparc_emitting_epilogue): New.
10306         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
10307         * config/sparc/sparc-protos.h: Update.
10308         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
10309         (TARGET_SWITCHES): Update.
10310         * config/sparc/sparc.md (return): Remove.
10311         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
10312         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
10313         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
10314         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10315         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
10316         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
10317         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
10318         Remove MASK_EPILOGUE.
10319         * doc/invoke.texi: Update.
10320
10321 2002-03-30  Daniel Berlin  <dan@dberlin.org>
10322
10323         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
10324         CPP will start the file for us.
10325
10326 2002-03-30  Richard Henderson  <rth@redhat.com>
10327
10328         PR target/5446
10329         * config/ia64/ia64.c (group_barrier_needed_p): Special case
10330         prologue_allocate_stack.
10331         (ia64_single_set): Use insn codes for recognition of special
10332         cases, not rtl matching.
10333         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
10334
10335 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
10336
10337         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
10338
10339 2002-03-30  Richard Henderson  <rth@redhat.com>
10340
10341         PR target/6032
10342         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
10343         or -fomit-frame-pointer with profiling.
10344         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
10345         (FUNCTION_PROFILER): Do nothing.
10346         (PROFILE_HOOK): New.
10347         * config/sparc/sparc.c (sparc_override_options): Don't check
10348         code models for profiling.
10349         (sparc_function_profiler): Remove.
10350         (sparc_profile_hook): New.
10351         * config/sparc/sparc-protos.h: Update.
10352
10353 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
10354
10355         PR optimization/6086
10356         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
10357         of SUBREG of volatile MEM or because the MEM was mode dependent,
10358         return CLOBBER instead of unmodified SUBREG.
10359
10360 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10361
10362         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
10363         when not optimizing.
10364
10365         * toplev.c (rest_of_compilation): Cann mark_constant_function
10366         only when optimizing.
10367
10368         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
10369         are NULL.
10370
10371         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
10372         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
10373         (try_optimize_cfg): clear all AUX fields.
10374
10375         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
10376         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
10377         (ix86_address_cost): Be prepared for SUBREGed registers.
10378         (legitimate_address_p): Accept SUBREGed registers.
10379
10380 2002-03-29  Richard Henderson  <rth@redhat.com>
10381
10382         PR target/5672
10383         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
10384
10385 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10386
10387         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
10388         for aggregate and TFmode types.
10389
10390 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
10391
10392         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
10393
10394 2002-03-29  Richard Henderson  <rth@redhat.com>
10395
10396         PR target/5886
10397         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
10398         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
10399
10400 2002-03-29  Richard Henderson  <rth@redhat.com>
10401
10402         PR target/6041
10403         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
10404         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
10405         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
10406         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
10407         conditional.
10408         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
10409
10410 2002-03-29  Dale Johannesen <dalej@apple.com>
10411
10412         * loop.c (combine_movables): Do allow combination of pseudos.
10413
10414 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
10415
10416         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
10417         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
10418         No functional change except ...
10419         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
10420         * doc/install.texi (*-*-freebsd*): Document port configuration.
10421
10422 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10423
10424         * Makefile.in (convert.o, calls.o, expmed.o): Update.
10425         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
10426         Use new hooks.
10427         * builtin-types.def (BT_PTRMODE): Update.
10428         * c-common.c (type_for_size): Rename c_common_type_for_size.
10429         (type_for_mode): Similarly.
10430         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
10431         Use new hook.
10432         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
10433         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
10434         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
10435         Redefine.
10436         * c-typeck.c (common_type, comptypes, default_conversion):
10437         Use new hooks.
10438         * calls.c: Include langhooks.h.
10439         (emit_library_call_value_1): Use new hooks.  Avoid redundant
10440         calls.
10441         * convert.c: Include langhooks.h
10442         (convert_to_pointer, convert_to_integer): Use new hooks.
10443         * except.c (init_eh): Similarly.
10444         * expmed.c: Include langhooks.h.
10445         (expand_mult_add): Use new hooks.
10446         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
10447         try_casesi): Similarly.
10448         * fold-const.c (optimize_bit_field_compare, make_range,
10449         decode_field_reference, fold_truthop, fold): Similarly.
10450         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
10451         put_var_into_stack): Similarly.
10452         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
10453         LANG_HOOKS_TYPE_FOR_SIZE): New.
10454         (LANG_HOOKS_TYPES_INITIALIZER): Update.
10455         * langhooks.h (lang_hooks_for_types): New hooks.
10456         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
10457         * tree.c (get_unwidened, get_narrower): Similarly.
10458         * tree.h (type_for_mode, type_for_size): Remove.
10459         * varasm.c (force_const_mem): Use new hooks.
10460         * utils2.c (nonbinary_modular_operation): Update.
10461 objc:
10462         * objc-act.c (handle_impent): Update.
10463         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
10464         Redefine.
10465
10466 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
10467
10468         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
10469         * config/ia64/ia64.c (basereg_operand): New.
10470         * config/ia64/ia64-protos.h (basereg_operand): Declare.
10471         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
10472
10473 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
10474
10475         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
10476         unwind information when frame_pointer_needed.
10477         (mmix_assemble_integer): Tweak wording in comment.
10478
10479 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10480
10481         * Makefile.in (except.o): Update.
10482         * except.c: Include langhooks.h.
10483         (init_eh): Use langhook.
10484         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
10485         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
10486         (LANG_HOOKS_INITIALIZER): Update.
10487         * langhooks.h (lang_hooks_for_types): New.
10488         (struct lang_hooks): Add it.
10489         * tree.c (make_lang_type_fn, make_lang_type): Remove.
10490         * tree.h (make_lang_type_fn, make_lang_type): Remove.
10491 config:
10492         * alpha/alpha.c: Include langhooks.h.
10493         (alpha_build_va_list): Use langhook.
10494         * d30v/d30v.c: Include langhooks.h.
10495         (d30v_build_va_list): Use langhook.
10496         * i386/i386.c: Include langhooks.h.
10497         (ix86_build_va_list): Use langhook.
10498         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
10499         * s390/s390.c: Include langhooks.h.
10500         (s390_build_va_list): Use langhook.
10501         * stormy16/stormy16.c: Include langhooks.h.
10502         (stormy16_build_va_list): Use langhook.
10503
10504 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10505
10506         PR c++/5964
10507         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
10508         attributes.
10509         (length): Compute variable length for branches/calls/jumps here.
10510         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
10511         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
10512         define branch_type attribute.
10513         (divsi3_sp32): Maximum length is 6 not 7.
10514         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
10515         call_address_untyped_struct_value_sp32,
10516         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
10517         * config/sparc/sparc.c (empty_delay_slot): New function.
10518         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
10519         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
10520
10521 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10522
10523         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
10524         nonzero_bits if not needed.
10525         (nonzero_bits) [XOR]: Likewise.
10526         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
10527         reg_last_set_mode and mode are both MODE_INT, but not equal.
10528         (record_value_for_reg): Compute reg_last_set_nonzero_bits
10529         in nonzero_bits_mode for MODE_INT modes.
10530
10531 2002-03-28  Richard Henderson  <rth@redhat.com>
10532
10533         PR target/5715
10534         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
10535         to GAS.  Correct drift between alternatives.
10536
10537 2002-03-28  Richard Henderson  <rth@redhat.com>
10538
10539         PR target/6087
10540         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
10541
10542 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
10543
10544         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
10545         emulation to the linker.
10546
10547 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
10548
10549         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
10550         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
10551
10552 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
10553
10554         * combine.c (simplify_and_const_int): Make sure to apply mask
10555         when force_to_mode returns a constant integer.  PR3311.
10556
10557 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10558
10559         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
10560
10561 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10562
10563         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
10564         and Objective-C Dialect Options.
10565
10566 2002-03-28  Richard Henderson  <rth@redhat.com>
10567
10568         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
10569         comparison should be done vs !=0 not >0 return code.  Tidy cases.
10570
10571 2002-03-28  Richard Henderson  <rth@redhat.com>
10572
10573         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
10574         on to c_expand_body.
10575         * c-tree.h (finish_function): Update decl.
10576         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
10577
10578 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10579
10580         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
10581
10582 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
10583
10584         * rtlanal.c: Include flags.h
10585         (may_trap_p): Do not mark FP operations if trapping
10586         if !flag_trapping_math
10587         * Makefile.in (rtlanal.o): Add dependency on flag.h
10588         * ifcvt.c (noce_operand_ok): Avoid the lameness.
10589
10590 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
10591
10592         * mips.md: Use dconst1, not 1.0, as first argument of
10593         REAL_VALUE_LDEXP.  Don't use union real_extract.
10594
10595 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
10596
10597         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
10598         rather than $target.  Heed program_prefix and
10599         program_transform_name.  Search for gas in cross-compiler case too.
10600         "test -x" rather than "test -f".
10601         (gcc_cv_ld): Likewise.
10602         (gcc_cv_nm): Heed program_prefix and program_transform_name.
10603         (gcc_cv_objdump): Likewise.
10604         * configure: Regenerate.
10605
10606 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10607
10608         * Makefile.in (attribs.o): Update.
10609         * attribs.c: Include langhooks.h.
10610         (decl_attributes): Use langhook.
10611         * c-decl.c (insert_default_attributes): Rename.
10612         * c-tree.h (c_insert_default_attributes): New.
10613         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
10614         (LANG_HOOKS_INITIALIZER): Update.
10615         * langhooks.h (struct lang_hooks): New hook.
10616         * tree.h (insert_default_attributes): Remove.
10617 objc:
10618         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
10619
10620 2002-03-27  Andreas Schwab  <schwab@suse.de>
10621
10622         * config/i386/i386.c (classify_argument): Also check for
10623         QUAL_UNION_TYPE.
10624
10625 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10626
10627         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
10628         any more.
10629
10630 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10631
10632         * i960.md (ret): Set PC.
10633         (nonlocal_goto): Fix expander.
10634         * builtins.c (epxand_builin_longjmp): Check that we've emitted
10635         some jump or call.
10636
10637 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10638
10639         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
10640         of libcall regions.
10641
10642 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10643
10644         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
10645         assigning to BLOCK_FOR_INSN directly.
10646
10647 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10648
10649         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
10650
10651 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10652
10653         * c-common.c (c_expand_expr): Fix prototype.
10654         * c-common.h (c_expand_expr): Always declare, update.
10655         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10656         * c-objc-common.c (c_objc_common_init): No global hook.
10657         * expr.c (expand_expr): Use langhook.
10658         * expr.h (enum expand_modifier): Conditionally declare.
10659         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
10660         (LANG_HOOKS_INITIALIZER): Update.
10661         * langhooks.c (lhd_expand_expr): New.
10662         * langhooks.h (struct lang_hooks): New hook.
10663         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
10664         (lang_independent_init): Don't default hook.
10665 objc:
10666         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10667
10668 2002-03-27  Richard Henderson  <rth@redhat.com>
10669
10670         PR target/6054
10671         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
10672         TARGET_CONST_GP.  Simplify conditions.
10673
10674 2002-03-27  Richard Henderson  <rth@redhat.com>
10675
10676         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10677         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
10678         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
10679
10680 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
10681
10682         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
10683         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
10684         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
10685         Remove unnecessary masks.
10686         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
10687         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
10688         -mwindows, -mdll switches and their negations.
10689
10690 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10691
10692         * gcc-common.c (lang_mark_false_label_stack): Remove.
10693         * ggc.h (lang_mark_false_label_stack): Similarly.
10694
10695 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10696
10697         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
10698
10699         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
10700         or __rtems_ is defined.
10701
10702 2002-03-26  Richard Henderson  <rth@redhat.com>
10703
10704         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
10705         if a non-trivial load was emitted.
10706         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
10707         in high+extra+low case.
10708
10709 2002-03-26  Richard Henderson  <rth@redhat.com>
10710
10711         * config.gcc (sparc*-solaris): Use float_format=sparc.
10712
10713 2002-03-26  Richard Henderson  <rth@redhat.com>
10714
10715         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
10716         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
10717         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
10718         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
10719         (WINT_TYPE_SIZE): Fix at 32.
10720
10721 2002-03-26  Richard Henderson  <rth@redhat.com>
10722
10723         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
10724         until after eh landing pad generation.
10725         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
10726         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
10727
10728 2002-03-26  Richard Henderson  <rth@redhat.com>
10729
10730         * expr.h (ADD_PARM_SIZE): One more convert for INC.
10731
10732 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
10733
10734         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
10735         and warning switches.
10736         (cc1_options):  Likewise.
10737
10738 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
10739
10740         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
10741         Restore more of the signal context.  Set no_reg_stack_frame.
10742         * config/ia64/unwind-ia64.c (unw_state_record):
10743         Add no_reg_stack_frame, comments.
10744         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
10745         (uw_update_context): Adjust bsp when unwinding from leaf,
10746         but not signal frame.
10747
10748 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
10749
10750         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
10751
10752 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10753
10754         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
10755
10756 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10757
10758         PR target/5621
10759         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
10760         "Add a pool_range attribute", which was lost during the ARM/Thumb
10761         merge.
10762
10763 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10764
10765         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
10766         a register into the MAC16 accumulator.
10767
10768 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
10769
10770         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
10771         (Warning Options): Document -Wswitch-enum.
10772         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
10773         -Wswitch.
10774         (warn_switch_enum): Define variables.
10775         * flags.h (warn_switch_enum): Declare variables.
10776         * stmt.c (expand_end_case_type): When warn_switch_enum /
10777         -Wswitch-enum, perform switch checks.
10778         Fix PR c/5044.
10779
10780 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10781
10782         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
10783         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
10784         (reload_muladdsi_compare0_scratch): Delete.
10785
10786 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
10787
10788         * doc/install.texi (*-*-freebsd*): Update.
10789
10790 2002-03-26  Richard Henderson  <rth@redhat.com>
10791
10792         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
10793         (SUB_PARM_SIZE): Cast DEC to ssizetype.
10794
10795         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
10796         types from the normal argument frame.
10797
10798         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
10799         variable sized objects by reference.
10800         (sparc_va_arg): Receive them by reference too.
10801
10802 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
10803
10804         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
10805         code to not restoring global registers.
10806
10807 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10808
10809         * Makefile.in (ggc-common.o): Update.
10810         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
10811         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10812         * c-tree.h (c_mark_tree): New.
10813         * ggc-common.c: Include langhooks.h.
10814         (gcc_mark_trees): Use new langhook.
10815         * ggc-callbacks.c: Delete file.
10816         * ggc.h (lang_mark_tree): Remove.
10817         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
10818         (LANG_HOOKS_INITIALIZER): Update.
10819         * langhooks.h (struct lang_hooks): New hook.
10820 objc:
10821         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10822
10823 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10824
10825         * doc/cpp.texi: Exclude entire Top node from printed manual.
10826         Move option index after directive index.  Insert page breaks
10827         before GFDL and concept index.  Index environment variables
10828         with command line options.
10829         * doc/cppenv.texi: Use @vtable for environment variable list.
10830         Add paragraph explaining semantics of empty elements in path
10831         variables.  Exclude a cross-reference to Fishkill from the
10832         manpage.  Remove an unnecessary cross-reference of the entry
10833         right above the referer.  Don't use @anchor in text that goes
10834         into manpage.
10835         * doc/cppopts.texi: Cross-reference the environment variables
10836         section, not the specific environment variable, for consistency.
10837
10838 2002-03-25  Richard Henderson  <rth@redhat.com>
10839
10840         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
10841         anywhere in the block.  Don't refer to insns that have been
10842         removed from the chain.  Iterate backward through the new insns.
10843         Don't refer to edges that have been removed.
10844
10845 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
10846
10847         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
10848         test for overflow of constant.
10849
10850 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
10851
10852         PR target/2623
10853         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
10854         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
10855         these patterns on arm_archv4.
10856
10857 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
10858
10859         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
10860         int".
10861
10862 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10863
10864         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
10865         float_handled, float_handler, float_signal, set_float_handler,
10866         and do_float_handler.  Set handler for SIGFPE to crash_signal.
10867         * toplev.h: Don't prototype do_float_handler.
10868
10869         * c-lex.c: Fold parse_float into lex_number.  Make warning
10870         about portability of hex float constants more informative, and
10871         don't issue it on top of a syntax error.
10872         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
10873         their callers.
10874         * real.h: Define REAL_VALUE_ABS here...
10875         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
10876         simplify_unary_real, simplify_binary_real, and
10877         simplify_binary_is2orm1 into their callers.
10878         * tree.c: Fold build_real_from_int_cst_1 into caller.
10879
10880         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
10881
10882         * tsystem.h: Include float.h here...
10883         * libgcc2.c: ... not here.
10884
10885 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
10886
10887         Fixes for: PR bootstrap/3591, target/5676
10888         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
10889         defined.  Do not disable exceptions or rtti.
10890         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
10891         mcore.h.  Disable exceptions and rtti, since they are not
10892         supported by EPOC.
10893
10894 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10895
10896         * c-decl.c (maybe_build_cleanup): Remove.
10897         * expr.c (expand_expr): Use langhook.
10898         * langhooks-def.h (lhd_return_null_tree,
10899         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
10900         (LANGHOOKS_INITIALIZER): Update.
10901         * langhooks.c (lhd_return_null_tree): New.
10902         * langhooks.h (struct lang_hooks): New hook.
10903         * tree-inline.c (initialize_inlined_parameters): Use langhook.
10904         * tree.h (maybe_build_cleanup): Remove.
10905
10906 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10907
10908         * regrename.c (build_def_use): Move recog_memoized
10909         before extract_insn.
10910
10911 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10912
10913         PR target/6043
10914         * expr.c (emit_group_store): Handle storing into CONCAT.
10915
10916 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10917
10918         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
10919         corresponding MATCH_DUP.
10920
10921 2002-03-24  Richard Henderson  <rth@redhat.com>
10922
10923         * unroll.c (unroll_loop): Zero label_map.
10924
10925         * gcse.c: Include except.h.
10926         * Makefile.in (gcse.o): Update.
10927
10928 2002-03-24  Richard Henderson  <rth@redhat.com>
10929
10930         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
10931         Do resolve_unique_section before shared data clause.
10932
10933 2002-03-24  Richard Henderson  <rth@redhat.com>
10934
10935         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
10936
10937 2002-03-24  Richard Henderson  <rth@redhat.com>
10938
10939         * recog.c (peephole2_optimize): Split blocks when EH insns are
10940         generated in the middle of a block.  Do global life update if
10941         zapped EH edges.
10942
10943 2002-03-24  Richard Henderson  <rth@redhat.com>
10944
10945         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
10946
10947 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10948
10949         preprocessor/3951
10950         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
10951         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
10952         (init_dependency_output): Don't make no_output decision here.
10953
10954 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
10955
10956         * stmt.c (check_for_full_enumeration_handling): Remove tests of
10957         warn_switch.  Update description.
10958         (expand_end_case_type): Call check_for_full_enumeration_handling
10959         when warn_switch.
10960
10961 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10962
10963         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
10964         (m68hc11_split_move): Call it to see if the source and destination
10965         operands use the same direction auto inc/dec mode, otherwise make the
10966         source an offsetable memory operand and generate an add.
10967
10968 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10969
10970         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
10971         register for operand 2.
10972         ("*subsi3_zero_extendqi"): Likewise.
10973         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
10974         bits so that it is compatible with a pop.
10975         ("*andhi3_gen"): Likewise.
10976         ("xorhi3"): Likewise.
10977
10978 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10979
10980         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
10981         -pedantic here...
10982         (cpp_post_options): ... not here.
10983
10984 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10985             Aldy Hernandez  <aldyh@redhat.com>
10986
10987         Removal of separate preprocessor cpp0.
10988
10989         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
10990         cpp0, install-common): Update.
10991         * c-common.c (flag_preprocess_only): New.
10992         (c_common_init): Preprocess for -E.
10993         * c-common.h (flag_preprocess_only): New.
10994         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
10995         * c-objc-common.c (c_init_decl_processing): Exit quickly
10996         for NULL return from c_common_init.
10997         * cpplib.h (cpp_preprocess_file): New.
10998         * cppmain.c (main, general_init, pfile, progname): Remove.
10999         (do_preprocessing): Rename cpp_preprocess_file, don't call
11000         cpp_finish.  Don't close stdout here.
11001         (setup_callbacks): Update prototype.
11002         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
11003         Update.
11004         * tradcpp.c (main): Ignore -quiet.
11005 objc:
11006         * lang-specs.h (default_compilers): Preprocess with cc1obj.
11007
11008 2002-03-24  Richard Henderson  <rth@redhat.com>
11009
11010         PR optimization/5742
11011         * machmode.def: Add inner mode field to complex modes.
11012         * config/mips/mips.c (mips_function_value): Always define.  Add
11013         new argument to handle libcalls.
11014         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
11015         (FUNCTION_VALUE): Likewise.
11016         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
11017         * config/mips/mips-protos.h: Update.
11018
11019 2002-03-23  Richard Henderson  <rth@redhat.com>
11020
11021         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
11022         * config/sparc/sparc-protos.h: Update.
11023         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
11024
11025 2002-03-23  Richard Henderson  <rth@redhat.com>
11026
11027         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
11028         _start or _init begins the text segment.
11029
11030 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
11031
11032         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
11033         not HOST_WIDEST_INT.
11034         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
11035
11036 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
11037
11038         PR java/5489
11039         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
11040         operand argument to output_return_instruction.
11041         * arm.c (arm_print_operand, case 'd'): If the operand is
11042         const_true_rtx then just return.
11043         (arm_print_operand, case 'D'): If the operand is const_true_rtx
11044         then abort.
11045
11046 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
11047
11048         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
11049         (Warning Options): Document -Wswitch-default.
11050         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
11051         -Wswitch.
11052         (warn_switch_default): Define variable.
11053         (warn_switch): Update comment.
11054         * flags.h (warn_switch_default): Declare variable.
11055         (warn_switch): Update comment.
11056         * stmt.c (expand_end_case): Check for and, when
11057         warn_switch_no_default, warn of a missing default case.
11058
11059 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
11060
11061         * real.h (N): Special case 128 bit doubles.
11062
11063         * combine.c (simplify_comparison): When widening modes, ignore
11064         sign extension on CONST_INTs.
11065
11066 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11067
11068         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
11069         passed to adjust_address.  Fix comment formatting.
11070
11071
11072 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
11073
11074         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
11075         Always make REAL_VALUE_TYPE a struct containing an array of
11076         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
11077         big it is.  Don't declare or use union real_extract.
11078
11079         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
11080         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
11081         (print_operand), config/arm/arm.c (output_move_double),
11082         config/arm/arm.md (consttable_4, consttable_8),
11083         config/romp/romp.c (output_fpops), config/s390/s390.h
11084         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
11085         (xtensa_output_literal): Don't use union real_extract.
11086
11087         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
11088         (sfmode_constant_to_ulong), config/ns32k/merlin.h
11089         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
11090         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
11091         (PRINT_OPERAND): Don't use local version of union
11092         real_extract.
11093
11094         * config/convex/convex.c (check_float_value), config/vax/vax.c
11095         (vax_float_literal), config/m88k/m88k.md (divdf3),
11096         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
11097         config/pdp11/pdp11.c (output_move_quad): Don't do host
11098         arithmetic on target floating point quantities.
11099
11100         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
11101         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
11102
11103         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
11104         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
11105
11106         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
11107         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
11108         INFINITY.
11109         * print-rtl.c (print_rtx): Disable code which needs
11110         floating-point emulator.
11111         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
11112         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
11113         depending on HOST_FLOAT_FORMAT to be defined properly.
11114
11115         * config/1750a/1750a.c (get_double, float_label): Delete.
11116         (print_operand): Delete huge commented-out chunk.  Use
11117         REAL_VALUE_TO_DECIMAL.
11118         * config/1750a/1750a-protos.h: Delete prototypes of deleted
11119         functions.
11120         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
11121         IEEE_FLOAT_FORMAT.
11122         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
11123         Use REAL_VALUE_TO_DECIMAL as ELF version does.
11124         * config/m88k/m88k.c (real_power_of_2_operand,
11125         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
11126         real_extract out of the union; run the input through
11127         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
11128         from that into the union.
11129         * config/pdp11/pdp11.c (output_move_double): Rearrange
11130         parentheses to make automatic indenter happy.
11131
11132         * doc/tm.texi (Cross-compilation): Rename node to "Floating
11133         Point" and rewrite to describe current situation.  Also adjust
11134         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
11135         match code.
11136         * doc/rtl.texi: Adjust cross reference.
11137
11138 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11139
11140         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
11141         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
11142         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
11143         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
11144         prevent use of sp as a reload register.
11145         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
11146         non_acc_reg_operand.
11147         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
11148         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
11149         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
11150         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
11151
11152 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11153
11154         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
11155         * cpplex.c (unterminated): Delete.
11156         (parse_string): No string literal may extend over multiple
11157         lines.  Suppress the error when preprocessing assembly.
11158         * cppmain.c (scan_translation_unit): Strings are single-line.
11159
11160         * doc/cpp.texi: Update to match.
11161
11162 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11163
11164         PR optimization/5854
11165         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
11166         Shut up warnings.
11167         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
11168         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
11169         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
11170         const0 if scratch register was not allocated.
11171         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
11172         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
11173         with GEN_INT (...).
11174         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
11175         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
11176         with GEN_INT (...) everywhere.  Remove constraints in define_split
11177         patterns.
11178         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
11179         require scratch register for setting 0 into regs/non-pushable memory.
11180
11181 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11182
11183         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
11184         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
11185
11186 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
11187
11188         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
11189         * cppinit.c (cpp_create_reader):  On by default.
11190         (cpp_handle_option):  Handle -W[no-]endif-labels.
11191         (cpp_post_options):  Also enable if -pedantic.
11192         * cpplib.c (do_else):  Use it.
11193         (do_endif):  Likewise.
11194         * doc/cppopts.texi:  Document new option.
11195         * doc/invoke.texi:  Document new option.
11196
11197 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
11198
11199         * config/i386/i386.c, config/i386/i386.md: Change all occurences
11200         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
11201
11202 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11203
11204         * flow.c (calculate_global_regs_live): Clear aux fields of
11205         ENTRY and EXIT.
11206
11207 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11208
11209         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
11210         REG or MEM subregs, pass rtx * instead of rtx to it.
11211         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
11212         rtx * instead of rtx to alter_subreg.
11213         * config/m32r/m32r.c (gen_split_move_double): Likewise.
11214         * config/pj/pj.c (pj_output_rval): Likewise.
11215
11216 2002-03-22  Richard Henderson  <rth@redhat.com>
11217
11218         PR target/3177
11219         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
11220         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
11221         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
11222         (ia64_expand_prologue): Look at int_regs, not words, for number
11223         of incomming int regs.
11224
11225 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
11226
11227         * expr.c (expand_expr): A RESULT_DECL is part of a call.
11228
11229 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
11230
11231         * toplev.c (flag_loop_optimize, flag_crossjumping):
11232         New static variables.
11233         (rest_of_compilation): Conditionalize crossjumping and
11234         loop optimizer.
11235         (parse_options_and_default_flags): Default loop_optimize and
11236         crossjumping.
11237         (lang_independent_options): Add -fcrossjumping and -floop-optimize
11238         * invoke.texi (crossjumping, loop-optimize): Document.
11239
11240 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11241
11242         * real.c (eiisneg): Move outside #ifdef NANS.
11243
11244 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
11245
11246         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
11247         frequencies match; avoid match on different loop depths.
11248         (try_crossjump_to_bb): Kill tests that no longer brings time
11249         savings.
11250         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
11251         updating code.
11252         (split_edge): Likewise.
11253
11254         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
11255         variable.
11256
11257         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
11258         * cfgrtl.c: Include insn-config.h
11259         (split_block) Dirtify block in presence of conditional execution
11260
11261 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11262
11263         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
11264         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
11265         (function_arg): Constify CUMULATIVE_ARGS.
11266         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
11267         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
11268         (UNITS_PER_DOUBLE): New macro.
11269         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
11270         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
11271         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
11272         fp_regs and stack_words.
11273         (EABI_FLOAT_VARARGS_P): New macro.
11274         * config/mips/mips.c (struct mips_arg_info): New.
11275         (mips_arg_info): New function.
11276         (function_arg_advance): Use it.  Add adjustment instructions here
11277         rather than in function_arg.
11278         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
11279         for VOIDmode at the beginning of the function.
11280         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
11281         (function_arg_pass_by_reference): Likewise.
11282         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
11283         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
11284         (mips_va_start): Likewise.  Use the new stack_words field of
11285         CUMULATIVE_ARGS to set up overflow area.  Reformat.
11286         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
11287         doubles and other types, aligning the overflow pointer for non-doubles
11288         too.  Remove some code duplication.  Replace hard-coded constants.
11289
11290 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11291
11292         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
11293         (CLASS_UNITS): Undefine.
11294         (CLASS_MAX_NREGS): Use FP_INC.
11295         * config/mips/mips.c (compute_frame_size): Likewise.
11296         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
11297
11298 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11299
11300         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
11301         prototype, and handle lexing numbers and identifiers.
11302         (parse_identifier): Update to new form of parse_slow.
11303         (parse_number): Fast path only, use parse_slow otherwise.
11304         (_cpp_lex_direct): Update calls to parse_number.
11305
11306 2002-03-21  DJ Delorie  <dj@redhat.com>
11307
11308         * bb-reorder.c (make_reorder_chain_1): Protect against
11309         when redundant edges are omitted.
11310         * predict.c (dump_prediction): Likewise.
11311
11312 2002-03-21  Richard Henderson  <rth@redhat.com>
11313
11314         PR target/5996
11315         * fixinc/inclhack.def (solaris_stdio_tag): New.
11316         * fixinc/fixincl.x: Regenerate.
11317
11318 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
11319
11320         PR c/5597
11321         * c-typeck.c (process_init_element): Flag non-static
11322         initialization of a flexible array member as illegal.
11323
11324 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
11325
11326         * config/rs6000/t-linux64: New.
11327         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
11328         t-ppccomm.  Use t-rs6000 and t-linux64.
11329         (powerpc64-*-gnu* <tmake_file>): Likewise.
11330         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
11331         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
11332         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
11333
11334 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
11335
11336         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
11337         flag_really_no_inline instead of optimize == 0.
11338
11339         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
11340
11341         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
11342
11343         * flags.h (flag_really_no_inline): New.
11344
11345         * c-common.c (c_common_post_options): Initialize
11346         flag_really_no_inline.
11347
11348         * toplev.c (flag_really_no_inline): New.
11349
11350 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
11351
11352         * config/avr/avr.md (length): Fix length computation for
11353         conditional branches.
11354
11355 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11356
11357         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
11358         sdbout.o, profile.o): Update.
11359         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
11360         langhook.
11361         * c-common.h (gettags): Move here from tree.h.
11362         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
11363         insert_block, getdecls, kept_level_p, global_bindings_p): New.
11364         * dbxout.c (dbxout_init): Use getdecls langhook.
11365         * expr.c (expand_expr): Use insert_block langhook.
11366         * fold-const.c: Include langhooks.h.
11367         (fold_range_test, fold_binary_op_with_conditional_arg,
11368         fold): Use global_bindings_p langhook.
11369         * integrate.c (expand_inline_function): Use insert_block langhook.
11370         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
11371         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
11372         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
11373         LANG_HOOKS_GETDECLS): New.
11374         (LANG_HOOKS_INITIALIZER): Update.
11375         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
11376         langhook.
11377         * langhooks.h (struct lang_hooks_for_decls): New.
11378         (struct lang_hooks): Update.
11379         * profile.c: Include langhooks.h.
11380         (output_func_start_profiler): Use new langhooks.
11381         * sdbout.c: Include langhooks.h.
11382         (sdbout_init, sdbout_finish): Use getdecls langhook.
11383         * stmt.c: Include langhooks.h.
11384         (expand_fixup, fixup_gotos): Use new langhooks.
11385         * stor-layout.c: Include langhooks.h.
11386         (variable_size): Use global_bindings_p langhook.
11387         * toplev.c (compile_file): Use getdecls langhook.
11388         * tree-inline.c (remap_block): Use insert_block langhook.
11389         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
11390         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
11391
11392 2002-03-21  Richard Henderson  <rth@redhat.com>
11393
11394         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
11395         constants in .data when -fpic.
11396
11397 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11398
11399         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
11400         where appropriate.
11401
11402 2002-03-21  Tom Tromey  <tromey@redhat.com>
11403
11404         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
11405
11406 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11407
11408         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
11409
11410         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
11411
11412 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
11413             Richard Henderson  <rth@redhat.com>
11414
11415         PR c/5354
11416         * c-common.c (c_expand_expr): Preserve result of a statement
11417         expression if needed.
11418
11419 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
11420
11421         PR bootstrap/4195
11422         * genrecog.c (maybe_both_true_mode): Remove.
11423         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
11424         * machmode.def (Pmode): Likewise.
11425
11426 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
11427
11428         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
11429         (nonlocal_mentioned_p_1): New function.
11430         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
11431         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
11432         (mark_constant_function): Recognize pure functions.
11433         * rtl.h (global_reg_mentioned_p): New prototype.
11434         * rtlanal.c (global_reg_mentioned_p,
11435         global_reg_mentioned_p_1): New function.
11436
11437 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11438
11439         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
11440         UNIX assert.h.
11441         * fixinc/fixincl.x: Regenerate.
11442
11443 2002-03-20  Jason Merrill  <jason@redhat.com>
11444
11445         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
11446
11447 2002-03-20  Michael Meissner  <meissner@redhat.com>
11448
11449         * doc/invoke.texi (Optimize Options): Document that -O2 sets
11450         -fstrict-aliasing.
11451
11452 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
11453
11454         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
11455         ".literal_position" directive before the constant pool.
11456
11457 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11458
11459         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
11460         Add Craig Rodrigues.
11461         Add Brad Lucier to testers.
11462
11463 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11464
11465         PR target/4792
11466         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
11467         to if_then_else.
11468         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
11469         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
11470         instead of insn_extract.
11471
11472 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11473
11474         PR bootstrap/4192
11475         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
11476
11477         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
11478         stmt if some case has been output.
11479
11480 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11481
11482         PR c/5972
11483         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
11484         movsfcc_1, movdfcc_1): Add %O2.
11485         * config/i386/i386.c (print_operand): Handle %ON.
11486         Print . before float condition codes in Sun as cmov syntax.
11487         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
11488         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
11489         no longer true.
11490
11491 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
11492
11493         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
11494         return instruction if PC was popped.
11495
11496 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
11497
11498         * config/xtensa/xtensa.md: Remove unused type attributes.
11499         (adddi_carry, subddi_carry): Change type attribute to "multi".
11500
11501 2002-03-19  Dale Johannesen  <dalej@apple.com>
11502
11503         PR optimization/5999, middle-end/5731
11504         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
11505         multiplications by reciprocals.
11506
11507 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11508
11509         * Makefile.in: Update.
11510         * c-common.c: Include langhooks.h.
11511         (inline_forbidden_p): Use new hook.
11512         * diagnostic.c: Include langhooks.h.
11513         (format_with_decl, announce_function,
11514         default_print_error_function): Use new hook.
11515         * dwarf2out.c (dwarf2_name): Use new hook.
11516         * function.c: Include langhooks.h.
11517         (init_function_start): Use new hook.
11518         * langhooks-def.h (lhd_decl_printable_name): New.
11519         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
11520         (LANGHOOKS_INITIALIZER): Update.
11521         * langhooks.c (lhd_decl_printable_name): New.
11522         * langhooks.h (struct lang_hooks): New hook.
11523         * toplev.c (decl_name, decl_printable_name): Remove.
11524         (open_dump_file): Use new hook.
11525         (process_options): Remove old hook.
11526         * tree.h (decl_printable_name): Remove.
11527 objc:
11528         * objc-act.c (objc_init): Remove old hook.
11529         (objc_printable_name): Export.
11530         * objc-act.h (objc_printable_name): New.
11531         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
11532
11533 2002-03-19  Jim Blandy  <jimb@redhat.com>
11534
11535         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
11536         the start_source_file debug hook, not the current line number.
11537
11538 2002-03-19  Richard Henderson  <rth@redhat.com>
11539
11540         * flow.c (EH_USES): Provide default.
11541         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
11542         * doc/tm.texi (EH_USES): New.
11543
11544         * config/ia64/ia64.c (ia64_eh_uses): New.
11545         * config/ia64/ia64-protos.h: Update.
11546         * config/ia64/ia64.h (EH_USES): New.
11547
11548 2002-03-19  Richard Henderson  <rth@redhat.com>
11549
11550         * varasm.c (output_constant_def): Fix stupid typo.
11551
11552 2002-03-19  Richard Henderson  <rth@redhat.com>
11553
11554         PR 5879
11555         * except.c (current_function_has_exception_handlers): New.
11556         * except.h: Declare it.
11557         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
11558         Combine tests that disable all sibcalls for the function.
11559
11560 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
11561
11562         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
11563         for INTEGER_CST.
11564
11565 2002-03-19  Richard Henderson  <rth@redhat.com>
11566
11567         PR 5977, 5991
11568         * config/ia64/ia64.c: Revert 2002-03-01 patch.
11569         * config/ia64/ia64.h (INIT_EXPANDERS): New.
11570
11571 2002-03-19  Jim Blandy  <jimb@redhat.com>
11572
11573         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
11574         name, even if the replacement list contains no tokens, as required
11575         by Dwarf.
11576
11577 2002-03-19  Jason Merrill  <jason@redhat.com>
11578
11579         * varasm.c (globalize_decl): Get the name from the RTL, not
11580         DECL_ASSEMBLER_NAME.
11581
11582         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
11583
11584 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
11585
11586         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
11587         subdi_carry): Define.
11588
11589 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11590
11591         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
11592         about -fpic/-fPIC if extra_warnings set.
11593
11594 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11595
11596         * expr.c (expand_expr): Sign-extend CONST_INT generated from
11597         TREE_STRING_POINTER.
11598         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
11599
11600 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11601
11602         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
11603         in favor of SP if FRAME_POINTER_REQUIRED is false.
11604
11605 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
11606
11607         * emit-rtl.c (gen_int_mode): New function.
11608         * rtl.h: Prototype for it.
11609         * combine.c (make_extraction, simplify_comparison), expmed.c
11610         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
11611         (convert_modes, store_field), optabs.c (expand_fix),
11612         simplify-rtx.c (neg_const_int, simplify_unary_real),
11613
11614         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
11615         Use it instead of GEN_INT (trunc_int_for_mode (...)).
11616
11617 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
11618
11619         PR c/5656
11620         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
11621         convert_parm_for_inlining.
11622         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
11623         Define.
11624         * langhooks-def.h: Likewise.
11625         * objc/objc-lang.c: Likewise.
11626         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
11627         function.
11628         * tree-inline.c (initialize_inlined_parameters):
11629         Call convert_parm_for_inlining lang hook if needed.
11630         * c-typeck.c (c_convert_parm_for_inlining): New function.
11631         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
11632
11633 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
11634
11635         * calls.c (precompute_arguments): Do not assume that temporaries
11636         can be destroyed after expanding the argument.
11637         (expand_call): Likewise.
11638
11639 2002-03-15  Eric Christopher  <echristo@redhat.com>
11640
11641         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
11642         Fix register preference on last change.
11643         * config/mips/mips.c (mips_return_in_memory): New function.
11644         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
11645         * config/mips/mips-protos.h: Declare.
11646         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
11647         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
11648
11649 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
11650
11651         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
11652         a register too.
11653         (anddi3, iorsi3): Likewise.
11654
11655         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
11656         use %gprel for symbols that are going to be placed in linkonce
11657         sections.
11658
11659         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
11660         RETURN_ADDRESS_POINTER_REGNUM to $ra.
11661         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
11662         not needed.  Disregard leaf_function_p().
11663         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
11664         mips16 frame pointer.
11665         * config/mips/mips.md (store ra): Only to small SP offsets.
11666         2001-08-22  Graham Stott  <grahams@redhat.com>
11667         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
11668         return a REG rtx for the return address register.
11669
11670 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
11671
11672         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
11673         constant-pool addresses as "mode-dependent".
11674         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
11675
11676 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
11677
11678         PR target/5740
11679         * expr.c (emit_group_load): Use extract_bit_field if
11680         needed for CONCAT arguments.
11681
11682 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
11683
11684         PR target/4863
11685         * arm.md (tablejump): Make this a define_expand.  For PIC add the
11686         offset to the base of the table.
11687         (thumb_tablejump): Matcher for Thumb tablejump insn.
11688         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
11689         as the difference of two labels.
11690         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11691         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
11692         tables in the code.
11693         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
11694         * arm.c (get_jump_table_size): If the table is not in the text
11695         section, return zero.
11696
11697 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
11698
11699         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
11700         of gen_rtx_SUBREG.
11701         (arm_reload_out_hi): Use gen_lowpart instead of
11702         gen_rtx_SUBREG to access QImode components.
11703         * config/arm/arm.md: Disable zero_extend split for QImode
11704         subregs in BIG_ENDIAN mode.
11705         (storehi_bigend): Match use of least significant byte.
11706         (storeinthi): Remove extraneous SUBREG.
11707         Add missing construction of operands[2].
11708         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
11709         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
11710         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
11711
11712 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
11713
11714         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
11715         any_operand.
11716
11717 2002-03-17  Richard Henderson  <rth@redhat.com>
11718
11719         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
11720         explicitly.
11721
11722 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11723
11724         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
11725         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
11726
11727 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11728
11729         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
11730
11731         * predict.c (estimate_bb_frequencies): Delete unused variables.
11732
11733 2002-03-17  Richard Henderson  <rth@redhat.com>
11734
11735         * config/ia64/ia64.c (ia64_attribute_table): Move before
11736         targetm definition.  Make static.
11737
11738 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11739
11740         * c-common.h (yyparse, c_common_parse_file): New.
11741         * c-lang.c: Include c-common.h.
11742         (LANG_HOOKS_PARSE_FILE): Redefine.
11743         * c-lex.c: Include c-common.h.
11744         (yyparse): Rename c_common_parse_file.  Call yyparse.
11745         * c-parse.in (yyparse): Remove macro.
11746         * c-tree.h (yyparse_1): Remove.
11747         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
11748         (LANG_HOOKS_INITIALIZER): Update.
11749         * langhooks.h (struct lang_hoooks): New hook parse_file.
11750         * toplev.c (compile_file): Use parse_file hook.
11751         * tree.h (yyparse): Remove.
11752         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
11753
11754 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11755
11756         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
11757         float_truncate, not fix.
11758         ("*truncdfsf2_real"): Ditto.
11759         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
11760
11761         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
11762
11763 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
11764
11765         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
11766         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
11767         where appropriate.  Make the second reference to
11768         leaf_function_p a function call, as intended.  Reindented.
11769
11770         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
11771         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
11772
11773         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
11774         add register to non-constant into sp.
11775
11776         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
11777         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
11778         (mips16_gp_pseudo_rtx): Lose.
11779         (INIT_EXPANDERS): Deleted.
11780         * config/mips/mips.c (mips_init_machine_status): New.
11781         (mips_free_machine_status): New.
11782         (mips_mark_machine_status): New.
11783         (override_options): Set them.
11784         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
11785         (struct machine_function): ... new.  Replaced all references.
11786         (mips_add_gc_roots): Don't mark them.
11787         (embedded_pic_fnaddr_reg): New, extracted from...
11788         (embedded_pic_offset): ... here.
11789         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
11790         (movsi): Likewise.
11791
11792 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11793
11794         * cppinit.c: Revert -MD removal.
11795
11796 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11797
11798         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
11799         soft registers by default for 68HC12.
11800         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
11801         when compiling with -fomit-frame-pointer.
11802         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
11803         (expand_epilogue): Likewise.
11804         (m68hc11_gen_rotate): Use exg when rotating by 8.
11805
11806 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11807
11808         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
11809         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
11810         (splits): Remove unused add splits.
11811         ("*addhi3_68hc12"): Tune constraints.
11812         ("addhi_sp"): Try to use X instead of Y in all cases and if the
11813         constant fits in 8-bits and D is dead use abx/aby instructions.
11814         ("*addhi3"): Remove extern declaration of ix_reg.
11815         ("*subsi3"): Optimize and provide new split.
11816         ("subhi3"): Cleanup.
11817         ("*subhi3_sp"): Avoid saving X if we know it is dead.
11818         (arith splits): For 68hc12 save the address register on the stack
11819         and do the arithmetic operation with a pop.
11820
11821 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11822
11823         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
11824         allocating QImode in address registers.
11825         ("*movqi_m68hc11"): Likewise.
11826
11827 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
11828
11829         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
11830
11831 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11832
11833         * cppinit.c (print_help): Display -MD and -MMD.
11834         Don't display usage string.  Update assertion syntax and
11835         typo.
11836         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11837         (cpp_handle_option): Update.
11838
11839 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
11840
11841         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
11842         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
11843         and define it so that regardless of target CPU size,
11844         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
11845         of "int" rather than "long."
11846
11847 2002-03-15  Richard Henderson  <rth@redhat.com>
11848
11849         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
11850         size as a tree.
11851
11852 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11853
11854         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
11855         ("tstqi" split): Avoid using memory for tstqi on address register.
11856         (splits): Remove constraints.
11857         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
11858         ("cmpdf", "cmpsf"): Remove since not used.
11859         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
11860         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
11861
11862 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11863
11864         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
11865         ("neghi2"): Tighten constraints.
11866         ("one_cmplsi2"): Optimize and simplify split.
11867         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
11868
11869 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11870
11871         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
11872         and split of AND operation to clear the upper bits.
11873         ("*logicalsi3_zextqi"): Likewise.
11874         ("*logicallhi3_zexthi_ashift8"): Likewise.
11875         ("*logicalsi3_silshr16"): Likewise.
11876         ("logicalsi3_silshl16"): Likewise.
11877         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
11878
11879 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11880
11881         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
11882         (m68hc11_indirect_p): New function.
11883         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
11884         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
11885         TARGET_M6812.
11886         (asm_print_register): Likewise.
11887         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
11888         (m68hc11_indirect_p): Declare.
11889         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
11890         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
11891         (TARGET_SWITCHES): New option -mrelax.
11892         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
11893         destination.
11894         ("iorsi3", "xorsi3"): Likewise.
11895         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
11896         ("*andhi3_mem"): New to handle destination in memory with bclr
11897         and a scratch register.
11898         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
11899         ("*andhi3_const"): New when operand2 is constant.
11900         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
11901         ("*andhi3_gen"): Cleanup of the old "andhi3".
11902         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
11903         ("xorqi3"): Update constraints.
11904
11905 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11906
11907         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
11908         for reg_equiv_memory_loc when the operand is a register that does
11909         not get a hard register (stack location).
11910         (tst_operand): After reload, accept all memory operand.
11911         (symbolic_memory_operand): Fix detection of symbolic references.
11912         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
11913         accept symbols and any constant.
11914
11915 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11916
11917         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
11918         note on the insn that sets the soft frame register.
11919         (must_parenthesize): ix and iy are also reserved names.
11920         (print_operand_address): One more place where parenthesis are required
11921         to avoid confusion with register names.
11922         (m68hc11_gen_movhi): Allow push of stack pointer.
11923         (m68hc11_check_z_replacement): Fix handling of parallel with a
11924         clobber.
11925         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
11926         the replacement register is.
11927         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
11928         and D8_REGS classes.
11929         (MODES_TIEABLE_P): All modes are tieable except QImode.
11930
11931 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11932
11933         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
11934         (___subdi3): Likewise.
11935         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
11936         (__map_data_section): Optimize 68hc11 case.
11937
11938 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11939
11940         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
11941         than a shift to avoid adding a register with itself.
11942         (m68hc11_memory_move_cost): Take into account NO_REGS.
11943         (m68hc11_register_move_cost): Update and use memory move cost
11944         for soft registers.
11945         (m68hc11_address_cost): Make cost of valid offset not 0 so that
11946         it gives more opportunities to cse to optimize.
11947         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
11948         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
11949
11950 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
11951
11952         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
11953         * c-common.def (CLEANUP_STMT): New tree node.
11954         * c-common.h (CLEANUP_DECL): New macro.
11955         (CLEANUP_EXPR): Likewise.
11956         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
11957         * expr.c (expand_expr): Tidy.
11958         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
11959         * tree-inline.c (initialize_inlined_parameters): Clean up
11960         new local variables.
11961
11962 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11963
11964         PR bootstrap/4128
11965         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
11966         before movrXX only, use reg_overlap_mentioned_p.
11967         Only special case NE if just one insn can be generated.
11968
11969 2002-03-15  Jason Merrill  <jason@redhat.com>
11970
11971         * varasm.c (assemble_variable): Call resolve_unique_section before
11972         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
11973         of error_mark_node.
11974
11975 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11976
11977         PR target/5170
11978         * arm.md (split pattern for thumb shiftable immediates): Add comment
11979         explaining non-obvious test.
11980
11981 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11982
11983         PR target/5712
11984         * arm.md (movaddr, movaddr_insn): Delete.
11985
11986 2002-03-15  Jason Merrill  <jason@redhat.com>
11987
11988         * toplev.c (wrapup_global_declarations): Clarify variable handling.
11989         -fkeep-static-consts doesn't apply to comdats.
11990
11991 2002-03-14  Richard Henderson  <rth@redhat.com>
11992
11993         * c-decl.c: Include c-pragma.h.
11994         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11995         (finish_function): Tidy.
11996         * c-pragma.c: Include c-common.h.
11997         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
11998         (handle_pragma_weak): Use them.
11999         (init_pragma): Register pending_weaks.
12000         * c-pragma.h (maybe_apply_pragma_weak): Declare.
12001         * print-tree.c (print_node): Print DECL_WEAK.
12002         * varasm.c (mark_weak_decls): Remove.
12003         (remove_from_pending_weak_list): Remove.
12004         (add_weak): Remove.
12005         (asm_emit_uninitialised): Call globalize_decl for weak commons.
12006         (weak_decls): Make a tree_list.
12007         (declare_weak): Cons weak_decls directly.
12008         (globalize_decl): Remove weak_decls elements directly.
12009         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
12010         symbols.  Don't pretend to handle aliases.
12011         (init_varasm_once): Update weak_decls registry.
12012         * Makefile.in: Update dependencies.
12013
12014 2002-03-14  Richard Henderson  <rth@redhat.com>
12015
12016         PR target/5312
12017         * config/ia64/ia64.c: Include tm_p.h last.
12018         (gen_nop_type): Remove duplicate definition.
12019         (cycle_end_fill_slots): Set sched_data for second L slot.
12020         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
12021         (nop_cycles_until): Fix typos.
12022
12023 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
12024
12025         PR optimization/5891
12026         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
12027
12028 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
12029
12030         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
12031           descriptors correctly.
12032
12033 2002-03-14  Michael Meissner  <meissner@redhat.com>
12034
12035         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
12036         100, allowing MAX_UNROLLED_INSNS to be overridden.
12037
12038         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
12039         --param.
12040
12041         * unroll.c (params.h): Include.
12042         (MAX_UNROLLED_INSNS): Delete, now in params.h.
12043
12044         * doc/invoke.texi (--param max-unroll-insns): Document.
12045
12046         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
12047
12048 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12049
12050         * arm.md: Fix warnings about constraints in peepholes and splits.
12051
12052 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
12053
12054         * cpphash.h (struct lexer_state): Remove line_extension member.
12055         * cpplib.c (dequote_string, do_linemarker): New functions.
12056         (linemarker_dir): New data object.
12057         (DIRECTIVE_TABLE): No longer need to interpret #line in
12058         preprocessed source.  Delete obsolete comment about return
12059         values of handlers.
12060         (end_directive, directive_diagnostics, _cpp_handle_directive):
12061         Don't muck with line_extension.
12062         (directive_diagnostics): No need to issue warnings for
12063         linemarkers here.
12064         (_cpp_handle_directive): Issue warnings for linemarkers here,
12065         when appropriate.  Dispatch linemarkers to do_linemarker, not
12066         do_line.
12067         (do_line): Code to handle linemarkers split out to do_linemarker.
12068         Convert escape sequences in filename argument, both places.
12069
12070         * cppmacro.c (quote_string): Rename cpp_quote_string and
12071         export.  All callers changed.
12072         * cpplib.h (cpp_quote_string): Prototype.
12073         * cppmain.c (print_line): Call cpp_quote_string on to_file
12074         before printing it.
12075
12076         * doc/cpp.texi: Document that escapes are now interpreted in
12077         #line and in linemarkers, and that non-printing characters are
12078         converted to octal escapes when linemarkers are generated.
12079
12080 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12081
12082         * emit-rtl.c (try_split): Use delete_insns.
12083         * recog.c (split_all_insns): Fix terminating condition.
12084
12085 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12086             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
12087
12088         PR target/5828
12089         * arm.c (arm_output_epilogue): Fix floating-point register save
12090         adjustment when using a frame pointer.
12091
12092 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
12093
12094         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
12095         * config/mips/mips.c (compute_frame_size): Retrofit them here.
12096         (save_restore_insns, mips_expand_epilogue): And here.
12097         (build_mips16_call_stub): And here.
12098         (mips_function_value): Use the new macros to decide whether a single
12099         or complex float can be returned in floating-point registers.  Return
12100         a parallel rtx in the complex case.
12101
12102 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
12103
12104         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
12105         call after liveness analysis.
12106
12107         * recog.c (split_insn): Use delete_insn_and_edges.
12108
12109         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
12110         instructions to have branch prediction notes.
12111         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
12112
12113 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
12114
12115         * configure.in: Don't pass -Wno-long-long to a ADA compiler
12116         that doesn't support it.
12117         * configure: Regenerate.
12118
12119 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12120
12121         PR target/5626
12122         * config/sparc/sparc.md (normal_branch, inverted_branch,
12123         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12124         inverted_fp_branch): Adjust calls to output_cbranch.
12125         Set length attribute.
12126         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
12127         output_v9branch.  Set length attribute.
12128         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
12129         predicates.
12130         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
12131         (output_cbranch): Likewise.  Handle far branches.
12132         (output_v9branch): Handle far branches.
12133         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
12134         Adjust prototypes.
12135         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
12136         noov_compare64_op predicates.
12137
12138 2002-03-13  Jason Merrill  <jason@redhat.com>
12139
12140         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
12141         into the function and constify it.
12142         * gthr-dce.h, gthr-solaris.h: Likewise.
12143
12144 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
12145
12146         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
12147         * config/rs6000/rs6000.c (rs6000_va_arg): Use
12148         std_expand_builtin_va_arg if not ABI_V4.
12149
12150 2002-03-13  Jason Merrill  <jason@redhat.com>
12151
12152         * varasm.c (globalize_decl): New fn.
12153         (assemble_start_function): Use it.
12154         (asm_emit_uninitialized): Use it.
12155         (assemble_alias): Use it.
12156         (assemble_variable): Use it.
12157
12158 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
12159
12160         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
12161         2002-03-12 internal visibility change.
12162         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
12163         visibility into SYMBOL_REF_FLAG.
12164
12165 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
12166
12167         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
12168         VOIDmode operand.  Add compile-time optimization for constant results.
12169
12170 2002-03-12  Jason Merrill  <jason@redhat.com>
12171
12172         * c-typeck.c (convert_for_assignment): Don't allow conversions
12173         between pointers and references.  Only allow lvalues to convert to
12174         reference.
12175
12176 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
12177
12178         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
12179         before prologue, to avoid scheduling problems.
12180
12181 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12182
12183         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
12184         (ELIMINABLE_REGS): Add sfp->sp.
12185         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
12186
12187 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12188
12189         PR optimization/5892
12190         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
12191
12192 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12193
12194         * loop.c (basic_induction_var): Don't call convert_modes if mode
12195         classes are different.
12196
12197 2002-03-12  Richard Henderson  <rth@redhat.com>
12198
12199         PR optimization/5901
12200         * function.c (reposition_prologue_and_epilogue_notes): Position
12201         the markers after/before the last/first insn not deleted.
12202
12203 2002-03-12  Richard Henderson  <rth@redhat.com>
12204
12205         PR optimization/5878
12206         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
12207         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
12208         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
12209
12210         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
12211         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
12212         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
12213
12214         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
12215         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
12216         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
12217         also.  Don't set it if not flag_pic.
12218         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
12219         to be INVALID_REGNUM when not used.
12220
12221 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
12222
12223         * expmed.c (store_bit_field): Reset alias set for memory.
12224         (extract_bit_field): Same.
12225
12226 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12227
12228         * c-common.c (c_tree_code_type, c_tree_code_length,
12229         c_tree_code_name, add_c_tree_codes): Delete.
12230         * c-common.h (add_c_tree_codes): Delete.
12231         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
12232         Define.
12233         * c-objc-common.c (c_objc_common_init): Don't call
12234         add_c_tree_codes, instead set lang_unsafe_for_reeval.
12235         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
12236         objc_tree_code_name, add_objc_tree_codes): Delete.
12237         (objc_init): Don't call add_objc_tree_codes.
12238         * objc/objc-lang.c (tree_code_type, tree_code_length,
12239         tree_code_name): Define.
12240         * toplev.c (lang_independent_init): Don't set
12241         tree_code_length[IDENTIFIER_NODE].
12242         * tree.c (tree_code_type, tree_code_length, tree_code_name):
12243         Delete definitions, moved to language front-ends.
12244         * tree.def (IDENTIFIER_NODE): Hardwire the length.
12245         * tree.h (tree_code_type, tree_code_length, tree_code_name):
12246         Const-ify.
12247         (tree_code_length): Change type to unsigned char.
12248
12249 2002-03-12  Richard Henderson  <rth@redhat.com>
12250
12251         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
12252         internal visibility change.
12253
12254 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12255
12256         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
12257         validize_mem() instead of change_address to avoid clobbering
12258         memory attributes.
12259
12260 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
12261
12262         * c-lex.h (position_after_whitespace): Remove.
12263
12264 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
12265
12266         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
12267         (lex_string): Use unsigned char pointers.
12268
12269 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
12270
12271         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
12272         is not a valid memory_operand.
12273
12274 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12275
12276         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
12277         * config/xtensa/lib1funcs.asm: Fix copyright to include
12278         special case for libgcc files.
12279         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
12280         (__divsi3): Likewise.
12281         (__umodsi3): Likewise.
12282         (__modsi3): Likewise.
12283         * config/xtensa/lib2funcs.S: Fix copyright to include
12284         special case for libgcc files.
12285
12286 2002-03-12  Tom Rix  <trix@redhat.com>
12287
12288         * collect2.c (resolve_lib_name): Move outside of
12289         OBJECT_FORMAT_COFF ifdef.
12290         (ignore_library): Same.
12291
12292 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12293
12294         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
12295
12296 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12297
12298         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
12299         to function_section before writing out the constant pool.
12300
12301 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
12302
12303         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
12304         zero_constant.
12305         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
12306
12307 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
12308
12309         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
12310         (adddi3): Likewise.
12311         (movdf): Likewise.
12312         (movdi): Likewise.
12313         (cmpsi splitter): Likewise.
12314         (modsi3): Fail if <= 0.
12315         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
12316         redundant test when HOST_BITS_PER_WIDE_INT != 32.
12317         (reg_or_sub_cint64_operand): Likewise.
12318         (num_insns_constant_wide): Optimize sign extension.
12319         (rs6000_legitimize_address): Likewise.
12320
12321 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
12322
12323         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12324         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12325
12326 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
12327
12328         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
12329         address calculation.
12330
12331 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
12332
12333         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
12334         scratch register to DImode / TImode.
12335         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
12336         register used does not overlap the target.
12337
12338 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12339
12340         * Makefile.in (debug.o): Depend on debug.h.
12341         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
12342         * debug.c (do_nothing_debug_hooks): Likewise.
12343         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
12344         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
12345         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
12346         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12347         * dwarfout.c (dwarf_debug_hooks): Likewise.
12348         * integrate.c (output_inline_function): Likewise.
12349         * objc/objc-act.c (synth_module_prologue): Likewise.
12350         * sdbout.c (sdb_debug_hooks): Likewise.
12351         * toplev.c (debug_hooks): Likewise.
12352         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12353
12354 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12355
12356         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
12357         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
12358         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
12359         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
12360         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
12361         * defaults.h (POINTER_SIZE): Define.
12362         * doc/tm.texi (POINTER_SIZE): Document default.
12363
12364 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12365
12366         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
12367
12368 2002-03-11  Richard Henderson  <rth@redhat.com>
12369
12370         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
12371         if rebuild_label_notes_after_reload.
12372
12373 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
12374
12375         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
12376         emit pic register load if "internal" visibility.
12377         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
12378         (cris_expand_builtin_va_arg): Do all computations on trees.
12379
12380 2002-03-11  Richard Henderson  <rth@redhat.com>
12381
12382         * rtlanal.c: Include recog.h.
12383         (keep_with_call_p): Fix thinko.
12384         * Makefile.in (rtlanal.o): Update dependencies.
12385
12386 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
12387
12388         * genflags.c (gen_insn): Use IS_VSPACE.
12389         * genoutput.c (output_insn_data): Likewise.
12390         (process_template): Likewise.
12391
12392 2002-03-11  Richard Henderson  <rth@redhat.com>
12393
12394         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
12395
12396 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
12397
12398         * Makefile.in: Update.
12399         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
12400         Update documentation.
12401         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
12402         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
12403
12404 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
12405
12406         * Makefile.in: Give texi2pod its input file as a command line
12407         argument, not on stdin.
12408
12409 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
12410             Daniel Berlin  <dan@dberlin.org>
12411
12412         C++ alias analysis improvement.
12413         * alias.c (record_component_aliases): Record aliases for base
12414         classes too.
12415
12416 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
12417
12418         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
12419
12420 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
12421
12422         * toplev.c (vms_fopen): Remove, not needed.
12423
12424         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
12425
12426         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
12427
12428         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
12429         for FP, already done later.
12430
12431         * toplev.c (debug_args): Add entry for VMS_DEBUG.
12432         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
12433
12434 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
12435
12436         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
12437         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
12438         LARGEST_EXPONENT_IS_NORMAL for the given mode.
12439         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
12440         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
12441         (ediv, emul, eldexp, esqrt): Likewise.
12442         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
12443         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
12444         (saturate): New function.
12445         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
12446         (make_nan): Use a saturation value instead of a NaN if
12447         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
12448         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
12449         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
12450         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
12451         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
12452         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
12453         !ROUND_TOWARDS_ZERO.
12454         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
12455         (ROUND_TOWARDS_ZERO): Document.
12456
12457 2002-03-11  Andreas Jaeger  <aj@suse.de>
12458
12459         * cfg.c (dump_flow_info): Remove unused variable.
12460
12461 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
12462
12463         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
12464         computations on trees.
12465
12466 2002-03-10  Richard Henderson  <rth@redhat.com>
12467
12468         PR 5693:
12469         * reload.c (copy_replacements_1): New.
12470         (copy_replacements): Use it to recurse through the rtx.
12471
12472 2002-03-10  Richard Henderson  <rth@redhat.com>
12473
12474         * loop.c (strength_reduce): Compute number of iterations as
12475         unsigned HOST_WIDE_INT.
12476
12477 2002-03-10  Richard Henderson  <rth@redhat.com>
12478
12479         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
12480         to move away from the end of the block.
12481
12482 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
12483
12484         PR preprocessor/5899
12485         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
12486
12487 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12488
12489         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
12490
12491         * attribs.c (decl_attributes): Fix signed/unsigned warning.
12492
12493 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
12494
12495         * config/mmix/mmix.c: Improve comments.
12496         (mmix_target_asm_function_prologue): Drop variable
12497         empty_stack_frame.  Don't allocate unused slot above fp.
12498         (mmix_target_asm_function_epilogue): Mirror prologue changes.
12499         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
12500         brace in first column.
12501         (enum reg_class): Ditto.
12502         (FIRST_PARM_OFFSET): Now 0.
12503         (USER_LABEL_PREFIX): Remove #if 0:d definition.
12504
12505 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12506
12507         * combine.c (make_extraction): Fix error in last change.
12508
12509 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12510
12511         * c4x.c (c4x_fp_reglist): Const-ify.
12512         * cris.c (cris_print_operand): Likewise.
12513         * i386.c (ix86_va_arg): Likewise.
12514         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
12515         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
12516         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
12517         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
12518         * mcore.h (regno_reg_class): Likewise.
12519         * mips.c (gen_int_relational): Likewise.
12520         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
12521         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
12522         * pdp11.c (move_costs): Likewise.
12523         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
12524         * s390.c (s390_branch_condition_mnemonic, regclass_map):
12525         Likewise.
12526         * s390.h (regclass_map): Likewise.
12527         * sh.c (shift_amounts): Likewise.
12528         * sh.md (rotlsi3): Likewise.
12529
12530 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12531
12532         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
12533         (ne0+5): Use new clobber to generate proper shift pattern.
12534         Patch by Michael Matz <matz@kde.org>.
12535
12536 2002-03-09  Andreas Schwab  <schwab@suse.de>
12537
12538         * gcc.c (validate_all_switches): Also handle `%W{...}'.
12539
12540 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12541
12542         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
12543
12544 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
12545
12546         PR middle-end/5877
12547         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
12548         even for non-representable constants.
12549
12550 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12551
12552         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
12553         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
12554         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
12555         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
12556         (pop_function_context): Compute MAY_SHARE parameter for
12557         fixup_var_refs.
12558         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
12559         (gen_mem_addressof): Call fixup_var_refs with new parm.
12560
12561         * combine.c (make_extraction): Don't make extension of CONST_INT.
12562
12563 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12564
12565         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
12566         in o32 and o64 ABIs.
12567         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
12568         but getting fixed-size structs passed in registers regardless of
12569         padding in o32 and o64 ABIs.
12570
12571         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
12572         offset before loading address of argument passed by transparent
12573         reference.
12574
12575 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12576
12577         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
12578
12579 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12580
12581         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
12582         marker such that registers after it are saved.
12583
12584 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12585
12586         * sparc.c (arith_4096_operand): Fix error in last change.
12587
12588 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12589
12590         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
12591         defaults for MEABI.
12592
12593 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12594
12595         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
12596         vectors.
12597
12598 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12599
12600         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
12601
12602 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
12603
12604         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
12605         removed; fix return value.
12606         * combine.c (combine_instructions): Dirtify blocks where we failed to
12607         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
12608         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
12609
12610 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12611
12612         * gcse.c (insert_insn_end_bb): Fix typo in last change.
12613
12614 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
12615
12616         * recog.c (peephole2_optimize): Re-distribute EH edges.
12617
12618 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12619
12620         * expr.c (expand_expr): Use unsave lang hook.
12621         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
12622         (LANG_HOOKS_INITIALIZER): Update.
12623         * langhooks.h (struct lang_hooks): New hook unsave.
12624         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
12625         (unsave_expr_1): Remove unused lang_unsave_expr_now.
12626         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
12627         (unsave_expr_now): Remove.
12628         * tree.h (unsave_expr_now, lang_unsave,
12629         lang_unsave_expr_now): Remove.
12630         (lhd_unsave): New.
12631
12632 2002-03-08  Andreas Jaeger  <aj@suse.de>
12633
12634         * flow.c (propagate_block_delete_insn): Remove unused variable.
12635
12636 2002-03-08  Kazu Hirata  <kazu@hxi.com>
12637
12638         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
12639         insn length for memory load/store.
12640
12641 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12642
12643         * doc/install.texi (--with-libiconv-prefix): Document.
12644
12645 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
12646
12647         * doc/sourcebuild.texi: Fix typo.
12648
12649 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
12650
12651         PR c/3711
12652         * builtins.c (std_expand_builtin_va_arg): Do all computations on
12653         trees.
12654
12655 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12656
12657         * rtl.c (copy_most_rtx): Move from here ...
12658         * emit-rtl.c (copy_most_rtx): ... to here.
12659
12660 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12661
12662         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
12663         SUBTARGET_CPP_SIZE_SPEC.
12664         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
12665
12666         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
12667
12668 2002-03-07  Matt Hiller  <hiller@redhat.com>
12669
12670         * gensupport.c (first_dir_md_include): Renamed from include;
12671         change all references.
12672         (last_dir_md_include): Renamed from last_include; change all
12673         references.
12674         (init_md_reader): Unconditionally initialize base_dir whether or
12675         not filename is a relative path.
12676
12677 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
12678
12679         * config/fp-bit.c (_unord_f2): Compile it in even if
12680         US_SOFTWARE_GOFAST is enabled.
12681
12682         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
12683         NULL_RTX.  Set all HFmode operations as NULL_RTX.
12684         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
12685         NULL_RTX, try reversing the comparison and the operands.
12686
12687 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12688
12689         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
12690         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
12691         and MATCH_OP_DUP.
12692
12693 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
12694
12695         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
12696
12697 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12698
12699         * basic-block.h (fixup_abnormal_edges): Declare.
12700         * reload1.c (fixup_abnormal_edges): New function.
12701         * reg-stack.c (convert_regs): Use it.
12702
12703         * gcse.c (insert_insn_end_bb): Handle trapping insns.
12704
12705         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
12706
12707 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
12708
12709         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
12710         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
12711         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
12712         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
12713         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
12714         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
12715         unless x and y could be infinite.
12716         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
12717         Check that the common type of both arguments is a real, even for
12718         targets without unordered comparisons.  Allow an integer argument
12719         to be compared against a real.
12720         (expand_tree_builtin): Use expand_unordered_cmp.
12721         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
12722         * cse.c (fold_rtx): Likewise.  Fix indentation.
12723         * fold-const.c (fold_real_zero_addition_p): New.
12724         (fold): Use it, and the new HONOR_... macros.
12725         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
12726         * jump.c (reversed_comparison_code_parts): After searching for
12727         the true comparison mode, use HONOR_NANS to decide whether it
12728         can be safely reversed.
12729         (reverse_condition_maybe_unordered): Remove IEEE check.
12730         * simplify-rtx.c (simplify_binary_operation): Use the new macros
12731         to decide which simplifications are valid.  Allow the following
12732         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
12733         and (a - -b) to (a + b).
12734         (simplify_relational_operation): Use HONOR_NANS.
12735         * doc/tm.texi: Document the MODE_HAS_... macros.
12736
12737 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
12738
12739         * combine.c (simplify_comparison): If simplifying a logical shift
12740         right and compare with constant, force the comparison to unsigned.
12741
12742 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
12743
12744         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
12745
12746         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
12747         -mabi=no-altivec
12748         (alt_reg_names): Remove % for vrsave.
12749
12750 2002-03-06  Richard Henderson  <rth@redhat.com>
12751
12752         PR optimization/5844
12753         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
12754         if used indicates we've already emitted one copy of an operand.
12755         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
12756         (gen_split): Supply a non-null used.
12757
12758 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12759
12760         * reload1.c (reload): Unshare all rtl after reload is done.
12761
12762         * simplify-rtx.c (simplify_plus_minus): Do not abort,
12763         but simply fail if the expression is too complex to simplify.
12764         (simplify_gen_binary): Handle simplify_plus_minus failures.
12765
12766 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
12767
12768         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
12769         consistently call delete_trivially_dead_insns after CSE and GCSE;
12770         fix DFI_life dumping; do jump threading after liveness; do crossjumping
12771         after liveness2; update comment in last crossjumping.
12772         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
12773
12774 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
12775
12776         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
12777         after completing fast dead code elimination.
12778
12779         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
12780         COMPARE operator.
12781
12782 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
12783
12784         * version.c:  Fix misplaced leading blanks on first line.
12785
12786 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
12787
12788         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
12789
12790 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
12791
12792         * cfgcleanup.c (mentions_nonequal_regs): New function.
12793         (thread_jump): Use it.
12794         * toplev.c (rest_of_compilation): Run jump threading after
12795         liveness.
12796
12797 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
12798
12799         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
12800         patch.
12801
12802 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12803
12804         * predict.c (estimate_bb_frequencies): Do not reload the
12805         frequencies from notes.
12806
12807 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
12808
12809         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
12810         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
12811
12812         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
12813         delete_noop_moves): Return indeger.
12814         * flow.c (ndead): New variable.
12815         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
12816         BB argument; update callers.
12817         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
12818         (life_analysis): Do not call purge_all_dead_edges.
12819         (update_life_info): Return number of deleted insns; print statistics.
12820         (update_life_info_in_dirty_blocks): likewise.
12821         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
12822         return number of insns deleted.
12823
12824         * cse.c: Include timevar.h
12825         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
12826         iterate until stabilizes; print statistics; return number of killed
12827         insns.
12828         * Makefile.in: (cse.o): Add timevar.h dependency
12829         * rtl.h (delete_trivially_dead_insns): New.
12830         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
12831         * toplev.c (rest_of_compilation): Update callers.
12832
12833         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
12834         (try_optimize_cfg): Do not update liveness.
12835         (cleanup-cfg): Loop until try_optimize_cfg and dead code
12836         removal stabilizes; use delete_trivially_dead_insns.
12837
12838         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
12839
12840 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
12841
12842         * cppmain.c (setup_callbacks): Disable #pragma and #ident
12843         callbacks when processing assembly language.
12844
12845 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12846
12847         * pa.h (ASM_FILE_END): Define.
12848         * som.h (ASM_FILE_END): Delete.
12849
12850         * pa.c (function_arg): Don't pass floats in general registers in
12851         indirect calls if TARGET_ELF32.
12852
12853 2002-03-05  Richard Henderson  <rth@redhat.com>
12854
12855         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
12856
12857 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
12858
12859         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
12860
12861 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12862
12863         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
12864         -r command line.  Don't hide any symbols if not building
12865         shared libgcc.
12866
12867 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
12868
12869         * cfg.c (dump_flow_info): Warn about profile mismatches.
12870         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
12871         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
12872
12873 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12874
12875         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
12876         wide volatile memory by parts.
12877
12878 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12879
12880         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
12881         is NULL.
12882
12883 2002-03-05  Richard Henderson  <rth@redhat.com>
12884
12885         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
12886
12887 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12888
12889         * toplev.c (documented_lang_options): Document more
12890         language-specific options.
12891         * doc/invoke.texi (Warning Options): Correct documentation for
12892         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
12893         * c-decl.c (c_decode_option): Use a table to handle warning options.
12894
12895 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
12896
12897         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
12898         parameter to mmix_encode_section_info.
12899         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
12900         relocatably.  Always produce ELF, not mmo if linking relocatably.
12901         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
12902         first is non-zero, don't add symbol prefix.
12903         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
12904         prototype accordingly.
12905
12906 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
12907
12908         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
12909
12910 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
12911
12912         * configure.in: Increase required makeinfo version to 4.1.
12913         * configure: Regenerate.
12914
12915 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12916
12917         * .cvsignore: Remove *.info* and genrtl*; these files are generated
12918         elsewhere now.
12919
12920 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12921
12922         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
12923         * doc/invoke.texi: Fix @math uses.
12924
12925 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12926
12927         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
12928         removal
12929
12930 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
12931
12932         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
12933         (powerpc-*-eabisimaltivec*): Same.
12934
12935         * config/rs6000/t-ppcendian: New.
12936
12937 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12938
12939         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
12940         nonimmediate_src_operand and nonimmediate_lsrc_operand to
12941         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
12942
12943 2002-03-03  Richard Henderson  <rth@redhat.com>
12944
12945         * toplev.c (rest_of_decl_compilation): Revert last two changes.
12946
12947 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
12948
12949         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
12950         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
12951         tree.c, config/m68k/m68k.c:
12952         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
12953         REAL_ARITHMETIC blocks unconditional.  Delete some further
12954         #ifdef blocks predicated on REAL_ARITHMETIC.
12955         * flags.h, toplev.c: Delete remaining references to
12956         flag_pretend_float.
12957
12958         * doc/invoke.texi: Remove documentation of -fpretend-float.
12959         * doc/tm.texi: Describe the various REAL_* macros as provided by
12960         real.h, not by the target configuration files.
12961
12962         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
12963         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
12964         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12965         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
12966         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
12967         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
12968         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
12969         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
12970         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12971         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
12972         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12973         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12974         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
12975         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
12976         config/xtensa/xtensa.h:
12977         Do not define, undefine, or mention in comments any of
12978         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
12979         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
12980         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
12981         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
12982         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
12983         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
12984         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
12985         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
12986         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
12987
12988 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12989
12990         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
12991         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
12992         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
12993         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
12994         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
12995         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
12996         Delete.
12997         * defaults.h (BITS_PER_WORD): Define.
12998         * doc/tm.texi (BITS_PER_WORD): Document default value.
12999
13000         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
13001         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
13002         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
13003
13004 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13005
13006         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
13007         lieu of explicit sizeof/sizeof.
13008         * i386.c (override_options, ix86_init_mmx_sse_builtins,
13009         ix86_expand_builtin): Likewise.
13010         * mips.c (mips_add_gc_roots): Likewise.
13011         * mmix.c (mmix_output_condition): Likewise.
13012         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
13013         altivec_init_builtins): Likewise.
13014         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
13015         * cppexp.c (Nsuff, parse_number): Likewise.
13016         * cppinit.c (builtin_array_end): Likewise.
13017         * gcc.c (n_default_compilers, process_command): Likewise.
13018         * genpreds.c (output_predicate_decls): Likewise.
13019         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
13020         * lcm.c (N_ENTITIES): Likewise.
13021         * stor-layout.c (set_sizetype): Likewise.
13022
13023 2002-03-03  Richard Henderson  <rth@redhat.com>
13024
13025         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
13026         for types or labels.
13027
13028 2002-03-03  Richard Henderson  <rth@redhat.com>
13029
13030         * c-decl.c (start_decl): Initialized variables are not common.
13031
13032 2002-03-02  Per Bothner  <per@bothner.com>
13033
13034         * gcc.c (option_map):  Suport new --bootclasspath option.
13035         --CLASSPATH is now just an alias for --classpath.
13036
13037 2002-03-02  Richard Henderson  <rth@redhat.com>
13038
13039         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
13040         load if "internal" visibility.
13041         * doc/extend.texi: Document visibility meanings.
13042
13043 2002-03-02  Richard Henderson  <rth@redhat.com>
13044
13045         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
13046         to functions as well.
13047
13048 2002-03-02  Richard Henderson  <rth@redhat.com>
13049
13050         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
13051         (handle_visibility_attribute): Don't call assemble_visibility.
13052         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
13053         without asmspec.  Invoke assemble_alias when needed.
13054         * varasm.c (maybe_assemble_visibility): New.
13055         (assemble_start_function, assemble_variable, assemble_alias): Use it.
13056
13057 2002-03-02  Richard Henderson  <rth@redhat.com>
13058
13059         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
13060         invoke ENCODE_SECTION_INFO with first call flag.
13061
13062         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
13063         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
13064         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
13065         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
13066         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
13067         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
13068         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
13069         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
13070         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
13071         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
13072         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
13073         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
13074         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
13075         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
13076         config/mcore/mcore-protos.h, config/mcore/mcore.c,
13077         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
13078         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
13079         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
13080         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
13081         config/sh/sh.h, config/sparc/sparc.h,
13082         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
13083         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
13084         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
13085         FIRST argument.  As needed, examine it and do nothing.
13086
13087         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
13088         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13089         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
13090
13091         * config/arm/t-pe (pe.o): Add dependencies.
13092
13093 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13094
13095         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
13096         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
13097         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
13098         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
13099         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
13100         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
13101         * defaults.h (BITS_PER_UNIT): Define.
13102         * doc/tm.texi (BITS_PER_UNIT): Document default value.
13103
13104 2002-03-02  Kazu Hirata  <kazu@hxi.com>
13105
13106         * config/h8300/h8300-protos.h: Add a prototype for
13107         compute_a_shift_length.
13108         * config/h8300/h8300.c (h8300_asm_insn_count): New.
13109         (compute_a_shift_length): Likewise.
13110         (h8300_adjust_insn_length): Do not adjust insn length of shift
13111         insns.
13112         * config/h8300/h8300.md (anonymous shift patterns): Use
13113         compute_a_shift_length.
13114
13115 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13116
13117         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
13118         trunc_int_for_mode.
13119
13120         * emit-rtl.c (offset_address): Call update_temp_slot_address.
13121
13122 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13123
13124         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
13125         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
13126         * flags.h (flag_zero_initialized_in_bss): Declare.
13127         * toplev.c (flag_zero_initialized_in_bss): New flag.
13128         (lang_independent_options): Add flag_zero_initialized_in_bss.
13129         * tree.c (initializer_zerop): New function.
13130         * tree.h (initializer_zerop): Declare.
13131         * varasm.c (assemble_variable): If we can emit bss, put zero
13132         initializers in the bss section.
13133
13134 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
13135
13136         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
13137         like more than one symbol per .weak directive.
13138
13139 2002-03-01  Richard Henderson  <rth@redhat.com>
13140
13141         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
13142         adjust argument_pointer by pretend_args_size.
13143         (ia64_va_start): Adjust va_start address by -pretend_args_size.
13144
13145 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13146
13147         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
13148
13149 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
13150
13151         * toplev.c (rest_of_compilation): Delete dead jumptables before
13152         loop.
13153         * flow.c (delete_dead_jumptables): Make global.
13154         * rtl.h (delete_dead_jumptables): Declare.
13155
13156 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
13157
13158         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
13159         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
13160         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
13161
13162 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13163
13164         * config/h8300/h8300-protos.h: Fix formatting.
13165         * config/h8300/h8300.c: Likewise.
13166         * config/h8300/h8300.h: Likewise.
13167
13168 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13169
13170         * config/h8300/h8300.c (print_operand): Support 16-bit
13171         constant addresses.
13172         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
13173
13174 2002-02-28  Richard Henderson  <rth@redhat.com>
13175
13176         * expmed.c (store_bit_field): Prevent generation of CONCATs;
13177         pun complex values as integers; use gen_lowpart instead of
13178         gen_rtx_SUBREG.
13179         (extract_bit_field): Likewise.
13180
13181 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
13182             David Edelsohn  <edelsohn@gnu.org>
13183
13184         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
13185         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
13186         (SUPPORTS_WEAK): Likewise.
13187         * output.h (add_weak): Add tree param.
13188         * varasm.c (add_weak): Likewise.  Save decl.
13189         (struct weak_syms): Add decl field.
13190         (mark_weak_decls): New function.
13191         (init_varasm_once): ggc_add_root mark_weak_decls.
13192         (assemble_start_function): Use ASM_WEAKEN_DECL.
13193         (assemble_variable): Likewise.
13194         (assemble_alias): Likewise.
13195         (declare_weak): Pass decl to add_weak.
13196         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
13197         (remove_from_pending_weak_list): Declare and define for
13198         ASM_WEAKEN_DECL.
13199         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
13200         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
13201         * defaults.h (SUPPORTS_WEAK): Likewise.
13202         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13203         .weak for code sym.  Do emit .size for descriptor sym.
13204         (ASM_DECLARE_FUNCTION_SIZE): Define.
13205         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
13206         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
13207         .lglobl unless TARGET_XCOFF.  Formatting fixes.
13208         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13209         .weak for code sym.
13210         (HANDLE_PRAGMA_WEAK): Remove.
13211         (ASM_WEAKEN_LABEL): Remove.
13212         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
13213
13214 2002-03-01  Jason Merrill  <jason@redhat.com>
13215
13216         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
13217         (TARGET_EXPR_CLEANUP): New macro.
13218
13219 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
13220
13221         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
13222         to take ptr_extend into account as third type of extension.
13223         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
13224         fields used by SUBREG_PROMOTED_UNSIGNED_P.
13225         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
13226         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
13227         * calls.c (precompute_arguments): Use new macro.
13228         (expand_call): Ditto.
13229         * combine.c (nonzero_bits): Ditto.
13230         (record_promoted_value): Ditto.
13231         * expr.c (store_expr): Ditto.
13232         (expand_expr): Ditto.
13233         * function.c (assign_parms): Ditto.
13234
13235 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
13236
13237         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
13238         override -shared and -shared-libgcc.
13239
13240 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
13241
13242         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
13243         of "ultrasparc".
13244         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
13245         to be broken.
13246
13247 2002-02-28  Richard Henderson  <rth@redhat.com>
13248
13249         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
13250         4 cycle latency from MM producers.
13251         (ia64_internal_sched_reorder): Likewise with pipeline flush.
13252
13253 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
13254
13255         * mklibgcc.in: Don't use GNU make extension.
13256
13257 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
13258
13259         * c-parse.in (STATIC): New terminal.
13260         (scspec): New non-terminal.  Update productions accordingly.
13261         (program): Remove bogus ifc / end ifc.
13262         (array_declarator): Simplify production using STATIC.
13263
13264 2002-02-28  Jim Meyering  <meyering@lucent.com>
13265
13266         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
13267         \a still means TARGET_BELL.
13268
13269 2002-02-28  Richard Henderson  <rth@redhat.com>
13270
13271         * haifa-sched.c (sched_emit_insn): New.
13272         (schedule_block): Use last_scheduled_insn to track last insn.
13273         * sched-int.h (sched_emit_insn): Prototype.
13274         * config/ia64/ia64.c (last_issued): Remove.
13275         (ia64_variable_issue): Don't set it.
13276         (nop_cycles_until): Use sched_emit_insn.
13277
13278 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
13279
13280         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
13281         extended constants.
13282
13283 2002-02-28  Kazu Hirata  <kazu@hxi.com>
13284
13285         * config/h8300/h8300.c: Fix formatting.
13286         * config/h8300/h8300.h: Likewise.
13287
13288 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13289
13290         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
13291         which may overwrite the high byte of the frame pointer.
13292
13293 2002-02-28  Bo Thorsen  <bo@suse.de>
13294
13295         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
13296         (STARTFILE_SPEC): Add 64 bit files.
13297         (ENDFILE_SPEC): Likewise.
13298
13299 2002-02-28  Jason Merrill  <jason@redhat.com>
13300
13301         * c-decl.c (finish_function): Only warn about missing return
13302         statement with -Wreturn-type.
13303
13304 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13305
13306         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
13307
13308         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
13309         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
13310
13311 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13312
13313         * basic-block.h (BB_REACHABLE): Renumber.
13314         (BB_DIRTY, BB_NEW): New flags.
13315         (clear_bb_flags): Declare.
13316         (update_life_info_in_dirty_blocks): Declare.
13317         * cfg.c (clear_bb_flags): New function.
13318         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
13319         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
13320         reorder_insns, emit_insn_after): Mark block as dirty.
13321         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
13322         (update_life_info_in_dirty_blocks): New function.
13323         * recog.c (apply_change_group): Dirtify block.
13324
13325         * cse.c (cse_insn): Reorder emitting of jump insn to keep
13326         cfg consistent.
13327         * gcse.c (delete_null_pointer_checks): Likewise.
13328
13329         * toplev.c (dump_file_index): Move cse2 after bp,
13330         add DFI_null
13331         (dump_file_info): Similary.
13332         (rest_of_compilation): Avoid most of CFG rebuilds;
13333         do first if converision after null pointer checks, do cse2
13334         after branch prediction; avoid full liveness rebuild after
13335         initializing subregs.
13336         * invoke.texi (-d options): Document -du, renumber.
13337
13338         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
13339         (notice_new_block): Do not set BB_UPDATE_LIFE.
13340         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
13341          merge_blocks_move_successor_nojumps, merge_blocks,
13342          try_crossjump_to_edge): Likewise.
13343         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
13344         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
13345         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
13346         (merge_of_block): Do not use life_data_ok.
13347         (find_if_case_1): Do not use SET_UPDATE_LIFE.
13348         (if_convert): Use BB_DIRTY mechanizm to update life.
13349         * lcm.c (optimize_mode_switching): Update
13350         update_life_info_in_dirty_blocks
13351
13352 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
13353
13354         * Makefile.in (integrate.o): Update.
13355         * c-decl.c (copy_lang_decl): Rename.
13356         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
13357         * integrate.c: Include langhooks.h.
13358         (copy_decl_for_inlining): Update to use langhook.
13359         * langhooks-def.h (lhd_do_nothing_t,
13360         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
13361         (LANG_HOOKS_INITIALIZER): Update.
13362         * langhooks.c (lhd_do_nothing_t): New.
13363         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
13364         * tree.h (copy_lang_decl): Remove.
13365 objc:
13366         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
13367
13368 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
13369
13370         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
13371         POST_DEC, and POST_MODIFY.
13372
13373 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13374
13375         * c-typeck.c (digest_init): Remove unused parameter; all
13376         callers changed.
13377
13378 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
13379
13380         * expmed.c (expand_shift): Correctly test for low part of a
13381         subreg.
13382
13383 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
13384
13385         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
13386         insn UIDs with insn addresses.
13387
13388 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13389
13390         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
13391         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
13392         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
13393         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
13394         gcc.c, toplev.c: Delete code implementing -traditional mode.
13395
13396         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
13397         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
13398         Document removal of -traditional mode for compilation, and
13399         remove documentation only relevant to that mode.
13400
13401         * config/nextstep.h, config/ptx4.h, config/svr4.h,
13402         config/convex/convex.h, config/d30v/d30v.h,
13403         config/i386/dgux.h, config/i386/osf1elf.h,
13404         config/i386/osfelf.h, config/i386/osfrose.h,
13405         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
13406         config/m68k/hp310.h, config/m88k/dgux.h,
13407         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
13408         config/m88k/m88k.h, config/m88k/openbsd.h,
13409         config/mips/abi64.h, config/mips/osfrose.h,
13410         config/mips/svr4-5.h, config/mips/svr4-t.h,
13411         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
13412         config/stormy16/stormy16.h: Remove all references to
13413         -traditional from target specs.  Delete all mention of the
13414         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
13415         delete a couple of commented-out definitions of
13416         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
13417         to -traditional.
13418
13419         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
13420         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
13421
13422 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13423
13424         * mklibgcc.in: Don't use \n in a line subject to
13425         interpretation by echo.
13426
13427 2002-02-27  Graham Stott  <grahams@redhat.com>
13428
13429         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
13430         Constify NAME.
13431
13432         * loop.c (prescan_loop): Handle PARALLEL.
13433
13434         * unroll.c (loop_iterations): Return 0 if the add_val for
13435         a BIV is REG.
13436
13437         * final.c (output_operand_lossage): Constify PFX_STR.
13438
13439         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
13440
13441 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13442
13443         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
13444         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
13445
13446 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
13447
13448         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13449
13450 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13451
13452         * cpplex.c (_cpp_lex_token): Handle directives in macro
13453         arguments.
13454         * cpplib.c (_cpp_handle_directive): Save and restore state
13455         if parsing macro args when entering a directive.
13456         * cppmacro.c (collect_args): No need to handle directives
13457         in macro arguments.
13458         (enter_macro_context, replace_args): Use the original macro
13459         definition in case it was redefined whilst collecting arguments.
13460 doc:
13461         * cpp.texi: Update.
13462
13463 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
13464
13465         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
13466         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
13467         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
13468         method on AIX.
13469         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
13470         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
13471         (load_toc_v4_PIC_2): Same.
13472
13473 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
13474
13475         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
13476
13477 2002-02-26  Richard Henderson  <rth@redhat.com>
13478
13479         * config/alpha/alpha.md (ashldi_se): Re-enable.
13480
13481 2002-02-26  Richard Henderson  <rth@redhat.com>
13482
13483         * config/alpha/alpha.c (alpha_encode_section_info): Examine
13484         MODULE_LOCAL_P; improve commentary.
13485
13486 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
13487
13488         * doc/cpp.texi: Clarify documentation of relationship between
13489         #line and #include.
13490
13491 2002-02-26  Kazu Hirata  <kazu@hxi.com>
13492
13493         * config/h8300/h8300-protos.h: Update the prototype for
13494         compute_logical_op_length.  Add the prototype for
13495         compute_logical_op_cc.
13496         * config/h8300/h8300.c (compute_logical_op_length): Figure out
13497         code from operands.
13498         (compute_logical_op_cc): New.
13499         * config/h8300/h8300.md: Combine all the logical op patterns
13500         in HImode and SImode.  Use compute_logical_op_cc.
13501
13502 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
13503
13504         * config/i386/i386.c (print_operand): Don't append ATT-style
13505         length suffixs to x87 opcodes when in Intel mode.
13506
13507 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
13508
13509         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
13510         (init_emit_once): Update calls.
13511         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
13512         (init_syntax_once): Prototype.
13513
13514 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13515
13516         * pa-linux.h (LIB_SPEC): Update definition.
13517         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
13518
13519 2002-02-26  Richard Henderson  <rth@redhat.com>
13520
13521         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
13522         if we emitted a stop bit.
13523
13524 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13525
13526         * configure.in (libgcc_visibility): Substitute.
13527         * configure: Rebuilt.
13528         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
13529         defined symbols .hidden.
13530
13531 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13532
13533         * attribs.c (c_common_attribute_table): Add visibility.
13534         (handle_visibility_attribute): New function.
13535         * varasm.c (assemble_visibility): New function.
13536         * output.h (assemble_visibility): Add prototype.
13537         * tree.h (MODULE_LOCAL_P): Define.
13538         * crtstuff.c (__dso_handle): Use visibility attribute.
13539         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
13540         for MODULE_LOCAL_P symbols too.
13541         * config/ia64/ia64.c (ia64_encode_section_info): Handle
13542         MODULE_LOCAL_P symbols the same way as local symbols.
13543         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
13544         into .sdata/.sbss by the user.
13545         * doc/extend.texi (Function Attributes): Document visibility
13546         attribute.
13547
13548 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13549
13550         PR debug/5770
13551         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
13552         STRING_CST initializer spanning the whole variable without
13553         embedded zeros.
13554         If expand_expr returned MEM, don't use it.
13555
13556 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
13557
13558         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
13559         generate a die for the lexical block.
13560
13561 2002-02-26  Kazu Hirata  <kazu@hxi.com>
13562
13563         * config/h8300/h8300-protos.h: Add a prototype for
13564         compute_logical_op_length.
13565         * config/h8300/h8300.c (compute_logical_op_length): New.
13566         * config/h8300/h8300.md (anonymous logical patterns): Use
13567         compute_logical_op_length for length.
13568
13569 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13570
13571         * dwarf2out.c (modified_type_die): Do not call type_main_variant
13572         for vectors.
13573         (gen_type_die): Same.
13574
13575         * attribs.c (handle_vector_size_attribute): Set debug information.
13576
13577 2002-02-26  Daniel Egger  <degger@fhm.edu>
13578
13579         * config/rs6000/rs6000.md: Swap define_insn attributes to
13580         fix incorrect generation of merge high instructions instead
13581         of merge low.
13582
13583 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13584
13585         * c-typeck.c (really_start_incremental_init): Use
13586         bitsize_zero_node for vectors.
13587
13588 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13589
13590         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
13591         ("*set_vrsave_internal"): Same.
13592
13593 2002-02-25  Richard Henderson  <rth@redhat.com>
13594
13595         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
13596         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
13597
13598 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
13599
13600         PR target/5755
13601         * config/i386/i386.c (ix86_return_pops_args): Only pop
13602         fake structure return argument if it was passed on the stack.
13603
13604 2002-02-25  Jason Merrill  <jason@redhat.com>
13605
13606         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
13607         RESULT_DECL.
13608
13609 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13610
13611         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
13612         link with shared_name only.
13613         * doc/invoke.texi (Link Options): Document new behavior.
13614
13615 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13616
13617         * c-typeck.c (push_init_level): Handle vectors.
13618
13619 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13620
13621         * config/sparc/sparc.c (const64_high_operand): Zero-extend
13622         operands of SPARC_SETHI_P.
13623         (input_operand): Likewise.
13624         (sparc_emit_set_const32): Likewise.
13625         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
13626         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
13627         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
13628         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
13629         (movdi_insn_sp64_vis): Likewise.
13630         (movdi split, movdf split): Use SETHI32.
13631         * doc/md.texi: Document SPARC constraints L, M and N.
13632
13633 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13634
13635         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
13636         ("*set_vrsave_internal"): use mfspr for Darwin.
13637
13638         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
13639         gen_get_vrsave_internal.
13640
13641 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13642
13643         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
13644
13645 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13646
13647         * cpplex.c (cpp_interpret_charconst): Get signedness or
13648         otherwise of wide character constants correct.
13649         * cppexp.c (lex): Get signedness of wide charconsts correct.
13650
13651 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13652
13653         * optabs.c (widen_operand): Only call convert_modes for
13654         promoted SUBREG if signedness matches.
13655         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
13656
13657 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13658
13659         * cpplib.c (glue_header_name): Use local buffer to build up
13660         header name.
13661
13662 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13663
13664         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
13665
13666 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13667
13668         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
13669         H8/300[HS] separately.
13670         * config/h8300/h8300.md: Remove the early clobber constraint
13671         from bit field patterns.
13672
13673 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13674
13675         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
13676         register_operand.
13677         (mulhisi3): Likewise.
13678         (umulqisi3): Likewise.
13679         (umulhisi3): Likewise.
13680
13681 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13682
13683         * cppinit.c (output_deps): Correct test for stdout output.
13684         (init_dependency_output): Cure warning.
13685
13686 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13687
13688         * expr.c (store_expr): When converting expression to promoted
13689         equivalent type, allow using SUBREG_REG of TARGET as the target
13690         of the expansion of EXP.
13691         * loop.c (basic_induction_var, case SUBREG): Always look inside.
13692         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
13693         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
13694         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
13695         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
13696
13697 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13698
13699         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
13700         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
13701         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
13702
13703 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
13704
13705         PR optimization/5747
13706         * loop.c (scan_loop): Update reg info if move_movables created new
13707         pseudos.
13708
13709 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13710
13711         * gcc.c (init_gcc_spec): Revert last change.
13712
13713 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13714
13715         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
13716         gpc_reg_operand constraint.
13717
13718 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
13719
13720         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
13721         Simplify comparison of `low'.
13722         (add_operand): Fix formatting.
13723         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
13724         (mask_operand): Disallow mask to wrap in 64-bit mode.
13725         (rs6000_stack_info): Remove redundant test setting push_p.
13726         (output_toc): Fix formatting.
13727         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
13728         cc_reg_not_cr0_operand constraint.
13729         (booldi3, boolcdi3 splitters): Same.
13730
13731 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
13732
13733         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
13734
13735 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
13736
13737         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
13738         gcc invoked with -shared-libgcc.
13739
13740 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
13741
13742         PR c++/5748
13743         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
13744         decl if any of elements was TREE_USED.
13745
13746 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
13747
13748         * config/sparc/sol2.h: Don't include sys/mman.h.
13749         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
13750         (arith_4096_operand): Don't throw high bits away.
13751         (const64_operand): Take sign extension of CONST_INTs into account.
13752         (const64_high_operand, sparc_emit_set_const32): Likewise.
13753         (GEN_HIGHINT64): Likewise.
13754         (sparc_emit_set_const64_quick1): Likewise.
13755         (const64_is_2insns): Likewise.
13756         (print_operand): Use trunc_int_for_mode for sign extension.
13757         * config/sparc/sparc.h (SMALL_INT32): Likewise.
13758         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
13759         chars.  Assume CONST_INT is already properly sign-extended.
13760         (movdi split): Sign-extend each SImode part.
13761         (andsi3 split): Don't mask high bits off, so that result
13762         remains properly sign-extend.
13763         (iorsi3 split): Likewise.
13764         (xorsi3 split): Likewise.
13765
13766 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
13767
13768         * fold-const.c (fold): Fix typo in comments.
13769
13770 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13771
13772         * Makefile.in (langhooks.o): Update dependencies.
13773
13774 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13775
13776         * langhooks.c: Include flags.h.
13777
13778 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
13779
13780         * testsuite/gcc.dg/attr-alwaysinline.c: New.
13781
13782         * c-common.c (c_common_post_options): Set inline trees by
13783         default.
13784
13785         * doc/extend.texi (Function Attributes): Document always_inline
13786         attribute.
13787         Update documentation about inlining when not optimizing.
13788
13789         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
13790
13791         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
13792         unless DECL_ALWAYS_INLINE.
13793
13794         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
13795         unless DECL_ALWAYS_INLINE.
13796         (c_disregard_inline_limits): Disregard if always_inline set.
13797
13798         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
13799         Disregard if always_inline set.
13800         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
13801         unless DECL_ALWAYS_INLINE.
13802
13803         * attribs.c (handle_always_inline_attribute): New.
13804         (c_common_attribute_table): Add always_inline.
13805
13806         * config/rs6000/altivec.h: Add prototypes for builtins
13807         requiring the always_inline attribute.
13808
13809 2002-02-21  Eric Christopher  <echristo@redhat.com>
13810
13811         * expmed.c (store_bit_field): Try to simplify the subreg
13812         before generating a new one when when the mode size of
13813         value is less than maxmode.
13814
13815 2002-02-21  Richard Henderson  <rth@redhat.com>
13816
13817         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
13818         than gen_rtx_PLUS to form the sum.
13819         * explow.c (force_reg): Rearrange to not allocate new pseudo
13820         when force_operand returns a register.
13821         * expr.c (expand_assignment): Allow offset_rtx expansion to
13822         return a sum.  Do not force addresses into registers.
13823         (expand_expr): Likewise.
13824         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
13825         to canonicalize arithmetic that didn't simpify.
13826         (simplify_plus_minus): New argument force; update
13827         all callers.  Don't split CONST unless we can do something with it,
13828         and wouldn't lose the constness of the operands.
13829
13830         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
13831         that we generated earlier.
13832
13833 2002-02-21  Tom Tromey  <tromey@redhat.com>
13834
13835         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13836         (output_line_info): Use constant `1', with a long explanatory
13837         comment.
13838         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
13839
13840 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
13841
13842         * jump.c (redirect_jump): If old label has no UID, don't try to
13843         delete it.
13844
13845 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
13846
13847         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
13848         If input is constant, do shifts at compile time.
13849
13850 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13851
13852         * doc/extend.texi: Fix some more overfull hboxes.
13853
13854 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13855
13856         PR optimization/4994
13857         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
13858         register moves.
13859
13860 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13861
13862         PR c++/4574
13863         * expr.h (expand_and): Add mode argument.
13864         * expmed.c (expand_and): Add mode argument.
13865         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
13866         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
13867         * except.c (expand_builtin_extract_return_addr): Likewise.
13868         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13869         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
13870         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
13871         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
13872         * config/c4x/c4x.md: Use GEN_INT (x) instead of
13873         gen_rtx (CONST_INT, VOIDmode, x).
13874
13875 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13876
13877         PR c/4697:
13878         * stmt.c (warn_if_unused_value): Move side effects test once more.
13879
13880 2002-02-20  Torbjorn Granlund  <tege@swox.com>
13881
13882         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
13883         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
13884
13885 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
13886
13887         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
13888         SUBREG or ZERO_EXTEND.
13889
13890 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
13891
13892         * sh.h (current_function_anonymous_args): Remove.
13893         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
13894         of current_function_varargs and current_function_stdarg is set.
13895         * sh.c (sh_expand_prologue): Check current_function_varargs /
13896         current_function_stdarg / TARGET_SH5 instead of
13897         current_function_anonymous_args.
13898
13899         * sh64.h (TARGET_VERSION): Define.
13900
13901 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
13902
13903         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
13904         VRSAVE_REGNO on TARGET_ALTIVEC.
13905
13906 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
13907
13908         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
13909         bits of SImode const_int.
13910         (includes_rshift_p): Likewise.
13911         (print_operand): Call mask_operand and mask64_operand with correct
13912         mode.
13913         (rs6000_output_function_epilogue): Pad traceback table to word.
13914         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
13915         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
13916         mask64_operand with correct mode.
13917         (FUNCTION_ARG_REGNO_P): Correct parentheses.
13918
13919 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13920
13921         PR debug/4461
13922         * varasm.c (get_pool_constant_mark): New.
13923         * rtl.h (get_pool_constant_mark): Add prototype.
13924         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
13925         be represented if it has not been output.
13926
13927 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13928
13929         * combine.c (do_SUBST): Sanity check substitutions of
13930         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
13931         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
13932         CONST_INT into its operand.
13933         (known_cond): Likewise, for ZERO_EXTEND.
13934         * simplify-rtx.c (simplify_unary_operation): Fix condition to
13935         allow for simplification of wide modes.  Reject CONST_INTs in
13936         ZERO_EXTEND when their actual mode is not given.
13937
13938 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13939
13940         * c-decl.c (pushdecl): If no global declaration is found for an
13941         extern declaration in block scope, try a limbo one.
13942
13943 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13944
13945         PR c++/4401
13946         * c-common.c (pointer_int_sum): Moved from...
13947         * c-typeck.c (pointer_int_sum): ...here.
13948         * c-common.h (pointer_int_sum): Add prototype.
13949
13950 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13951
13952         PR c++/5713
13953         * c-decl.c (duplicate_decls): Return 0 if issued error about
13954         redeclaration.
13955
13956 2002-02-20  Roger Sayle  <roger@eyesopen.com>
13957             Jakub Jelinek  <jakub@redhat.com>
13958
13959         PR c/4389
13960         * tree.c (host_integerp): Ensure that the constant integer is
13961         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
13962         when pos is zero or non-zero respectively.  Clarify comment.
13963         * c-format.c (check_format_info_recurse): Fix host_integerp
13964         usage; the pos argument should be zero when assigning to a
13965         signed HOST_WIDE_INT.
13966
13967 2002-02-20  Richard Henderson  <rth@redhat.com>
13968
13969         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
13970         of the operand, rather than assuming TImode.
13971         (ix86_expand_binop_builtin): Cope with commutative patterns
13972         using nonimmediate_operand for both operands.
13973         (ix86_expand_timode_binop_builtin): Likewise.
13974         (ix86_expand_store_builtin): Validate operand 1.
13975         (ix86_expand_unop1_builtin): Likewise.
13976
13977 2002-02-20  Philip Blundell  <philb@gnu.org>
13978
13979         PR 5705
13980         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
13981
13982 2002-02-20  Richard Henderson  <rth@redhat.com>
13983
13984         PR c/5615
13985         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
13986
13987 2002-02-20  Tom Tromey  <tromey@redhat.com>
13988
13989         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13990         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13991         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13992         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13993         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
13994         unconditionally.
13995
13996 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
13997
13998         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
13999           for (const_int 0) in X not just INTVAL.
14000
14001 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
14002
14003         * doc/extend.texi: Avoid or reduce overfull hboxes.
14004
14005 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
14006
14007         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
14008         operations if the field does not start at a mode boundary.
14009
14010 2001-02-20      Joel Sherrill <joel@OARcorp.com>
14011
14012         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
14013         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
14014         Also done for -Acpu and -Amachine.
14015
14016 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
14017
14018         * cppinit.c (init_dependency_output): Take deps output file
14019         from -o if none given with -MF.  Suppress normal output.
14020         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
14021         * doc/cpp.texi, doc/invoke.texi: Update.
14022
14023 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14024
14025         * toplev.c (output_quoted_string): Write unprintable
14026         characters with octal escapes.
14027
14028 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14029
14030         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
14031         really_call_used[VRSAVE_REGNO] if not Altivec.
14032
14033 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
14034
14035         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
14036         MODE_MASK.
14037         (constant_pool_expr_1): Fix formatting.
14038         (rs6000_legitimize_reload_address): Likewise.
14039
14040 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14041
14042         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
14043         now that we have one.
14044
14045 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14046
14047         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
14048         end of first block of bitfields (which was only seven bits);
14049         rename dummy to unused_1; remove comment which is no longer true.
14050
14051 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14052
14053         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
14054
14055 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14056
14057         PR 5399
14058         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
14059         if generating PIC.
14060
14061         PR 5054
14062         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
14063         arm_is_longcall_p rather than inspecting call-type cookie
14064         directly.
14065         (call_value_insn) [TARGET_THUMB]: Likewise.
14066
14067 2002-02-19  Graham Stott  <grahams@redhat.com>
14068
14069         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
14070
14071 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14072
14073         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
14074         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
14075         (FP_SAVE_INLINE): Delete.
14076
14077         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
14078         * config/rs6000/eabi.asm: Remove ABI save restore routines.
14079         * config/rs6000/t-ppccomm: Build crtsavres.o.
14080         * config/rs6000/crtsavres.asm: New file.
14081
14082 2002-02-19  Philip Blundell  <philb@gnu.org>
14083
14084         * config/arm/arm.c (use_return_insn): Don't reject interrupt
14085         functions.
14086         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
14087         (output_return_instruction): Allow interrupt functions to return with
14088         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
14089         (arm_expand_prologue): Subtract 4 before stacking LR in an
14090         interrupt function.
14091
14092 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14093
14094         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
14095         decl, not just FUNCTION_DECL.
14096         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
14097         (arm_assemble_integer): Likewise.
14098         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
14099         marked local.
14100
14101 2002-02-19  matthew green  <mrg@eterna.com.au>
14102
14103         * config.gcc (sparc-*-netbsdelf*): Enable target.
14104         (sparc64-*-netbsd*): New target.
14105         * config/sparc/netbsd-elf.h: New file.
14106         * config/sparc/t-netbsd64: New file.
14107
14108 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14109
14110         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
14111
14112 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
14113
14114         * doc/invoke.texi: explicitly list the style guidelines that
14115         -Weffc++ checks for.
14116
14117 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
14118
14119         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
14120
14121 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
14122
14123         PR other/5718
14124         * gcc.c (cpp_unique_options): Treat -o as indicating object file
14125         only if not -E.  If -E, pass -o through to the preprocessor.
14126
14127 2002-02-19  Kazu Hirata  <kazu@hxi.com>
14128
14129         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
14130         register number with an appropriate macro.
14131
14132 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14133
14134         * doc/rtl.texi (Constants): Close @code tag.
14135
14136 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
14137
14138         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
14139         ("mmx_uavgv4hi3"): Same.
14140         ("pmulhrwv4hi3"): Same.
14141
14142         * tree-inline.c (walk_tree): Handle vectors.
14143
14144         * c-common.c (constant_expression_warning): Handle vectors.
14145         (overflow_warning): Same.
14146
14147         * sched-deps.c (sched_analyze_2): Handle vectors.
14148
14149         * rtlanal.c (rtx_unstable_p): Handle vectors.
14150         (rtx_varies_p): Same.
14151         (count_occurrences): Same.
14152         (regs_set_between_p): Same.
14153         (modified_between_p): Same.
14154         (modified_in_p): Same.
14155         (volatile_insn_p): Same.
14156         (volatile_refs_p): Same.
14157         (side_effects_p): Same.
14158         (may_trap_p): Same.
14159         (inequality_comparisons_p): Same.
14160         (replace_regs): Same.
14161         (computed_jump_p_1): Same.
14162
14163         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
14164         argument.
14165         (inner_mode_array): New.
14166         (copy_rtx): Handle vectors.
14167         (copy_most_rtx): Same.
14168         (rtx_equal_p): Same.
14169         (get_mode_alignment): Adjust for vectors.
14170
14171         * resource.c (mark_referenced_resources): Handle vectors.
14172         (mark_set_resources): Same.
14173
14174         * reload1.c (eliminate_regs): Handle vectors.
14175         (elimination_effects): Same.
14176         (scan_paradoxical_subregs): Same.
14177
14178         * reload.c (subst_reg_equivs): Handle vectors.
14179
14180         * regrename.c (scan_rtx): Handle vectors.
14181
14182         * regclass.c (reg_scan_mark_refs): Handle vectors.
14183
14184         * recog.c (find_single_use_1): Handle vectors.
14185
14186         * local-alloc.c (equiv_init_varies_p): Handle vectors.
14187         (contains_replace_regs): Same.
14188         (memref_referenced_p): Same.
14189
14190         * integrate.c (copy_rtx_and_substitute): Handle vectors.
14191         (subst_constants): Same.
14192
14193         * genattrtab.c (attr_copy_rtx): Handle vectors.
14194         (encode_units_mask): Same.
14195         (clear_struct_flag): Same.
14196         (count_sub_rtxs): Same.
14197
14198         * gcse.c (want_to_gcse_p): Handle vectors.
14199         (oprs_unchanged_p): Same.
14200         (hash_expr_1): Same.
14201         (oprs_not_set_p): Same.
14202         (expr_killed_p): Same.
14203         (compute_transp): Same.
14204         (store_ops_ok): Same.
14205
14206         * function.c (purge_addressof_1): Do not allow paradoxical subregs
14207         of vectors.
14208         (fixup_var_refs_1): Same.
14209         (instantiate_virtual_regs_1): Same.
14210
14211         * fold-const.c (operand_equal_p): Handle vectors.
14212         (fold): Same.
14213         (rtl_expr_nonnegative_p): Same.
14214
14215         * flow.c (mark_used_regs): Handle vectors.
14216
14217         * df.c (df_uses_record): Handle vectors.
14218
14219         * cselib.c (cselib_subst_to_values): Handle vectors.
14220         (cselib_mem_conflict_p): Same.
14221         (hash_rtx): Same.
14222
14223         * cse.c (canon_reg): Handle vectors.
14224         (fold_rt): Same.
14225         (cse_process_notes): Same.
14226         (count_reg_usage): Same.
14227         (canon_hash): Same.
14228
14229         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
14230
14231         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
14232
14233         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
14234         (gen_rtx): Handle CONST_VECTOR.
14235         (gen_const_vector_0): New.
14236         (copy_rtx_if_shared): CONST_VECTORs can be shared.
14237         (reset_used_flags): Same.
14238         (copy_insn_1): Same.
14239         (initializer_constant_valid_p): Handle VECTOR_CST.
14240
14241         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
14242
14243         * doc/rtl.texi (Constants): Document const_vector.
14244         (CONST0_RTX): Update for vectors.
14245         (RTL sharing): Same.
14246
14247         * print-tree.c (print_node): Add case for VECTOR_CST.
14248
14249         * tree.h (TREE_VECTOR_CST_ELTS): New.
14250         (struct tree_vector): New.
14251         (union tree_node): Add vector node.
14252         (build_vector): Add prototype.
14253
14254         * tree.def (VECTOR_CST): New.
14255
14256         * tree.c (build_vector): New.
14257
14258         * expmed.c (make_tree): Handle CONST_VECTOR.
14259
14260         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
14261         (CONST_VECTOR_ELT): New.
14262         (CONST_VECTOR_NUNITS): New.
14263
14264         * machmode.h (GET_MODE_INNER): New.
14265         (DEF_MACHMODE): Accept 8th arg.
14266
14267         * machmode.def: Add 8th argument for vector inner mode.
14268         Add inner vector modes for vectors.
14269
14270         * rtl.def (VEC_CONST): Remove.
14271         (CONST_VECTOR): New.
14272
14273         * expr.c (clear_storage): Allow vectors.
14274         (is_zeros_p): Handle VECTOR_CST.
14275
14276         * varasm.c (output_constant_pool): Handle vectors.
14277         (rtx_const): Add veclo and vechi fields.
14278         (kind): Add RTX_VECTOR.
14279         (decode_rtx_const): Add case for vector.
14280
14281         * config/rs6000/rs6000-protos.h: Add zero_constant.
14282
14283         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
14284         constants.  Force easy vector constants into memory.
14285         (easy_vector_constant): New.
14286         (emit_easy_vector_constant): New.
14287         (rs6000_legitimize_reload_address): Do not generate bad reloads on
14288         darwin.
14289
14290         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
14291         instruction does.
14292         ("altivec_lvxl"): Same.
14293         (altivec_lvebx): Same.
14294         (altivec_lvehx): Same.
14295         (altivec_lvewx): Same.
14296         ("*movv4si_const0"): New.
14297         ("*movv4sf_const0"): New.
14298         ("*movv8hi_const0"): New.
14299         ("*movv16qi_const0"): New.
14300
14301 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14302
14303         * config/h8300/h8300.c (notice_update_cc): Use
14304         cc_status.value2.
14305
14306 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14307
14308         * config/h8300/h8300.md (divmod patterns): Change the
14309         constraints for operands[1] to register_operand.
14310
14311 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14312
14313         * config/h8300/h8300-protos.h: Remove the prototype for
14314         p_operand.
14315         * config/h8300/h8300.c (p_operand): Remove.
14316         * config/h8300/h8300.md: Replace p_operand with
14317         const_int_operand.
14318
14319 2002-02-18 Philip Blundell <pb@nexus.co.uk>
14320
14321         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
14322         comment.
14323         (output_return_instruction): Allow use of LDR to unstack
14324         return addresss even for interrupt handlers or when
14325         interworking.  If compiling for ARMv5, use interworking-safe
14326         return instructions by default.  Remove duplicated code and
14327         lengthy "strcat" sequences.
14328
14329 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14330
14331         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
14332         (LINK_EH_SPEC): Define.
14333         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
14334
14335 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14336
14337         * config/s390/s390.c (s390_emit_prologue): Do not set the
14338         frame_related flag for call-clobbered registers.
14339
14340 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
14341
14342         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
14343         (construct_container): Fix handling of SSE operands.
14344         (ix86_expand_builtin): Fix handling of 64bit pointers.
14345         (mmx_maskmovq_rex): New pattern.
14346
14347 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14348
14349         * regrename.c (kill_set_value): Handle subregs properly.
14350
14351 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
14352
14353         * objc/objc-act.c (handle_impent): Remove leading '*'
14354         from objc_class_name.
14355
14356 2002-02-17  Richard Henderson  <rth@redhat.com>
14357
14358         * config/alpha/alpha.c (some_small_symbolic_operand,
14359         some_small_symbolic_operand_1, split_small_symbolic_operand,
14360         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
14361         Handle small SYMBOL_REFs anywhere, not just inside memories.
14362         * config/alpha/alpha-protos.h: Update.
14363         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14364         * config/alpha/alpha.md (small symbolic operand splitter): Update.
14365
14366 2002-02-17  Roland McGrath  <roland@frob.com>
14367
14368         * config.gcc (powerpc-*-gnu-gnualtivec*,
14369         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
14370         * config/rs6000/gnu.h: New file.
14371         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
14372         Grok "gnu" in rs6000_abi_name.
14373         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
14374         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
14375         Grok -mcall-gnu analogous to -mcall-linux et al.
14376         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
14377         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
14378         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
14379
14380 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
14381
14382         PR c/3444:
14383         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
14384         shortening.
14385
14386 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14387
14388         * config/cris/cris.h: Undefine STARTFILE_SPEC and
14389         ENDFILE_SPEC before (re)defining them.
14390
14391 2002-02-17  Kazu Hirata  <kazu@hxi.com>
14392
14393         * config/h8300/h8300.c: Fix formatting.
14394         * config/h8300/h8300.h: Likewise.
14395
14396 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14397
14398         * doc/tm.texi: Explain why empty strings should not be
14399         marked for translation.
14400
14401 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14402
14403         * final.c (output_operand_lossage): Changed to accept
14404         printf style arguments. Change calls where necessary.
14405         * output.h (output_operand_lossage): Change declaration
14406         accordingly. Update copyright.
14407         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
14408         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
14409         Update copyright date where necessary.
14410
14411         * config/i386/i386.c (print_operand): Likewise. Remove use of
14412         sprintf.
14413
14414         * config/cris/cris.c (cris_operand_lossage): Likewise.
14415         Rename parameter so that exgettext recognizes it as
14416         translatable message.
14417         (LOSE_AND_RETURN): Rename parameter to msgid.
14418
14419 2002-02-17  Kazu Hirata  <kazu@hxi.com>
14420
14421         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
14422         hard coded register number with an appropriate macro.
14423         (HARD_REGNO_MODE_OK): Likewise.
14424         (ARG_POINTER_REGNUM): Likewise.
14425         (STATIC_CHAIN_REGNUM): Likewise.
14426         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
14427         * config/h8300/h8300.md (define_constants): Define more
14428         register numbers.
14429
14430 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14431
14432         * config/i386/i386.h: Don't mark empty strings for translation.
14433
14434 2002-02-16  H.J. Lu <hjl@gnu.org>
14435
14436         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
14437
14438 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
14439
14440         * cppinit.c (merge_include_chains): Check for brack being
14441         NULL before attempting to merge it with qtail.
14442
14443 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
14444
14445         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
14446         DBX_DEBUG.
14447
14448 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14449
14450         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
14451
14452 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14453
14454         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
14455         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
14456         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
14457
14458 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14459
14460         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
14461         now only if !TARGET_FIX.
14462         (*movsi_nt_vms_fix): New pattern.
14463
14464 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
14465
14466         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
14467         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
14468         (alpha_sa_mask, alpha_sa_size): Reflect above change.
14469         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
14470         (alpha_start_function, alpha_expand_epilogue): Likewise.
14471         (unicosmk_gen_dsib): Likewise.
14472
14473 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14474
14475         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
14476
14477 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
14478
14479         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
14480         check_and_change_labels, s390_final_chunkify): Delete.
14481         (s390_split_branches, s390_chunkify_pool): New functions.
14482         (s390_function_prologue): Call them.
14483
14484         * config/s390/s390.h (S390_REL_MAX): Delete.
14485         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
14486
14487         * config/s390/s390.md (cjump, icjump, jump): Fix length
14488         attribute calculation.
14489
14490
14491 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
14492
14493         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
14494         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
14495
14496 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14497
14498         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
14499         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
14500         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
14501
14502 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14503
14504         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
14505
14506 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14507
14508         * reload.c (find_dummy_reload): Check that an output register
14509         is valid for its mode.
14510
14511 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
14512
14513         * combine.c (known_cond): After replacing the REG of a SUBREG, try
14514         to simplify it.
14515
14516         * function.c (assign_parms): Demote promoted argument passed by
14517         transparent reference.
14518
14519 2001-02-14      Joel Sherrill <joel@OARcorp.com>
14520
14521         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
14522         -Acpu() and -Amachine() to eliminate warnings.
14523
14524 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
14525
14526         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
14527
14528 2002-02-14  Kazu Hirata  <kazu@hxi.com>
14529
14530         * config/h8300/h8300-protos.h: Update the prototype for
14531         const_costs.
14532         * config/h8300/h8300.c (const_costs): Treat SET as a little
14533         more expensive operation.
14534         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
14535         reference to const_costs.
14536
14537 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
14538
14539         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
14540
14541 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
14542
14543         PR c/5503:
14544         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
14545         use arguments from newtype.
14546
14547 2002-02-13  Eric Christopher  <echristo@redhat.com>
14548
14549         * config/mips/mips.c (override_options): Add check for march/mipsX
14550         on the same command line. Fix error message in cpu processing.
14551         Remove architecture and ISA checks.
14552
14553 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14554
14555         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
14556
14557         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
14558
14559 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14560
14561         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
14562         alternatives.
14563         ("*movv8hi_internal1"): Same.
14564         ("*movv16qi_internal1"): Same.
14565         ("*movv4sf_internal1"): Same.
14566
14567         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
14568         not push_reload for altivec modes.
14569
14570 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
14571
14572         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
14573         all RTEMS targets including removal of #includes from config/*/rtems*.h
14574         file and adding them to tm_file setting. Added xm_defines=POSIX to
14575         many targets.
14576         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
14577         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
14578         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
14579         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
14580         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
14581         config/m68k/rtemself.h: Ditto.
14582         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
14583         config/mips/rtems64.h: Ditto.
14584         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
14585         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
14586         Ditto.
14587         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
14588         config/sparc/rtemself.h: Ditto.
14589         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
14590         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
14591         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
14592         more like arm-elf.
14593         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
14594         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
14595         target made more similar to i386-elf.
14596         * config/i386/t-rtems-i386: Added soft float support and multilibs.
14597         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
14598         be similar to config/m68k/t-m68kelf.
14599         * gthr-rtems.h: Encapsulate with extern "C" for C++.
14600
14601 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
14602
14603         * regmove.c (kill_value): Handle subregs.
14604
14605 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14606
14607         * i386.md (mul patterns): Allow memory operand to be first;
14608         add expanders where needed; fix constraints.
14609         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
14610         Allow memory operand to be the first.
14611
14612         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
14613         operands.
14614
14615 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14616
14617         PR c/5681:
14618         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
14619         GET_MODE (x).
14620
14621 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14622
14623         PR optimization/5547:
14624         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
14625         all valid IA-32 address modes involving non-scaled %ebx and
14626         GOT/GOTOFF as displacement.
14627
14628 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14629
14630         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
14631         after emitting ltorg insns.
14632
14633         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
14634         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
14635         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
14636         *abssf2): Fix "op_type" attribute.
14637
14638 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
14639
14640         * mkconfig.sh: Avoid using a subshell redirect.
14641         ($output.T): Change to $(output)T.
14642         (ENABLE_NLS): Remove unneeded undef.
14643
14644         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
14645         * config/alpha/x-vms (libsubdir): Define.
14646
14647         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
14648         register frame procedures. Optimize retrieving context.
14649
14650         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
14651         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
14652         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
14653
14654 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14655
14656         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
14657         Make same change as for find_base_value.
14658
14659 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14660
14661         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
14662         of QImode and SImode.
14663
14664 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14665
14666         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
14667         length computation of movsi.
14668         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
14669
14670 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14671
14672         * config/h8300/h8300.md (subqi3): Tighten the predicate for
14673         operands[2] to register_operand.
14674
14675 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14676
14677         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
14678
14679 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
14680
14681         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
14682         for altivec_lvx* and altivec_stvx*.
14683         ("*movv4si_internal"): Add constraint for loading from GPRs.
14684         ("*movv8hi_internal1"): Same.
14685         ("*movv16qi_internal1"): Same.
14686         ("*movv4sf_internal1"): Same.
14687
14688         * config/rs6000/rs6000.c (altivec_register_operand): New.
14689
14690         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
14691         altivec_register_operand.
14692
14693 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
14694
14695         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
14696         handle SYMBOL_REF.
14697
14698 2002-02-13  Stan Shebs  <shebs@apple.com>
14699
14700         * c-typeck.c (digest_init): Handle vectors.
14701         (really_start_incremental_init): Same.
14702         (pop_init_level): Same.
14703         (process_init_element): Same.
14704
14705         * varasm.c (output_constant): Same.
14706
14707         * expr.c (clear_storage): Same.
14708         (store_constructor): Same.
14709
14710 2002-02-12  Eric Christopher  <echristo@redhat.com>
14711
14712         * explow.c (hard_function_value): Add comment explaining
14713         signed/unsigned comparison.
14714
14715 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
14716
14717         * jump.c (never_reached_warning): Add finish argument.
14718         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
14719         real insn after end.
14720         * rtl.h (never_reached_warning): Adjust prototype.
14721         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
14722         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
14723         never_reached_warning.
14724
14725 2002-02-12  Graham Stott  <grahams@redhat.com>
14726
14727         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
14728
14729 2002-02-12  Kazu Hirata  <kazu@hxi.com>
14730
14731         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
14732         logical shifts on H8/300.
14733         (shift_alg_si): Improve several shifts on H8/300.
14734         (get_shift_alg): Likewise.
14735
14736 2002-02-12  Graham Stott  <grahams@redhat.com>
14737
14738         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
14739
14740 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14741
14742         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
14743         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
14744
14745 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
14746
14747         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
14748         non-CONST_INT through default_assemble_integer.
14749         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
14750         <case 8>: Abort for CONST_DOUBLE.
14751
14752 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14753
14754         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
14755         is specified.
14756         * config/pa/pa-linux.h (LIB_SPEC): Delete.
14757         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14758
14759 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
14760
14761         * config/stormy16/stormy16.md (zero_extendqihi2): New.
14762
14763 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
14764
14765         * regrename.c (regrename_optimize): Don't accept a
14766         part-clobbered register if the replaced register is not part
14767         clobbered.
14768
14769         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
14770         take padding into account when computing the argument value.
14771
14772         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
14773
14774         * combine.c (try_combine): Apply substitutions in
14775         CALL_INSN_FUNCTION_USAGE too.
14776
14777 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
14778
14779         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
14780         __builtin_altivec_abs*.
14781         (bdesc_abs): New.
14782
14783         * config/rs6000/rs6000.h (rs6000_builtins): Add
14784         ALTIVEC_BUILTIN_ABS*.
14785
14786         * config/rs6000/altivec.h: Use const char for builtins expecting
14787         literals.
14788         (vec_abs): New versions for C and C++.
14789         (vec_abss): Same.
14790
14791 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14792
14793         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
14794         using Pmode.
14795
14796 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14797
14798         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
14799         constant definition from h8300.md.
14800         (FRAME_POINTER_REGNUM): Likewise.
14801         * config/h8300/h8300.md (define_constants): Add FP_REG.
14802
14803 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14804
14805         * config/h8300/h8300.c (print_operand): Remove redundant code.
14806
14807 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14808
14809         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
14810         * config/h8300/h8300.c (byte_reg): Make it static.
14811
14812 2002-02-10  Richard Henderson  <rth@redhat.com>
14813
14814         PR c/5623
14815         * c-typeck.c (incomplete_type_error): Handle flexible array members.
14816
14817 2002-02-10  Richard Henderson  <rth@redhat.com>
14818
14819         PR c++/5624
14820         * tree.c (append_random_chars): Don't abort if main_input_filename
14821         does not exist.
14822
14823 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
14824
14825         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
14826
14827 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14828
14829         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
14830         (pushhi1): Likewise.
14831
14832 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14833
14834         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
14835         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
14836
14837 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
14838
14839         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
14840         remove MASK_VIS.
14841         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
14842
14843 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14844
14845         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
14846         a half of an SImode register on H8/300.
14847
14848 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
14849
14850         * i386.md (movdi_2): Add missing '!'.
14851
14852 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14853
14854         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
14855         definitions.
14856
14857 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14858
14859         * config/h8300/h8300.md (length): Correct the distance valid
14860         for the short branch.
14861
14862 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14863
14864         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
14865
14866 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14867
14868         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
14869         registers in SImode.
14870         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
14871         part-clobbered.
14872
14873         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
14874         patch.
14875
14876         Contribute sh64-elf.
14877         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14878         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
14879         (sh_cannot_modify_jumps_p): New function.
14880         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
14881         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
14882         (sh_ms_bitfield_layout_p): New function.
14883         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
14884                     Zack Weinberg  <zack@codesourcery.com>
14885         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
14886         expand_simple_binop instead of expand_binop.
14887         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
14888         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
14889         use of .quad and .uaquad.
14890         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
14891         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
14892         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14893         * config/sh/sh.md (movdi_const, movdi_const_32bit,
14894         movdi_const_16bit): Make sure all CONSTs have modes.
14895         (sym2PIC): Ditto, but by adjusting all callers.
14896         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
14897         if the prologue calls the SHmedia argument decoder or register
14898         saver.
14899         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14900         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
14901         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
14902         (sh_expand_epilogue): Don't emit USE of return target register.
14903         (prepare_move_operands): Legitimize DImode PIC addresses.
14904         (sh_media_register_for_return): Skip tr0, used to initialize the
14905         PIC register.
14906         (sh_expand_prologue): Remove explicit USE of return register.
14907         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
14908         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
14909         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
14910         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
14911         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
14912         EXTRA_CONSTRAINT_T.
14913         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
14914         (MOVI_SHORI_BASE_OPERAND_P): New.
14915         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
14916         (EXTRA_CONSTRAINT_T): Define in terms of them.
14917         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
14918         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
14919         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
14920         alternatives supporting TARGET_REGS.
14921         (UNSPEC_GOTPLT): New constant.
14922         (movdi split): Move incrementing of LABEL_NUSES...
14923         (movdi_const, movdi_const_32bit): Here.  Use
14924         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
14925         (movdi_const_16bit): New.
14926         (call, call_value) [flag_pic]: Use GOTPLT.
14927         (call_pop, call_value_pop): New expands.
14928         (call_pop_compact, call_pop_rettramp): New insns.
14929         (call_value_pop_compact, call_value_pop_rettramp): New insns.
14930         (sibcall) [flag_pic]: Use GOT.
14931         (builtint_setjmp_receiver): Remove bogus, unused expand.
14932         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
14933         (*pt, *ptb, ptrel): New insns.
14934         (sym2GOT): Handle DImode GOT.
14935         (sym2GOTPLT, symGOTPLT2reg): New expands.
14936         (sym2PIC): New expand.
14937         (shcompact_return_tramp): Use GOTPLT to return trampoline.
14938         (shcompact_return_tramp_i): Use return register explicitly.
14939         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
14940         disable flag_reorder_blocks.
14941         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14942         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
14943         clobbers, for clarity.
14944         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
14945         restoring of r0 in macl as MAYBE_DEAD.
14946         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
14947         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
14948         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
14949         alter_subreg all over.
14950         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
14951         reload, instead of emitting instructions that would require
14952         reloading.
14953         (casesi_load_media): Add missing modes.
14954         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
14955         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
14956         as used if the argument decoder is called.
14957         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14958         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
14959         Pmode, then extend it to DImode if necessary.
14960         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14961         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
14962         constants in FPU-enabled SHmedia, let them be loaded from memory.
14963         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14964         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
14965         Adjust whitespace in assembly output templates.
14966         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14967         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
14968         mode of if_then_else.
14969         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
14970         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
14971         sh.h.
14972         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
14973                     Joern Rennecke <amylaar@redhat.com>
14974         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
14975         (SUBTARGET_CPP_PTR_SPEC): New.
14976         (SUBTARGET_CPP_SPEC): Remove.
14977         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14978         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14979         Fix typo in previous checkin.
14980         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
14981         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
14982         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
14983                     Alexandre Oliva  <aoliva@redhat.com>
14984         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
14985         what single FP register can hold for SHmedia target.
14986         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14987                     Alexandre Oliva  <aoliva@redhat.com>
14988         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14989         Do not split into SUBREG.
14990         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
14991         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
14992         and added new functions as specified in SH5 ABI r9.
14993         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
14994         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
14995         8-byte boundary.
14996         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
14997         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
14998         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
14999         and consttable_window_ends.
15000         2001-06-03  Graham Stott  <grahams@redhat,com>
15001         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
15002         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
15003         * config/sh/sh.c (print_operand): Handle floating-point pair,
15004         vector and matrix registers.
15005         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
15006         vector modes into account.
15007         * config/sh/sh.md (movv2sf): Split move between registers into
15008         movdf.
15009         (movv4sf, movv16sf): Introduce insns that get split only after
15010         reload.
15011         * config/sh/shmedia.h: Fix Copyright dates.
15012         * config/sh/ushmedia.h: Likewise.  Move loop counter
15013         declarations into conditionals that uses them.
15014         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
15015         loop boundary.
15016         * config/sh/sshmedia.h: Fix Copyright dates.
15017         (sh_media_PUTCFG): Fix constraints.
15018         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
15019         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
15020         ptrmemfunc_vbit_in_delta for SH5.
15021         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
15022         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
15023         * invoke.texi: Likewise.
15024         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
15025         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
15026         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
15027         GCC_pop_shmedia_regs_nofpu): New global symbols.
15028         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
15029         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
15030         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
15031         compact function with nonlocal labels.
15032         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
15033         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
15034         (initial_elimination_offset): Account for their stack space.
15035         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
15036         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
15037         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
15038         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
15039         least one of the operands to be a register.
15040         (movv2sf): Likewise.  Renamed to movv2sf_i.
15041         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
15042         prepare_move_operands() before emitting SHmedia insns.
15043         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
15044         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
15045         Don't save nor initialize r12.  Don't mis-align the stack.
15046         Pad the code with a nop.
15047         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
15048         stack.
15049         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
15050         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
15051         [__SHMEDIA__]: Implement.
15052         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
15053         * config/sh/sh.md: Set latency of `pt' closer to reality.
15054         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
15055         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
15056         Set move, load and store type attributes.
15057         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
15058         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
15059         profiling.
15060         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
15061         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
15062         * config/sh/sh.c (sh_media_register_for_return): New function.
15063         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
15064         branch-target register.
15065         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
15066         * config/sh/sh.md (return_media_i): Use any call-clobbered
15067         branch-target register.
15068         (return_media): If r18 wasn't copied in the prologue, copy it
15069         here.
15070         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
15071         Clear class FP0_REGS.
15072         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
15073         from elf.h.
15074         2001-03-08  DJ Delorie  <dj@redhat.com>
15075         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
15076         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
15077         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
15078         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
15079         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
15080         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
15081         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
15082         return value correctly for call_cookie.
15083         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
15084         * config/sh/crt1.asm (start): Modified so as to call
15085         ___setup_argv_and_call_main.
15086         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
15087         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
15088         SHmedia mode.
15089         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
15090         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
15091         (STRIP_NAME_ENCODING): Use it.
15092         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
15093         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
15094         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
15095         prepare_scc_operands().
15096         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
15097         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
15098         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
15099         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
15100         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
15101         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
15102         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
15103         used in shcompact_incoming_args.
15104         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
15105         change.
15106         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
15107         mode.
15108         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
15109         Adjust accordingly.
15110         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
15111         Simplify.  Adjust.  Add sanity check.
15112         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
15113         FPU_SINGLE_BIT.
15114         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
15115         TARGET_SHCOMPACT.
15116         (udivsi3, divsi3): Use them.
15117         (force_mode_for_call): New insn.
15118         (call, call_value, sibcall_value): Emit it before SHcompact
15119         calls.
15120         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
15121         * config/sh/sh.md (call, call_value, sibcall): Make sure the
15122         call cookie is non-NULL before taking its value.
15123         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
15124         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
15125         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
15126         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
15127         block.
15128         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
15129         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
15130         temporary for stack adjusts.  Use MACL and MACH to pass
15131         arguments to shcompact_incoming_args.
15132         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
15133         clobber r1.
15134         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
15135         (nested_trampoline): Load static chain address into r1.
15136         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
15137         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
15138         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
15139         fp_arith_reg_operand().
15140         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
15141         * config/sh/sh.md (casesi): Sign-extend the first two operands,
15142         and use signed compares for them.
15143         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
15144         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
15145         ones properly aligned.
15146         (find_barrier): Account for extra alignment needed for 8-byte wide
15147         constants.
15148         (machine_dependent_reorg): Require a label for the second 4-byte
15149         constant after an 8-byte one.
15150         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
15151         change.
15152         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15153         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
15154         last_float when switching float modes.
15155         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
15156         auto-increment for general-purpose registers.
15157         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
15158         result.
15159         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
15160         for stack adjust.
15161         * config/sh/sh.c (sh_builtin_saveregs): Support using all
15162         registers for varargs.
15163         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
15164         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
15165         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
15166         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
15167         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
15168         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
15169         call_cookie accordingly.
15170         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
15171         (SHCOMPACT_BYREF): Likewise.
15172         (SHCOMPACT_FORCE_ON_STACK): New macro.
15173         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
15174         (sh_builtin_saveregs): Likewise.
15175         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15176         shcompact_incoming_args): Use new shift values.  Support
15177         sequences of consecutive and non-consecutive pushes/pops.
15178         * config/sh/sh.md (return): Don't explicitly use PR_REG.
15179         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
15180         * config/sh/sh.h (TEXT_SECTION): Define.
15181         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
15182         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15183         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
15184         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
15185         return values on FPU-enabled SHmedia.
15186         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
15187         FPU-enabled SHmedia.
15188         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
15189         value is returned in a non-FP reg and is not returned by
15190         reference.
15191         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
15192         jump_ind.
15193         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
15194         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
15195         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
15196         quad-aligned to be passed by callee-copy reference.
15197         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
15198         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
15199         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
15200         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
15201         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
15202         copying low-numbered FP regs to r7 and r8.
15203         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
15204         FP regs to general-purpose regs only if the copy was passed on the
15205         stack.
15206         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
15207         copying FP reg to r9.
15208         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
15209         copy FP regs to general-purpose regs only in outgoing calls.
15210         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
15211         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
15212         HOST_WIDE_INT.
15213         * config/sh/sh.h (struct sh_args): Document all fields.
15214         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
15215         passed partially on the stack should not consider making
15216         sibcalls.
15217         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
15218         stack_regs only for incoming calls.  When passing FP args,
15219         make sure there are FP regs available before modifying
15220         call_cookie.
15221         (SHCOMPACT_BYREF): Pass double args in general-purpose
15222         registers by reference.
15223         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
15224         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
15225         attempt to generate sibcalls if the caller got any arguments
15226         by reference.
15227         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
15228         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
15229         to 8-byte boundaries.
15230         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
15231         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
15232         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
15233         stored in the stack.
15234         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
15235         for the offsets to have the ISA bit set.
15236         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
15237         invocation.  Use beq instead of bgt to mark end of sequence of
15238         loads.
15239         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
15240         bgt to mark end of sequence of stores.
15241         * config/sh/sh.c (arith_operand): Don't check whether
15242         CONST_OK_FOR_J for now.
15243         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
15244         instead of long for conversion.
15245         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
15246         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
15247         before passing it to fprintf.
15248         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
15249         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
15250         Call set_fpscr before reading/writing SR.
15251         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
15252         Call set_fpscr.
15253         * config/sh/lib1funcs.asm: Add `.align 2' directives before
15254         SHmedia code.
15255         (FMOVD_WORKS): Define on SH5 with FPU.
15256         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
15257         setting.
15258         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
15259         _fpscr_values.
15260         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
15261         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
15262         address.
15263         (ia_main_table): Ditto.
15264         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
15265         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
15266         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
15267         the definitions from sh.h.
15268         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
15269         TARGET_SH5.
15270         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
15271         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
15272         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15273         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
15274         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
15275         Increment LABEL_NUSES.
15276
15277         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
15278         TARGET_SH5.
15279         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
15280         defined.
15281         * config/sh/elf.h (SIZE_TYPE): Likewise.
15282         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15283         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15284         shcompact_incoming_args): Load switch table addresses using
15285         datalabel.
15286         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15287         (NO_BUILTIN_SIZE_TYPE): Define.
15288         (SIZE_TYPE): Don't define.
15289         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15290         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
15291         definition of __SH5__=32 for -m5-compact-nofpu.
15292         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
15293         ADDR_DIFF_VEC.
15294         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
15295         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
15296         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
15297         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
15298         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
15299         (INSN_LENGTH_ALIGNMENT): Likewise.
15300         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15301         * config/sh/sh.md (call, call_value, sibcall): Simplify
15302         copying of non-branch-target register.
15303         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15304         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
15305         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
15306         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15307         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
15308         floating-point values as structs.
15309         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
15310         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
15311         general-purpose register.
15312         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
15313         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
15314         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
15315         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
15316         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
15317         (ENCODE_SECTION_INFO): Enclose variables and constants in
15318         DATALABEL unspecs.
15319         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
15320         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
15321         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
15322         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
15323         only for LABEL_REFs.  For SYMBOL_REFs, prepend
15324         SH_DATALABEL_ENCODING to the symbol name.
15325         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
15326         convert_mode().
15327         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
15328         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
15329         UNSPEC_DATALABEL.
15330         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
15331         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
15332         (DATALABEL_REF_P): Don't require CONST.
15333         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
15334         REL label.
15335         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
15336         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
15337         right.
15338         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
15339         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
15340         Use shallow_copy_rtx and PUT_MODE to change the mode of
15341         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
15342         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
15343         on SHmedia using GENERAL_REGs.
15344         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
15345         bltu_media_i): Fix reversion of conditions.
15346         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
15347         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
15348         * config/sh/sh.c (output_far_jump): Save r13 in macl.
15349         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
15350         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
15351         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
15352         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
15353         (GCC_nested_trampoline): Likewise.
15354         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
15355         * config/sh/sh.c (gen_datalabel_ref): Define.
15356         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
15357         (INITIALIZE_TRAMPOLINE): Likewise.
15358         (TRAMPOLINE_ADJUST_ADDRESS): Define.
15359         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
15360         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
15361         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
15362         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
15363         (ic_invalidate): Adjust for SH5.
15364         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
15365         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
15366         _nested_trampoline.
15367         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
15368         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
15369         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
15370         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
15371         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
15372         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
15373         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
15374         * config/sh/sh.c (target_reg_operand): Match only target-branch
15375         registers and pseudos that aren't virtual registers.
15376         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
15377         Copy operands that don't match target_reg_operand to pseudos.
15378         (call_media, call_value_media, sibcall_media): Use
15379         target_reg_operand instead of target_operand.
15380         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
15381         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
15382         * config/sh/sh.c (target_reg_operand): Match hardware registers
15383         other than branch-target registers.
15384         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
15385         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
15386         (fpscr_values) [SH5 == 32]: Define.
15387         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
15388         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
15389         Handle function addresses coming in SUBREGs.
15390         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
15391         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15392         shcompact_return_trampoline): Use datalabel where appropriate.
15393         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
15394         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
15395         general-purpose register to copy one branch-target register to
15396         another.
15397         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
15398         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
15399         SYMBOL_REFs with VOIDmode.
15400         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
15401         bltu_media_i): New insns.
15402         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
15403         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
15404         (INIT_CUMULATIVE_ARGS): Likewise.
15405         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
15406         * machmode.def (V16SFmode): New mode.
15407         * c-common.c (type_for_mode): Support V2SF and V16SF.
15408         * tree.c (build_common_tree_nodes_2): Likewise.
15409         * tree.h (tree_index): Likewise.
15410         * calls.c (emit_call_1): Take args_so_far.  Adjust all
15411         callers.  Introduce CALL_POPS_ARGS.
15412         * tm.texi (CALL_POPS_ARGS): Document.
15413         * config/sh/crt1.asm: Implement in SHmedia mode.
15414         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
15415         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
15416         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
15417         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
15418         Implement divsi and udivsi in SHmedia mode.  Introduce
15419         SHcompact trampolines.
15420         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
15421         only in SHmedia64.
15422         (regno_reg_class): Rewrite.
15423         (fp_reg_names): Remove.
15424         (sh_register_names, sh_additional_register_names): New.
15425         (print_operand): Added `u'.  Support SUBREGs in addresses.
15426         Add parentheses around shifted CONSTs.
15427         (output_file_start): Output .mode and .abi directives.
15428         (shiftcosts, addsubcosts, multcosts): Adjust.
15429         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
15430         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
15431         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
15432         bytes, not registers.  Take into account the need for the
15433         SHcompact incoming args trampoline.  Adjust all callers.
15434         (sh_expand_prologue): Take stack_regs into account.  Call
15435         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
15436         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
15437         stack aligned as per SH5 ABI.
15438         (sh_builtin_saveregs): Support SH5 ABI.
15439         (sh_build_va_list, sh_va_start): Likewise.
15440         (initial_elimination_offset): Take alignment into account.
15441         Compute location of PR according to the SH5 stack frame.
15442         (arith_reg_operand): Reject branch-target registers.
15443         (shmedia_6bit_operand): New.
15444         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
15445         (target_reg_operand): Match DImode only.  Accept SUBREGs.
15446         (target_operand): New.
15447         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
15448         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
15449         SIBCALL_REGS for SHmedia.
15450         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
15451         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
15452         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
15453         (TARGET_SWITCHES): New SH5 flags.
15454         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
15455         VALID_REGISTER_P to disable unsupported registers.
15456         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
15457         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
15458         (FUNCTION_ARG_PADDING): Define.
15459         (FASTEST_ALIGNMENT): Adjust.
15460         (SH_REGISTER_NAMES_INITIALIZER): New.
15461         (sh_register_names): Declare.
15462         (DEBUG_REGISTER_NAMES): Define.
15463         (REGISTER_NAMES): Define based on sh_register_names.
15464         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
15465         (sh_additional_register_names): Declare.
15466         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
15467         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
15468         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
15469         (REGISTER_NATURAL_MODE): Define.
15470         (FIRST_PSEUDO_REGISTER): Adjust.
15471         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
15472         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
15473         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
15474         (VECTOR_MODE_SUPPORTED_P): Define.
15475         (REG_CLASS_CONTENTS): Adjust.
15476         (SMALL_REGISTER_CLASSES): Adjust.
15477         (REG_ALLOC_ORDER): Adjust.
15478         (INDEX_REG_CLASS): Adjust.
15479         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
15480         (CONST_OK_FOR_LETTER_P): Adjust.
15481         (PREFERRED_RELOAD_CLASS): Adjust.
15482         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
15483         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
15484         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
15485         (FIRST_FP_PARM_REG): Adjust.
15486         (CALL_POPS_ARGS): Define.
15487         (FUNCTION_ARG_REGNO_P): Adjust.
15488         (struct sh_args): New fields.
15489         (GET_SH_ARG_CLASS): Adjust.
15490         (INIT_CUMULATIVE_ARGS): Adjust.
15491         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
15492         (FUNCTION_ARG_ADVANCE): Adjust.
15493         (FUNCTION_ARG): Adjust.
15494         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
15495         (FUNCTION_ARG_CALLEE_COPIES): Define.
15496         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
15497         (STRICT_ARGUMENT_NAMING): Define.
15498         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
15499         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
15500         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
15501         (SETUP_INCOMING_VARARGS): Adjust.
15502         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
15503         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
15504         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
15505         (SUBREG_OK_FOR_INDEX_P): Adjust.
15506         (EXTRA_CONSTRAINT_S): Update.
15507         (EXTRA_CONSTRAINT_T): New.
15508         (EXTRA_CONSTRAINT): Adjust.
15509         (GO_IF_LEGITIMATE_INDEX): Adjust.
15510         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
15511         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
15512         (MOVE_MAX): Adjust.
15513         (MAX_MOVE_MAX): Define.
15514         (Pmode): Adjust.
15515         (CONST_COSTS): Adjust.
15516         (REGISTER_MOVE_COST): Adjust.
15517         (BRANCH_COST): Adjust.
15518         (TEXT_SECTION_ASM_OP): Adjust.
15519         (DBX_REGISTER_NUMBER): Adjust.
15520         (ASM_OUTPUT_DOUBLE_INT): New.
15521         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
15522         (PREDICATE_CODES): Adjust.
15523         (PROMOTE_MODE): Adjust.
15524         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
15525         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
15526         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
15527         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
15528         (DR0_REG, DR2_REG, DR4_REG): Renumber.
15529         (TR0_REG, TR1_REG, TR2_REG): New.
15530         (XD0_REG): Renumber.
15531         (UNSPEC_COMPACT_ARGS): New.
15532         (type): Added pt and ptabs.
15533         (length): Default to 4 on SHmedia.  Default pt length to 12
15534         and     20 on SHmedia32 and SHmedia64, respectively.
15535         (pt): New function unit.
15536         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
15537         Add whitespace between operands of SHmedia instructions.
15538         (movdicc): Fix.
15539         (adddi3_media, addsi3_media): Adjust constraints.
15540         (subsi3) [SHmedia]: Force operand 1 into a register.
15541         (udivsi3_i1_media, udivsi3_i4_media): New.
15542         (udivsi3): Support SHmedia.
15543         (divsi3_i1_media, divsi3_i4_media): New.
15544         (divsi3): Support SHmedia.
15545         (anddi3, iordi3, xordi3): Adjust constraints.
15546         (zero_extendhidi2, zero_extendqidi2): New.
15547         (extendsidi2, extendhidi2, extendqidi2): New.
15548         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
15549         (pop_e, pop_fpul, pop_4): Likewise.
15550         (movsi_media): Support FP and BT registers.
15551         (movsi_media_nofpu): New.  Adjust splits to DImode.
15552         (lduw, ldub): Renamed to zero_extend* above.
15553         (movqi_media): Fix typo.
15554         (movdi_media): Support FP and BT registers.
15555         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
15556         (movdi_const_32bit): New.
15557         (shori_media): Require immediate operand.  Use `u' for output.
15558         (movdf_media, movsf_media): Simplified.
15559         (movdf_media_nofpu, movsf_media_nofpu): New.
15560         (movdf, movsf): Adjust
15561         (movv2sf, movv2sf, movv16sf): New.
15562         (beq_media, beq_media_i): Adjust constraints.  Don't use
15563         scratch BT register.
15564         (bne_media, bne_media_i): Likewise.
15565         (bgt_media, bgt_media_i): Likewise.
15566         (bge_media, bge_media_i): Likewise.
15567         (bgtu_media, bgtu_media_i): Likewise.
15568         (bgeu_media, bgeu_media_i): Likewise.
15569         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
15570         bunordered): Emit jump insn.  Force operands to registers when
15571         needed.
15572         (jump_media, jump): Simplify.
15573         (call_compact, call_compact_rettramp): New.
15574         (call_value_compact, call_value_compact_rettramp): New.
15575         (call_media, call_value_media): Simplify.
15576         (sibcall_compact, sibcall_media): New.
15577         (call, call_value): Adjust for SHmedia and SHcompact.
15578         (sibcall, sibcall_value, untyped_call): Likewise.
15579         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
15580         (indirect_jump): Adjust for SHmedia.
15581         (casesi_jump_media): New.
15582         (nop): Re-enable for SHmedia.
15583         (call_site): Restrict to SH1.
15584         (casesi): Adjust for SHmedia.
15585         (casesi_shift_media, casesi_load_media): New.
15586         (return): Explicitly use PR register.  Call return trampoline
15587         on SHcompact.
15588         (return_i): Explicitly use PR register.
15589         (shcompact_return_tramp, shcompact_return_tramp_i): New.
15590         (return_media): Adjust.
15591         (shcompact_incoming_args): New.
15592         (epilogue): Adjust.
15593         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15594         (movstrsi): Disable on SH5.
15595         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
15596         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
15597         (subsf3, subsf3_media): Likewise.
15598         (mulsf3, mulsf3_media, mac_media): Likewise.
15599         (divsf3, divsf3_media): Likewise.
15600         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
15601         (floatsisf2, fux_truncsfsi2): Likewise.
15602         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
15603         constraints.
15604         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
15605         (cmpunsf_media, cmpsf): Likewise.
15606         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
15607         (abssf2, abssf2_media): Likewise.
15608         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
15609         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
15610         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
15611         (floatsidf2, fix_truncdfsi2): Likewise.
15612         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
15613         constraints.
15614         (cmpeqdf_media, cmpgtdf_media): Likewise.
15615         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
15616         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
15617         (absdf2, absdf2_media): Likewise.
15618         (extendsfdf2, extendsfdf2_media): Likewise.
15619         (truncsfdf2, truncsfdf2_media): Likewise.
15620         * config/sh/sh64.h: New file.
15621         * config/sh/t-sh64: New file.
15622         * config/sh/shmedia.h: New file.
15623         * config/sh/ushmedia.h: New file.
15624         * config/sh/sshmedia.h: New file.
15625         * configure.in: Added sh64-*-elf.
15626         * configure: Rebuilt.
15627         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
15628         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
15629         (reg_class_from_letter): Use `b' for TARGET_REGS.
15630         (print_operand): Support `%M', `%m', `AND' and
15631         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
15632         (andcosts): Adjust for SHmedia.
15633         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
15634         Likewise.
15635         (target_reg_operand): New function.
15636         * config/sh/sh-protos.h (target_reg_operand): Declare.
15637         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
15638         FP registers on SH5.
15639         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
15640         on SH4.
15641         (TARGET_REGISTER_P): New macro.
15642         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
15643         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
15644         (EXTRA_CONSTRAINT_S): New macro.
15645         (EXTRA_CONSTRAINT): Adjust.
15646         (FLOAT_TYPE_SIZE): Define to 32.
15647         (Pmode): DImode on SHmedia.
15648         (CONST_COSTS): Adjust for SHmedia literals.
15649         (PREDICATE_CODES): Added target_reg_operand.
15650         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
15651         * config/sh/sh.md: Remove all attrs from SHmedia insns.
15652         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
15653         (cmpdi): Accept SHmedia.
15654         (movdicc_false, movdicc_true): New insns.
15655         (movdicc): New expand.
15656         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
15657         no_new_pseudos.
15658         (addsi3_media): Match `S' constraint.
15659         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
15660         (negdi2): Expand for SHmedia.
15661         (one_cmpldi2): New expand.
15662         (zero_extendsidi2): Change from expand to insn.
15663         (extendsidi2): Add constraints.
15664         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
15665         LD/ST address.  Fix SI immediate loading split.
15666         (movhi_media, movqi_media, lduw, ldub): New insns.
15667         (movhi, movqi): Accept SHmedia.
15668         (shori_media, movdi_media): Relax input constraints.  Split
15669         symbolic constants.
15670         (movdf_media, movsf_media): New insn.  New split to movdi.
15671         (movdf, movsf): Match on SHmedia.
15672         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
15673         bgeu_media): New insns and splits.  New insns with `_i' suffix.
15674         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
15675         (bunordered): New expand.
15676         (jump_compact): Renamed from `jump'.
15677         (jump_media): New insn.
15678         (jump): New expand.
15679         (call_media, call_value_media): New insns.
15680         (call, call_value): Adjust.
15681         (indirect_jump_compact): Renamed from `indirect_jump'.
15682         (indirect_jump_media): New insn.
15683         (indirect_jump): New expand.
15684         (untyped_call, return): Accept SHmedia.
15685         (return_media): New insn.
15686         (prologue, epilogue, blockage): Accept SHmedia.
15687         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15688         (sunordered): New expand.
15689         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
15690         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
15691         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
15692         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
15693         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
15694         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
15695         abssf2_media): New insns.
15696         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
15697         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
15698         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
15699         floatdidf2, floatsidf2_media, fix_truncdfdi2,
15700         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
15701         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
15702         absdf2_media): New insns.
15703         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
15704         (extendsfdf2_media, truncdfsf2_media): New insns.
15705         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
15706         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
15707         * config/sh/sh.h (CONST_OK_FOR_J): Document.
15708         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
15709         * config/sh/sh.md (adddi3): New expand.
15710         (adddi3_media, adddi3z_media): New insns.
15711         (adddi3_compact): Renamed from adddi3.
15712         (addsi3_media): Use add.l r63 to add constant zero.
15713         (subdi3): New expand.
15714         (subdi3_media): New insn.
15715         (subdi3_compact): Renamed from subdi3.
15716         (mulsidi3): New expand.
15717         (mulsidi3_media): New insn.
15718         (mulsidi3_compact): Renamed from mulsidi3.
15719         (umulsidi3): New expand.
15720         (umulsidi3_media): New insn.
15721         (umulsidi3_compact): Renamed from umulsidi3.
15722         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
15723         (ashlsi3, ashrsi3, lshrsi3): Use them.
15724         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
15725         (ashldi3, ashrdi3, lshrdi3): Use them.
15726         (zero_extendsidi2): New expand.
15727         (extendsidi2): New insn.
15728         (movsi_media): New insn.  Split to movdi to load constants.
15729         (movsi): Enable for shmedia.
15730         (movdi_media): New insn.  Use shori_media to load wide constants.
15731         (short_media): New insn.
15732         (movdi): Enable for shmedia.
15733         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
15734         * config/sh/sh.h (CPP_SPEC): Added `m5'.
15735         (SUBTARGET_CPP_SPEC): Added `!m5'.
15736         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
15737         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
15738         to all other SH variants.
15739         (TARGET_DEFAULT): Set to SH1_BIT.
15740         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
15741         (BITS_PER_WORD): Raise to 64 on shmedia.
15742         (MAX_BITS_PER_WORD): Change to 64.
15743         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
15744         (INT_TYPE_SIZE): Keep as 32.
15745         (UNITS_PER_WORD): Raise to 8 on shmedia.
15746         (MIN_UNITS_PER_WORD): Keep as 4.
15747         (POINTER_SIZE): Raise to 64 on shmedia.
15748         (CONST_OK_FOR_J): New macro.
15749         (CONST_OK_FOR_LETTER_P): Use it.
15750         (processor_type): Add PROCESSOR_SH5.
15751         * config/sh/sh.md: Conditionalize all expands, insns and
15752         splits to TARGET_SH1.
15753         (cpu): Added sh5.
15754         (addsi3_compact): Renamed from...
15755         (addsi3): Now an expand.
15756         (addsi3_media, subsi3_media): New insns.
15757         (subsi3): Don't negate constants with SHmedia.
15758
15759         * hooks.c: New file.
15760         * hooks.h: New file.
15761         * Makefile.in (HOOKS_H): New.
15762         (TARGET_DEF_H): Added $(HOOKS_H).
15763         (OBJS): Added hooks.o.
15764         (cfgcleanup.o, bb-reorder.o): Added target.h.
15765         (hooks.o): Added dependencies.
15766         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
15767         (TARGET_INITIALIZER): this.
15768         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
15769         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
15770         * bb-reorder.c: Include target.h.
15771         (reorder_basic_blocks): Skip if cannot modify jumps.
15772         * cfgcleanup.c: Include target.h.
15773         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
15774
15775 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15776
15777         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15778         Protect jump delay slot instructions with .set noreorder and
15779         .set nomacro.
15780
15781 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15782
15783         * config/mips/mips.md (casesi_internal_di): Calculate
15784         the index into the target offset table correctly.
15785
15786 2002-02-08  Richard Henderson  <rth@redhat.com>
15787
15788         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
15789         * final.c (output_addr_const): Accept and discard SUBREG.
15790         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
15791         mark them unknown instead.
15792         (simplify_subtraction): Handle RTX_UNKNOWN.
15793         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
15794
15795 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
15796
15797         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
15798
15799 2002-02-08  Richard Henderson  <rth@redhat.com>
15800
15801         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
15802
15803 2002-02-08  Andreas Jaeger  <aj@suse.de>
15804
15805         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
15806         * config/i386/t-linux64: New file.
15807
15808 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
15809
15810         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
15811         * c-parse.in (compstmt): Clear last_expr_type.
15812
15813 2002-02-07  Richard Henderson  <rth@redhat.com>
15814
15815         * loop.c (strength_reduce): Sink final_value when not
15816         eliminating a biv.
15817
15818 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
15819
15820         * config/sparc/freebsd.h: Fix mismatched spec {.
15821
15822 2002-02-07  Richard Henderson  <rth@redhat.com>
15823
15824         * cfgrtl.c: Include recog.h and insn-config.h.
15825         (keep_with_call_p): Fix general_operand invocation.
15826         * Makefile.in (cfgrtl.o): Update dependencies.
15827
15828 2002-02-07  Kazu Hirata  <kazu@hxi.com>
15829
15830         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
15831         comment.  Accept HImode only if TARGET_H8300.
15832
15833 2002-02-07  Eric Christopher  <echristo@redhat.com>
15834
15835         * config/mips/crtn.asm: Cleanup #ifdefs.
15836
15837 2002-02-07  Eric Christopher  <echristo@redhat.com>
15838
15839         * config/mips/crti.asm: Add changes for mips16. mips16 uses
15840         register 7 as RA instead of $31.
15841         * config/mips/crtn.asm: Ditto.
15842         * config/mips/mips.c (mips_move_2words): Add case for
15843         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
15844         (compute_frame_size): Fix typo.
15845         (save_restore_insns): Ditto.  Make documentation about using
15846         register $7 as return register more precise.
15847         (mips_expand_epilogue): Fix comment. Add code to work around not
15848         being able to add to the stack pointer directly.
15849         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
15850         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
15851         epilogue.
15852
15853 2002-02-07  Tom Rix  <trix@redhat.com>
15854
15855         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
15856         immediates in ldu and stdu DS opcode field.
15857         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
15858         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
15859         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
15860
15861 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
15862
15863         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
15864         offset for stack bias.
15865
15866 2002-02-07  H.J. Lu <hjl@gnu.org>
15867
15868         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
15869
15870 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
15871
15872         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
15873
15874 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
15875
15876         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
15877         * i386.c (x86_order_regs_for_local_alloc): New global function.
15878         * i386.h (REG_ALLOC_ORDER): CLeanup.
15879         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
15880
15881 2002-02-07  Richard Henderson  <rth@redhat.com>
15882
15883         PR optimization/2463
15884         * alias.c (find_base_value): Recall base values for fixed hard regs.
15885         * loop.c (loop_regs_update): Don't use single_set on non-insns.
15886
15887 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
15888
15889         * config/mips/mips.md (define_delay) [mips16]: Adjust required
15890         length.
15891
15892 2002-02-06  Richard Henderson  <rth@redhat.com>
15893
15894         PR c/5609
15895         * stmt.c (resolve_operand_name_1): Take more care with mixed
15896         named and unnamed operands.
15897
15898 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
15899             Jan Hubicka  <jh@suse.cz>
15900
15901         * loop.c (remove_constant_addition): Avoid clobbering a shared
15902         CONST expression.
15903
15904 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15905
15906         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
15907         * config/s390/t-linux64: New file.
15908         * config/s390/libgcc-glibc.ver: New file.
15909
15910 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15911
15912         * config/s390/linux64.h: Delete file.
15913         * config/s390/s390x.h: New file.
15914         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
15915         as target header file.
15916         * config/s390/linux.h (TARGET_VERSION): Define depending on
15917         DEFAULT_TARGET_64BIT.
15918         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
15919         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
15920         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
15921         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
15922         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
15923         (EXTRA_SPEC): New define.
15924         * config/s390/s390.h (TARGET_VERSION): Define depending on
15925         DEFAULT_TARGET_64BIT.
15926         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
15927
15928 2002-02-06  Jason Merrill  <jason@redhat.com>
15929
15930         * c-decl.c (finish_function): Warn about a non-void function with
15931         no return statement and no abnormal exit.
15932         (current_function_returns_abnormally): New variable.
15933         (start_function): Clear it.
15934         (struct c_language_function): Add returns_abnormally.
15935         (push_c_function_context): Save it.
15936         (pop_c_function_context): Restore it.
15937         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
15938         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
15939         an explicit return type.
15940         * c-tree.h: Declare current_function_returns_abnormally.
15941         (C_FUNCTION_IMPLICIT_INT): New macro.
15942         * c-typeck.c (build_function_call): Set it.
15943         (c_expand_return): Set current_function_returns_value even if the
15944         value is erroneous.
15945
15946 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15947
15948         PR c/5420:
15949         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
15950         unsafe for reevaluation.
15951
15952 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15953
15954         PR c/5482:
15955         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
15956         EXPR_STMT, but COMPOUND_STMT, recurse into it.
15957
15958 2002-02-06  Richard Henderson  <rth@redhat.com>
15959
15960         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
15961         be a general_operand.  Dest for function value must be a pseudo.
15962
15963 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
15964
15965         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
15966         as SYMBOL_REFs from the constant pool.
15967
15968 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
15969
15970         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
15971         passed by invisible reference.
15972
15973 2002-02-05  Richard Henderson  <rth@redhat.com>
15974
15975         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
15976
15977 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
15978
15979         Implement using "base addresses" in insn operands as default.
15980         * config/mmix/mmix.c (mmix_conditional_register_usage): if
15981         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
15982         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
15983         used to read the rtx value.
15984         (mmix_target_asm_function_epilogue): Fix spacing.
15985         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
15986         (mmix_legitimate_address): Ditto.
15987         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
15988         should be loaded with a GETA insn.  Don't allocate needless extra
15989         char for nul termination and fix misleading comment.
15990         (mmix_print_operand_address): Handle constants if
15991         TARGET_BASE_ADDRESSES.
15992         (mmix_output_register_setting): Use base addressing if
15993         TARGET_BASE_ADDRESSES and the number of insns is 3.
15994         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
15995         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
15996         to use R as constraint, add LDA to match s.
15997         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
15998         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
15999         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
16000         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
16001         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
16002         order with other fixed registers.
16003         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
16004         other parameter/call-clobbered registers.
16005         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
16006         -mbase-addresses, -mno-base-addresses.
16007         (MMIX Options): Ditto.
16008
16009 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16010
16011         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
16012
16013 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
16014
16015         * config/rs6000/altivec.h: Change elem to _S_elem.
16016
16017 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16018
16019         * config/netbsd.h (WCHAR_TYPE): Define.
16020         (WCHAR_TYPE_SIZE): Ditto.
16021         (WINT_TYPE): Ditto.
16022         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
16023         (WCHAR_UNSIGNED): Ditto.
16024         (WCHAR_TYPE_SIZE): Ditto.
16025         (WINT_TYPE): Ditto.
16026         * config/arm/netbsd.h: Likewise.
16027         * config/i386/netbsd-elf.h: Likewise.
16028         * config/i386/netbsd.h: Likewise.
16029         * config/m68k/netbsd-elf.h: Likewise.
16030         * config/m68k/netbsd.h: Likewise.
16031         * config/ns32k/netbsd.h: Likewise.
16032         * config/sparc/netbsd.h: Likewise.
16033         * config/vax/netbsd.: Likewise.
16034
16035 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
16036
16037         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
16038         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
16039         (TARGET_INITIALIZER): this.
16040         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
16041         (BITFIELD_NBYTES_LIMITED): Markup fix.
16042         * tree.h (default_ms_bitfield_layout_p): Declare.
16043         (record_layout_info): Added prev_field.
16044         * tree.c (default_ms_bitfield_layout_p): New fn.
16045         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
16046         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
16047         * stor-layout.c: Include target.h.
16048         (start_record_layout): Initialize prev_field.
16049         (place_field): Handle MS bit-field layout, and disregard
16050         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
16051         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
16052         * Makefile.in (stor-layout.o): Adjust dependencies.
16053
16054 2002-02-05  Jason Merrill  <jason@redhat.com>
16055
16056         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
16057
16058 2002-02-05  Andreas Jaeger  <aj@suse.de>
16059
16060         * crtstuff.c: Fix comments.
16061
16062 2002-02-05  Richard Henderson  <rth@redhat.com>
16063
16064         PR fortran/3393
16065         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
16066         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
16067
16068         PR fortran/3392
16069         * config/mips/mips.c (function_arg): Handle TImode.
16070         (function_arg_advance): Likewise.
16071
16072 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16073
16074         * config/rs6000/altivec.h (vec_step_help): Rename to
16075         __vec_step_help.
16076
16077 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16078
16079         * config/rs6000/altivec.h: Fix typos.
16080
16081 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16082
16083         * config/arm/netbsd.h: Correct a comment.
16084
16085 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16086
16087         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
16088         building void typed builtins.
16089
16090         * config/rs6000/altivec.h (vec_ld*): Fix typos.
16091         (vec_step): Implement for C++.
16092
16093 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16094
16095         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
16096
16097 2002-02-04  Richard Henderson  <rth@redhat.com>
16098
16099         * combine.c (nonzero_bits): Re-introduce special case for
16100         sp/fp/ap wrt REGNO_POINTER_ALIGN.
16101
16102 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16103
16104         * doc/extend.texi: Warn about unsupported usage of altivec
16105         builtins.
16106
16107         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
16108         (altivec_predicate_*): New.
16109
16110         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
16111         Add C++ version of vec_*() functions.
16112
16113         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
16114         (bdesc_2arg): Remove altivec predicates.
16115         (altivec_expand_builtin): Handle predicates.
16116         (altivec_init_builtins): Handle predicates.
16117         (altivec_expand_predicate_builtin): New.
16118
16119 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16120
16121         * pa.c (DO_FRAME_NOTES): Move forward.
16122         (store_reg): Revise handling of frame notes.
16123         (load_reg): Likewise.
16124         (set_reg_plus_d): Likewise.
16125         (hppa_expand_prologue): Likewise.
16126         (hppa_expand_epilogue): Likewise.
16127
16128 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16129
16130         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
16131
16132 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16133
16134         PR c/4475, c++/3780:
16135         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
16136         * c-common.h (SWITCH_TYPE): Define.
16137         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
16138         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
16139         Rename spareness variable to sparseness.
16140         (expand_end_case_type): Renamed from expand_end_case, use orig_type
16141         if non-NULL instead of TREE_TYPE (orig_index).
16142         * tree.h (expand_end_case_type): Renamed from expand_end_case.
16143         (expand_end_case): Define using expand_end_case_type.
16144         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
16145         to expand_end_case_type.
16146         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
16147
16148 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16149
16150         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
16151         (BIGGEST_ALIGNMENT): Change to 128.
16152
16153 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16154
16155         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
16156
16157 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16158
16159         * pa.md (call_internal_reg_64bit): Remove unused variable.
16160
16161 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
16162
16163         * config/arm/arm.h (machine_function): Add uses_anonymous_args
16164         field.
16165         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
16166         * config/arm/arm.c (current_function_anonymous_args): Delete,
16167         replace uses with cfun->machine->uses_anonymous_args.
16168         (arm_reorg): Do not reset uses_anonymous_args.
16169
16170         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
16171         any geenral register.
16172
16173 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
16174
16175         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
16176         the entry block.
16177
16178 2002-02-04  Richard Henderson  <rth@redhat.com>
16179
16180         * combine.c (force_to_mode): Remove STACK_BIAS code.
16181         (nonzero_bits): Likewise.  Replace sp/fp special case with
16182         REGNO_POINTER_ALIGN.
16183
16184         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
16185         (HARD_FRAME_POINTER_REGNUM): New.
16186         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
16187         (FIXED_REGS, CALL_USED_REGS): Update.
16188         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
16189         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
16190         (HARD_REGNO_NREGS): Update for SFP.
16191         (STACK_POINTER_OFFSET): Include bias here ...
16192         (FIRST_PARM_OFFSET): ... not here.
16193         (STACK_BIAS): Remove.
16194         (INIT_EXPANDERS): New.
16195         (STARTING_FRAME_OFFSET): Do not include bias.
16196         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
16197         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
16198         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
16199         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
16200         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
16201         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
16202         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
16203         (MUST_SAVE_REGISTER): Likewise.
16204         (sparc_flat_function_prologue): Likewise.
16205         (sparc_flat_function_epilogue): Likewise.
16206         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
16207         (sparc_init_modes): SFP is GENERAL_REGS.
16208         (sparc_builtin_saveregs): SFP does not have bias applied.
16209
16210 2002-02-04  Richard Henderson  <rth@redhat.com>
16211
16212         * config/alpha/alpha.c (current_function_is_thunk): Don't check
16213         current_function_is_thunk.
16214         (alpha_sa_mask): Distinguish between current_function_is_thunk
16215         called from ASM_OUTPUT_MI_THUNK and not.
16216         (alpha_does_function_need_gp): Thunks always need gp.
16217         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
16218         (alpha_output_mi_thunk_osf): New.
16219         * config/alpha/alpha-protos.h: Update.
16220         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
16221
16222 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
16223
16224         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
16225         function types, not when they're taken away.
16226
16227 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
16228
16229         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
16230         CODE_LABEL and jump table when replacing a table jump with a
16231         simple jump.
16232
16233 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16234
16235         * config/s390/s390-protos.h (legitimize_la_operand,
16236         s390_secondary_input_reload_class, s390_plus_operand,
16237         s390_expand_plus_operand): Add prototypes.
16238
16239         config/s390/s390.c (s390_secondary_input_reload_class,
16240         s390_plus_operand, s390_expand_plus_operand): New functions.
16241
16242         (struct s390_address): New member 'pointer'.
16243         (s390_decompose_address): Compute it.
16244         (legitimate_la_operand_p): Use it.
16245         (legitimize_la_operand): New function.
16246         (movti, movdi, movdf splitters): Call it.
16247
16248         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
16249         (PREDICATE_CODES): Add s390_plus_operand.
16250
16251         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
16252         (la_ccclobber): Allow GENERAL_REGS as output operand.
16253
16254         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
16255         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
16256         (*la_64, *la_31, reload_indi, reload_insi): ... these.
16257
16258 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16259
16260         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
16261         register names for regular asm () construct.
16262
16263 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16264
16265         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
16266         registers.
16267
16268 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16269
16270         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
16271         pat for recog.
16272
16273 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
16274
16275         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
16276         constant pool to be identical by string address and index.
16277
16278 2002-02-04  Anthony Green  <green@redhat.com>
16279
16280         * output.h (SECTION_OVERRIDE): Define.
16281         * varasm.c (named_section): Obey SECTION_OVERRIDE.
16282
16283 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16284
16285         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
16286         by existing arm*-*-netbsd* (a.out) target.
16287         (ns32k-*-netbsdelf*): Likewise.
16288         (sparc-*-netbsdelf*): Likewise.
16289         (vax-*-netbsdelf*): Likewise.
16290
16291 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
16292
16293         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
16294         headers and libobjc headers.
16295
16296 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
16297
16298         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
16299         (_mingw.h): Remove duplicate include.
16300
16301 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16302
16303         * config.gcc: Set cpu_type to m68k for 68010, as well.
16304         (m68010-*-netbsdelf*): New...
16305         (m68k*-*-netbsdelf*): ...targets.
16306         * config/m68k/netbsd-elf.h: New file.
16307
16308 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16309
16310         * config/h8300/h8300.c (hand_list): Move inside function_arg.
16311
16312 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16313
16314         * config/h8300/h8300.c (h8_push_ops): Move inside
16315         h8300_init_once.
16316         (h8_pop_ops): Likewise.
16317         (h8_move_ops): Likewise.
16318
16319 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16320
16321         * config/h8300/h8300.c (os_task): Make it static.
16322         (monitor): Likewise.
16323         (pragma_saveall): Likewise.
16324
16325 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
16326
16327         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
16328         constant is a valid sign-extension for Pmode.
16329
16330 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16331
16332         * config/h8300/h8300.c: Fix formatting.
16333
16334 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16335
16336         * config/h8300/h8300.md: Fix formatting.
16337
16338 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16339
16340         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
16341         predicates of operands[1].  Split the patterns for each
16342         processor variant.
16343
16344 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16345
16346         * config/h8300/h8300.md (xor patterns): Tighten the predicates
16347         of operands[1] to register_operand.
16348
16349 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
16350
16351         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
16352         * cpphash.c (_cpp_init_hashtable): Similarly.
16353         * cppinit.c (cpp_create_reader): Default the signed_char flag.
16354         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
16355         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
16356         (cpp_handle_option): Handle the new options.
16357         * cpplex.c (cpp_interpret_charconst): Use new flag.
16358         * cpplib.h (struct cpp_options): New member signed_char.
16359         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
16360         (cpp_options): Handle -fsigned-char and -funsigned-char.
16361         (static_specs): Remove signed_char_spec.
16362         (do_spec1): Don't handle %c.
16363         * system.h: Poison SIGNED_CHAR_SPEC.
16364         * tradcif.y (yylex): Use flag_signed_char.
16365         * tradcpp.h (flag_signed_char): New.
16366         * tradcpp.c (flag_signed_char): New.
16367         (main): Handle new command-line options.
16368         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
16369 config:
16370         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
16371         * avr/avr.h: Remove old comments.
16372         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
16373         (CC1_SPEC): Pass -fsigned-char if -mic*.
16374         (SIGNED_CHAR_SPEC): Remove.
16375 doc:
16376         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
16377
16378 2002-02-01  Eric Christopher  <echristo@redhat.com>
16379
16380         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
16381         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
16382         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
16383         (ASM_OUTPUT_REG_POP): Ditto.
16384
16385 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
16386
16387         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
16388         patch.
16389
16390 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
16391
16392         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
16393
16394 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
16395
16396         PR c/5304:
16397         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
16398         unconditionally.
16399
16400 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
16401
16402         * cfganal.c: Include tm_p.h.
16403         (keep_with_call_p): Fix the test that determines if a register holds
16404         the return value of a call.
16405
16406 2002-02-01  DJ Delorie  <dj@redhat.com>
16407
16408         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
16409         we are given conflicting registers, switch to the other one we
16410         had allocated for us.
16411         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
16412         as TImode so we know when the "other" register is available.
16413
16414 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
16415
16416         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
16417         sparc/sparc_bi.h.
16418
16419 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
16420
16421         * cfganal.c (keep_with_call_p): New function.
16422         (flow_call_edges_add): Prevent splitting a block between a call and
16423         a single-set instruction that should be kept in the same block.
16424
16425 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16426
16427         * doc/install.texi (avr): Update outdated URL.
16428
16429 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
16430
16431         * config/stormy16/stormy16.md (pushqi): New.
16432         (popqi): New.
16433         (pushhi): New.
16434         (pophi): New.
16435         (movhi): Remove stack operands.
16436         (movqi): Likewise.
16437         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
16438         nonimmediate_nonstack_operand.
16439         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
16440         New.
16441         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
16442         New.
16443
16444 2002-01-31  Jason Merrill  <jason@redhat.com>
16445
16446         * Makefile.in (c-parse.c): Handle .output file.
16447         * objc/Make-lang.in (objc-parse.c): Likewise.
16448
16449 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
16450
16451         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
16452         the -me[lb] option is given.  Don't output the default flag
16453         twice.
16454
16455 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
16456
16457         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
16458         the primary source file; this has not been done yet.
16459         * c-decl.c (c_expand_body): Reset input_filename from
16460         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
16461
16462 2002-01-31  Kazu Hirata  <kazu@hxi.com>
16463
16464         * rtlanal.c (subreg_regno_offset): Do not use
16465         SUBREG_REGNO_OFFSET.
16466         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
16467         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
16468
16469 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
16470
16471         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
16472         version rather than GNATS version in --version output.
16473
16474 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
16475
16476         * ifcvt.c (noce_process_if_block): Make a copy of the destination
16477         when copying back from a temporary.
16478
16479 2002-01-30  Richard Henderson  <rth@redhat.com>
16480
16481         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
16482         and new_dest are the same.
16483
16484 2002-01-30  Richard Henderson  <rth@redhat.com>
16485
16486         PR opt/5076
16487         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
16488         * rtl.c (note_insn_name): Update.
16489         * emit-rtl.c (remove_unnecessary_notes): Kill it.
16490         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
16491         to perform loop rotation.
16492         (expand_exit_loop_top_cond): New.
16493         * tree.h (expand_exit_loop_top_cond): Declare it.
16494         * c-semantics.c (genrtl_while_stmt): Use it.
16495         (genrtl_for_stmt): Likewise.
16496
16497 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
16498
16499         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
16500         arguments to 64-bit boundaries on 64-bit ABIs.
16501
16502 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
16503
16504         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
16505
16506 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
16507
16508         * c-decl.c (grokdeclarator): Handle type being a typedef for an
16509         invalid type.
16510
16511 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
16512
16513         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
16514         * config/sparc/sparc_bi.h: Remove file.
16515         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
16516
16517 2002-01-30  Richard Henderson  <rth@redhat.com>
16518
16519         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
16520
16521 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
16522
16523         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
16524
16525 2002-01-30  Jason Merrill  <jason@redhat.com>
16526
16527         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
16528         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
16529         (reg_save): Use DW_CFA_offset_extended_sf instead.
16530
16531         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
16532
16533 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16534
16535         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
16536         in cselib_lookup.
16537
16538 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
16539
16540         * rs6000.md ("*call_value_local32"): Remove constraints.
16541         ("*call_value_local64"): Same.
16542         ("*call_value_indirect_nonlocal_aix32"): Same.
16543         ("*call_value_nonlocal_aix32"): Same.
16544         ("*call_value_indirect_nonlocal_aix64"): Same.
16545         ("*call_value_nonlocal_aix64"): Same.
16546         ("*call_value_nonlocal_sysv"): Same.
16547
16548 2002-01-29  Richard Henderson  <rth@redhat.com>
16549
16550         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
16551
16552 2002-01-29  Richard Henderson  <rth@redhat.com>
16553
16554         * expr.c (force_operand): Ignore flag_pic for detecting pic
16555         address loads.
16556         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
16557         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
16558         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
16559         instead of open-coded loop.
16560         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
16561         be fixed when in use.
16562
16563 2002-01-29  Richard Henderson  <rth@redhat.com>
16564
16565         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
16566         * sched-rgn.c (propagate_deps): Update them.
16567         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
16568         clobbers list when either gets too long.
16569
16570 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16571
16572         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
16573         and INDEX_REGS the same as GENERAL_REGS.
16574         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
16575
16576 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16577
16578         * tree.c (build_nonstandard_integer_type): Correct prototype.
16579
16580 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
16581
16582         * config/s390/s390.md (movstrsico, movstrdix_64,
16583         movstrsix_31): Remove, replace by ...
16584         (movstrdi_short, movstrsi_short, movstrdi_long,
16585         movstrsi_long): ... these.  New.
16586         (movstrdi, movstrsi): Adapt.
16587
16588         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
16589         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
16590         Remove unnecessary CC clobber.
16591         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
16592         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
16593
16594         (divmoddi4): Don't partially initialize TImode register.
16595
16596 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
16597
16598         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
16599
16600 2002-01-29  Richard Henderson  <rth@redhat.com>
16601
16602         * flow.c (print_rtl_and_abort): Remove.
16603         (print_rtl_and_abort_fcn): Remove.
16604         (verify_local_live_at_start): Use dump_bb instead.
16605         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
16606         (verify_wide_reg_1): Return 2 on mode test failure.
16607
16608 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16609
16610         PR c/3325, c/3326, c/2511, c/3347
16611         * c-decl.c (enum_decl_context): Remove BITFIELD.
16612         (grokdeclarator): Take bitfield width as an input.
16613         Ensure bitfields are given the correct type.  Perform
16614         bitfield width validation with build_bitfield_integer_type
16615         rather than waiting for finish_struct.
16616         (grok_typename, grok_typename_in_parm_context, start_decl,
16617         push_parmdecl, grokfield, start_function): Update calls to
16618         grokdeclarator.
16619         (build_bitfield_integer_type): New function.
16620         (finish_struct): Move bitfield validation to grokdeclarator
16621         and build_bitfield_integer_type.
16622         * tree.c (build_nonstandard_integer_type): New function.
16623         * tree.h (build_nonstandard_integer_type): New prototype.
16624 objc:
16625         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
16626
16627 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16628
16629         PR other/1502:
16630         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
16631         don't ignore unrecognized -W* options.
16632         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
16633         * cpplib.h (cpp_handle_option): Adjust prototype.
16634         * c-decl.c (c_decode_options): Pass 0 as last argument to
16635         cpp_handle_option.
16636
16637         PR c/2896:
16638         * gcc.c (cpp_unique_options): Split from cpp_options.
16639         (cpp_options): Source cpp_unique_options.
16640         (default_compilers): Use cpp_unique_options instead of cpp_options
16641         when used together with cc1_options.
16642         (static_specs): Add cpp_unique_options.
16643         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
16644         when used together with cc1_options.
16645
16646 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16647
16648         * config/h8300/h8300-protos.h: Update the prototype of
16649         output_a_shift.
16650         * config/h8300/h8300.c (output_a_shift): Remove an unused
16651         argument 'insn'.  Remove redundant code.
16652         * config/h8300/h8300.md: Adust to the new prototype of
16653         output_a_shift.
16654
16655 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16656
16657         * config/h8300/h8300-protos.h: Update the prototypes of
16658         emit_a_rotate and expand_a_rotate.
16659         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
16660         first argument to 'enum rtx_code'.
16661         (expand_a_rotate): Likewise.
16662
16663 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16664
16665         * config/h8300/h8300-protos.h: Update the prototype of
16666         output_simode_bld.
16667         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
16668         'log2'.
16669         * config/h8300/h8300.md: Adjust to the new prototype.
16670
16671 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16672
16673         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
16674         redundant code.
16675
16676 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16677
16678         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
16679         is a fixed register before returning pic_offset_table_rtx.
16680         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
16681         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
16682
16683 2002-01-28  Jason Merrill  <jason@redhat.com>
16684
16685         * dwarf2.h: Sync with src version.
16686
16687 2002-01-28  Paul Koning  <pkoning@equallogic.com>
16688
16689         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
16690         BT_FN_VOID_PTR_VAR.
16691         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
16692         * doc/extend.texi (__builtin_prefetch): Update documentation:
16693         first argument is now const void ptr.
16694
16695 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16696
16697         * config/h8300/h8300-protos.h: Remove an unused prototype.
16698
16699 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
16700
16701         * toplev.c (lang_independent_init): Round up identifier size.
16702
16703 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16704
16705         * config.gcc: Revert previous change.
16706
16707 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
16708
16709         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
16710
16711 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16712
16713         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
16714         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
16715         other non-elf netbsd config frags.
16716         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
16717         collect2 will does that.
16718         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
16719         shared-lib frobbing will work.
16720
16721 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16722
16723         * config/h8300/h8300.h: Fix formatting.
16724         * config/h8300/h8300.md: Likewise.
16725
16726 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
16727
16728         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
16729         the old, removed AAA_standards fix.
16730         * fixinc/fixincl.x: Rebuilt.
16731
16732 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
16733
16734         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
16735         atexit call in crtbegin, hooked in after call to frame_dummy;
16736         register EH before registering __fini__start.
16737
16738 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
16739
16740         * config/rs6000/altivec.h: Remove spurious semicolons.
16741
16742 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16743
16744         * config/h8300/h8300.md: Replace dead bit extraction patterns
16745         with ones that work.
16746
16747 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16748
16749         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
16750         if not STRICT_ALIGNMENT.
16751         * rtl.h (MEM_ALIGN): Likewise.
16752
16753 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16754
16755         * doc/invoke.texi (-fdump-translation-unit): Revert this
16756         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16757
16758 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16759
16760         * config/h8300/h8300.md (define_constants): New.
16761         (anonymous patterns) Use defined constants appropriately.
16762
16763 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16764
16765         * config/h8300/h8300.c (function_arg): Remove redundant code.
16766
16767 2002-01-26  Richard Henderson  <rth@redhat.com>
16768
16769         * sched-deps.c (reg_pending_uses_head): New.
16770         (reg_pending_barrier): Rename from reg_pending_sets_all.
16771         (find_insn_list): Don't mark inline.
16772         (find_insn_mem_list): Remove.
16773         (add_dependence_list, add_dependence_list_and_free): New.
16774         (flush_pending_lists): Replace only_write param with separate
16775         for_read and for_write parameters.  Update all callers.  Use
16776         add_dependence_list_and_free.
16777         (sched_analyze_1): Do not add reg dependencies here; just set
16778         the pending bits.  Use add_dependence_list.
16779         (sched_analyze_2): Likewise.
16780         (sched_analyze_insn): Replace schedule_barrier_found with
16781         reg_pending_barrier.  Add all dependencies for pending reg
16782         uses, sets, and clobbers.
16783         (sched_analyze): Don't add reg dependencies for calls, just
16784         set pending bits.  Use regs_invalidated_by_call.  Treat
16785         sched_before_next_call as a normal list, not a fake insn.
16786         (init_deps): No funny init for sched_before_next_call.
16787         (free_deps): Free pending mems lists.  Don't zero reg_last.
16788         (init_deps_global): Init reg_pending_uses.
16789         (finish_deps_global): Free it.
16790         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
16791         (find_insn_mem_list): Remove.
16792         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
16793         (propagate_deps): Use them.  Zero temp mem lists.
16794
16795 2002-01-26  Richard Henderson  <rth@redhat.com>
16796
16797         * Makefile.in (CRTSTUFF_CFLAGS): New.
16798         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
16799         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
16800         crtstuff.c instead of alpha assembly version.
16801         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
16802         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
16803         not FORCE_{INIT,FINI}_SECTION_ALIGN.
16804         (__do_global_dtors_aux): Mark used.
16805         (frame_dummy, __do_global_ctors_aux): Mark used.
16806         (fini_dummy, init_dummy): Remove.
16807
16808         * config/alpha/crtbegin.asm: Remove file.
16809         * config/alpha/crtend.asm: Remove file.
16810         * config/alpha/t-crtbe: Remove file.
16811         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
16812         (LINK_EH_SPEC): New.
16813
16814         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
16815         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
16816         calling constructors.
16817         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
16818
16819         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
16820         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
16821         CRT_END_INIT_DUMMY hack.
16822         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
16823         FORCE_{INIT,FINI}_SECTION_ALIGN.
16824
16825         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
16826         FORCE_{INIT,FINI}_SECTION_ALIGN.
16827
16828         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
16829         invocation sequence.
16830         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
16831
16832         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
16833         (FORCE_CODE_SECTION_ALIGN): New.
16834
16835 2002-01-26  Richard Henderson  <rth@redhat.com>
16836
16837         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
16838
16839 2002-01-26  Richard Henderson  <rth@redhat.com>
16840
16841         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
16842         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
16843
16844 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16845
16846         * config/h8300/h8300.md: Remove bit extraction patterns that
16847         cannot be triggered.
16848         Restrict each bit extraction pattern to a variant on which the
16849         pattern is tested.
16850
16851 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
16852
16853         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
16854
16855 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16856
16857         * config/h8300/h8300.md: Remove bit test patterns that cannot
16858         be triggered.
16859         Restrict each bit test pattern to a variant on which the
16860         pattern is tested.
16861
16862 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16863
16864         * builtins.c (expand_builtin_strncat): Remove redundant check for
16865         INTEGER_CST.
16866
16867 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16868
16869         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
16870         default setting.
16871         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
16872         existing setting.
16873
16874 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16875
16876         * dbxout.c (dbxout_init): Use assemble_name rather than just
16877         stripping off the first character.
16878         (dbxout_source_file): Likewise.
16879
16880 2002-01-25  DJ Delorie  <dj@redhat.com>
16881
16882         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
16883         using rtx_equal_p, not by comparing pointers.
16884
16885 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
16886
16887         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
16888         for PIC_OFFSET_TABLE_REGNUM.
16889         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
16890
16891 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16892
16893         * config.gcc (x86_64-*-freebsd*): New target.
16894         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
16895         value.
16896         (i[34567]86-*-freebsd*): Don't include svr4.h.
16897         * config/i386/freebsd64.h: New file.
16898
16899 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
16900
16901         * config/alpha/x-vms (version): Make static.
16902
16903         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
16904         in previous checkin.
16905
16906         * Makefile.in (install-headers-cp): New target.
16907         * config.gcc (alpha-dec-*vms*): Install headers with
16908         install-headers-cp
16909
16910 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
16911
16912         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
16913         avoid it's copies.
16914
16915 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16916
16917         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
16918         of compare_tree_int.
16919         (expand_builtin_strncat): Likewise.
16920         * c-decl.c (finish_struct): Use tree_low_cst.
16921         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
16922         * tree.c (compare_tree_int): Likewise.
16923
16924 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
16925
16926         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
16927         adjustments even if they are implemented by more than two insns.
16928
16929 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
16930
16931         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
16932         * df.h (struct ref): Kill B.
16933         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
16934
16935         * basic-block.h (PROP_EQUAL_NOTES): New flag.
16936         * flow.c (propagate_one_insn): Use it.
16937         (mark_used_regs): Handle NIL.
16938
16939 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16940
16941         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
16942         to help folding.
16943
16944 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
16945
16946         * rs6000.md (prefetch): Make address V4SI mode so that the address
16947         is restricted to legitimate form for instruction.
16948
16949 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
16950
16951         * doc/install.texi (xtensa-*-elf): New target.
16952         (xtensa-*-linux*): New target.
16953         * doc/contrib.texi: Add myself.
16954
16955 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
16956
16957         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
16958         purpose register to hold an SImode (or smaller) value.
16959
16960 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
16961
16962         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
16963         registry only.
16964         * crtstuff.c: Likewise.
16965
16966 2002-01-25  Kazu Hirata  <kazu@hxi.com>
16967
16968         * config/h8300/h8300.md (negation patterns): Tighten
16969         predicates to register_operand.
16970
16971 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
16972
16973         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
16974         mode, not Pmode.
16975
16976         * builtins.c (expand_builtin_prefetch): Same.
16977
16978 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16979
16980         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
16981         modes.
16982
16983 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16984
16985         * config/h8300/h8300.c (print_operand): Remove support for
16986         operand character 'A'.
16987         * config/h8300/h8300.md (three anonymous patterns): Replace
16988         operand character 'A' with either 'T' or 'S'.
16989
16990 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16991
16992         * config/h8300/h8300.c (print_operand): Remove support for
16993         operand character 'U'.
16994
16995 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
16996
16997         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
16998
16999 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
17000
17001         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
17002         values to be assigned to the stack pointer.
17003
17004 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17005
17006         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
17007         to const_double needs to be done right for big-endian systems.
17008
17009 2002-01-24  Jason Merrill  <jason@redhat.com>
17010
17011         PR c++/2432
17012         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
17013         to can_throw_internal.
17014
17015 2002-01-23  Richard Henderson  <rth@redhat.com>
17016
17017         * fold-const.c (fold): Change UINT_MAX test to check vs precision
17018         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
17019
17020 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17021
17022         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
17023         (symGOT2reg): Use them, then set as GOT value as unchanging.
17024         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
17025         as a temporary, if possible.
17026         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
17027         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
17028
17029 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17030
17031         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
17032         accept to accept 0x80 as operands[2].
17033
17034 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17035
17036         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
17037
17038 2002-01-23  Richard Henderson  <rth@redhat.com>
17039
17040         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
17041
17042 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
17043
17044         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
17045         (parmlist_or_identifiers_1): Verify that only a parmlist follows
17046         an attribute.
17047
17048 2002-01-23  Richard Henderson  <rth@redhat.com>
17049
17050         * expr.c (move_by_pieces_1): Extend size before negation.
17051
17052         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
17053         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
17054         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
17055         * config/m68k/t-m68kelf: Likewise.
17056
17057 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
17058
17059         * config/xtensa/elf.h: New file.
17060         * config/xtensa/lib1funcs.asm: New file.
17061         * config/xtensa/lib2funcs.S: New file.
17062         * config/xtensa/linux.h: New file.
17063         * config/xtensa/t-xtensa: New file.
17064         * config/xtensa/xtensa-config.h: New file.
17065         * config/xtensa/xtensa-protos.h: New file.
17066         * config/xtensa/xtensa.c: New file.
17067         * config/xtensa/xtensa.h: New file.
17068         * config/xtensa/xtensa.md: New file.
17069         * config.gcc (xtensa-*-elf*): New target.
17070         (xtensa-*-linux*): New target.
17071         * cse.c (canon_hash): Compare rtx pointers instead of register
17072         numbers.  This is required for the Xtensa port.
17073         * integrate.c (copy_insn_list): Handle case where the static
17074         chain is in memory and the memory address has to be copied to
17075         a register.
17076         * doc/invoke.texi (Option Summary): Add Xtensa options.
17077         (Xtensa Options): New node.
17078         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
17079
17080 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17081
17082         * diagnostic.c (internal_error): Do ICE suppression only
17083         when ENABLE_CHECKING is not defined.
17084
17085         * c-typeck.c (require_complete_type): Return error_mark_node
17086         if type is error_mark_node.
17087
17088 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
17089
17090         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
17091         -Os and issue a warning.
17092
17093 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17094
17095         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
17096         current (lack of) need for host configuration by hand.
17097
17098         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
17099         references.  Documentation of some target macros moved from
17100         hostconfig.texi to tm.texi.
17101
17102 2002-01-23  Will Cohen  <wcohen@redhat.com>
17103
17104         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
17105         defined.
17106
17107 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17108
17109         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
17110         operand[3].
17111
17112 2002-01-23  Jason Merrill  <jason@redhat.com>
17113
17114         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
17115
17116         * function.c (assign_parms): Don't put args of inline functions
17117         into registers when not optimizing.
17118
17119 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
17120
17121         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
17122         (prologue_use): New pattern.
17123         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
17124         preference to gen_rtx_USE.
17125         (thumb_expand_prologue): Use gen_prologue_use in preference to
17126         gen_rtx_USE.
17127         (thumb_expand_epilogue): Use gen_prologue_use in preference to
17128         gen_rtx_USE.
17129
17130 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
17131
17132         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
17133
17134 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17135
17136         PR c/3504
17137         * doc/extend.texi: Correct documentation of __alignof__.
17138
17139 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
17140
17141         * params.h: Rename arguments of DEFPARAM so that it will be
17142         recognized as a translation keyword.
17143
17144 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17145
17146         * extend.texi: Document altivec functions.
17147         Fix N-bit adjectives in X86 builtin documentation.
17148
17149 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17150
17151         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
17152         auto_inc_dec values.
17153
17154 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
17155
17156         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
17157         after backslash.
17158         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
17159
17160 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17161
17162         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
17163
17164 2002-01-22  Richard Henderson  <rth@redhat.com>
17165
17166         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
17167         copy_insn not copy_rtx.
17168
17169 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
17170
17171         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
17172         "nonzero" as that might add "1" bits.  Ensure "constop" is
17173         properly sign extened.
17174         (force_to_mode): Tweak for sign extended constop.
17175
17176 2002-01-22  Richard Henderson  <rth@redhat.com>
17177
17178         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
17179         for_each_rtx instead of assuming we're already looking at the MEM.
17180         (split_small_symbolic_mem_operand): Likewise.
17181         * config/alpha/alpha.h (PREDICATE_CODES): Update.
17182         * config/alpha/alpha.md (small symbolic memory splitters): Update.
17183
17184 2002-01-22  Richard Henderson  <rth@redhat.com>
17185
17186         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
17187         sequence number for the literal.
17188         (divmoddi_internal_er): Likewise.
17189
17190 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17191
17192         PR java/4972
17193         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
17194         in LIBICONV variable.
17195         * configure: Regenerated.
17196
17197 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
17198
17199         * dependence.c (build_def_use): Remove array_idx.
17200
17201         * dwarfout.c (last_filename): Remove.
17202         (output_compile_unit_die): Remove last_filename.
17203
17204 2002-01-22  Roger Sayle  <roger@eyesopen.com>
17205             Richard Henderson  <rth@redhat.com>
17206
17207         PR opt/3640
17208         * fold-const.c (fold): Optimize unsigned comparisons against
17209         UINT_MAX (and similar unsigned constants).
17210
17211 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
17212
17213         * Makefile.in (loop.o): Depend on OPTABS_H.
17214         * loop.c (emit_prefetch_instructions): Check the prefetch operand
17215         against the predicate.
17216
17217         PR target/5379
17218         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
17219         for the address operand.
17220
17221 2002-01-22  Richard Henderson  <rth@redhat.com>
17222
17223         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
17224
17225 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17226
17227         PR other/5450
17228         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
17229         preprocessor flags.
17230
17231 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
17232
17233         * config.gcc (x86_64-*-netbsd*): New target.
17234         * config/i386/netbsd64.h: New file.
17235
17236 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17237
17238         * regrename.c (kill_value): Fix typo.
17239
17240 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17241
17242         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
17243
17244         * config/rs6000/rs6000.h: Same.
17245
17246         * function.c (instantiate_virtual_regs): Remove
17247         STARTING_FRAME_PHASE.
17248         (assign_stack_local_1): Same.
17249         Calculate frame phase.
17250
17251 2002-01-22  Nick Clifton  <nickc@redhat.com>
17252
17253         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
17254         variable declaration to outer scope in order to simplify
17255         future extensions.
17256         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
17257         arm_hard_regno_mode_ok.
17258         * config/arm/arm-protos.h: Add a prototype for
17259         arm_hard_regno_mode_ok.
17260         * config/arm/arm.c (soft_df_operand): Remove now redundant
17261         check for DImode values using IP_REGNUM.
17262         (nonimmediate_soft_df_operand): Remove now redundant check for
17263         DImode values using IP_REGNUM.
17264         (arm_hard_regno_mode_ok): New function. New check: make sure
17265         that DImode values are not stored in IP_REGNUM.
17266
17267         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
17268         note with a USE.
17269         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
17270
17271 2002-01-22  Jason Merrill  <jason@redhat.com>
17272
17273         * c-semantics.c (genrtl_compound_stmt): Only check nesting
17274         consistency if this COMPOUND_STMT is scoped.
17275
17276 2002-01-22  Kazu Hirata  <kazu@hxi.com>
17277
17278         * predict.c: Fix formatting.
17279         * print-tree.c: Likewise.
17280         * protoize.c: Likewise.
17281         * real.h: Likewise.
17282         * rtl.h: Likewise.
17283         * sbitmap.h: Likewise.
17284         * scan.c: Likewise.
17285         * sched-deps.c: Likewise.
17286         * sched-vis.c: Likewise.
17287         * sdbout.c: Likewise.
17288         * sibcall.c: Likewise.
17289         * ssa.c: Likewise.
17290         * ssa-ccp.c: Likewise.
17291         * ssa-dce.c: Likewise.
17292         * stmt.c: Likewise.
17293         * stor-layout.c: Likewise.
17294         * system.h: Likewise.
17295
17296 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17297
17298         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
17299         if fits in bounds of base type.
17300
17301         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
17302         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
17303         (add_bound_info, default): If can't find a context, make a
17304         SAVE_EXPR.
17305         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
17306
17307 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
17308
17309         * c-typeck.c (parser_build_binary_op): If result from
17310         build_binary_op is ERROR_MARK just return error_mark_node without
17311         further processing.
17312
17313 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
17314
17315         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
17316         Split a.out-specific bits into...
17317         * config/netbsd-aout.h: ...this.
17318         * config/netbsd-elf.h: New file.
17319         * config/alpha/netbsd-elf.h: Remove.
17320         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
17321         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
17322         (STARTFILE_SPEC): Remove redundant definition.
17323         (ENDFILE_SPEC): Likewise.
17324         (LINK_SPEC): Likewise.
17325         (CPP_SPEC): Likewise.
17326         (ASM_SPEC): Likewise.
17327         (LIB_SPEC): Likewise.
17328         (SWITCH_TAKES_ARG): Likewise.
17329         (TARGET_MEM_FUNCTIONS): Likewise.
17330         (CPP_PREDEFINES): Redefine.
17331         (ASM_FINAL_SPEC): Remove redefinition.
17332         (ASM_COMMENT_START): Redefine.
17333         (FUNCTION_PROFILER): Define.
17334         (TARGET_VERSION): Redefine.
17335         Comment and formatting cleanup.
17336         * config/i386/netbsd.h: Include <netbsd-aout.h>.
17337         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
17338         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
17339         big- or little-endian.
17340         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
17341         * config.gcc (*-*-netbsd*): Add definitions common to all
17342         NetBSD configs.
17343         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
17344         gnu_ld definitions.  Add netbsd-elf.h to and remove
17345         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
17346         tmake_file, and don't lose previous tmake_file contents.
17347         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
17348         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
17349         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
17350         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
17351         (mipsel-*-netbsd*): Rename this to...
17352         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
17353         mips/little.h to tm_file for mips*el-*.
17354         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
17355         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
17356         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
17357
17358 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17359
17360         * pa-protos.h (reg_before_reload_operand): New function prototype.
17361         * pa.c (reg_before_reload_operand): New function implementation.
17362         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
17363         contraints to "*m".
17364
17365 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17366
17367         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
17368
17369 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17370
17371         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
17372         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
17373         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
17374         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
17375         (ENDFILE_SPEC): Undefine.
17376         (STARTFILE_SPEC): Redefine for PA.
17377
17378 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17379
17380         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
17381
17382 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
17383
17384         * config.gcc: Add entries to supported PowerPC --with-cpu
17385         types.
17386
17387 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
17388
17389         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
17390         true for 64-bit mode only SSE registers in 32-bit mode.
17391
17392 2002-01-21  Kazu Hirata  <kazu@hxi.com>
17393
17394         * unwind-dw2.c: Fix formatting.
17395         * unwind-dw2-fde.c: Likewise.
17396         * unwind-dw2-fde.h: Likewise.
17397         * unwind-pe.h: Likewise.
17398         * varasm.c: Likewise.
17399         * varray.h: Likewise.
17400
17401 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
17402
17403         Remove workaround for register stack overwrite bug in mmix.
17404         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
17405         support for TARGET_REG_STACK_FILL_BUG.
17406         * config/mmix/mmix.h: Remove member has_call_without_parameters.
17407         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
17408         Delete.
17409         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
17410         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
17411         -mno-reg-stack-fill-bug-workaround.
17412         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
17413         machine member has_call_without_parameters.
17414         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
17415         -mreg-stack-fill-bug-workaround and
17416         -mno-reg-stack-fill-bug-workaround.
17417         (MMIX Options): Ditto.
17418
17419 2002-01-21  Kazu Hirata  <kazu@hxi.com>
17420
17421         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
17422         as appropriate.
17423         Remove redundant code.
17424
17425 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
17426
17427         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
17428         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
17429         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
17430         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
17431         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
17432         out target macro definitions and non-target-specific comments
17433         mostly taken from old versions of the manual.
17434
17435 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17436
17437         * config/h8300/h8300.h: Fix comment formatting.
17438         * config/ia64/aix.h: Likewise.
17439         * config/ia64/ia64-protos.h: Likewise.
17440         * config/ia64/ia64.c: Likewise.
17441         * config/ia64/ia64.h: Likewise.
17442         * config/ia64/ia64intrin.h: Likewise.
17443         * config/ia64/linux.h: Likewise.
17444         * config/ia64/unwind-aix.c: Likewise.
17445         * config/ia64/unwind-ia64.c: Likewise.
17446
17447 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17448
17449         * config/h8300/h8300.c: Revise comments about shift code.
17450
17451 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17452
17453         * config/h8300/h8300.c (function_arg): Update a comment.
17454
17455 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17456
17457         * config/h8300/h8300.md: Update the comments at the beginning
17458         of the file.
17459
17460 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17461
17462         * config/i370/i370.c: Fix comment formatting.
17463         * config/i370/i370.h: Likewise.
17464         * config/i370/i370.md: Likewise.
17465         * config/i370/linux.h: Likewise.
17466
17467 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17468
17469         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
17470
17471         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
17472         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
17473         in incomplete case.
17474
17475 2002-01-20  Graham Stott  <grahams@redhat.com>
17476
17477         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
17478
17479 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17480
17481         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
17482
17483 2002-01-19  Tom Rix  <trix@redhat.com>
17484
17485         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
17486
17487 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
17488
17489         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
17490
17491         * function.c (assign_stack_local_1): Adjust x_frame_offset with
17492         STARTING_FRAME_PHASE.
17493         (STARTING_FRAME_PHASE): New.
17494         (instantiate_virtual_regs): Check saneness of
17495         STARTING_FRAME_PHASE.
17496
17497         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
17498
17499 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
17500
17501         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
17502
17503 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17504
17505         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
17506         be used for bootstrapping GCC 3.0.
17507
17508 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17509
17510         * config/h8300/h8300.md: Fix an insn length.
17511
17512 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17513
17514         * bitmap.h: Fix comment formatting.
17515         * combine.c: Likewise.
17516         * cppfiles.c: Likewise.
17517         * c-pragma.h: Likewise.
17518         * c-typeck.c: Likewise.
17519         * df.c: Likewise.
17520         * dwarf2out.c: Likewise.
17521         * function.c: Likewise.
17522         * gcc.c: Likewise.
17523         * genattrtab.c: Likewise.
17524         * gthr-win32.h: Likewise.
17525         * haifa-sched.c: Likewise.
17526         * predict.c: Likewise.
17527         * rtlanal.c: Likewise.
17528         * rtl.h: Likewise.
17529         * unwind-dw2-fde.h: Likewise.
17530         * unwind-pe.h: Likewise.
17531         * vmsdbgout.c: Likewise.
17532
17533 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17534
17535         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
17536         if type_required and passed decl.
17537
17538 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
17539
17540         * config.gcc (cpu_type): Include altivec.h in powerpc
17541         extra_headers.
17542         Same for darwin.
17543
17544         * config/rs6000/altivec.h: New.
17545
17546 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
17547
17548         * doc/install.texi (*-ibm-aix*): Update assembler and exception
17549         handling information.
17550         * doc/trouble.texi (Interoperation): Add libstdc++ information
17551         for AIX.
17552         (Misunderstandings): Add template instantiation and static template
17553         member information for AIX.
17554
17555 2002-01-17  Jason Merrill  <jason@redhat.com>
17556
17557         * dbxout.c (dbxout_type): Support const and volatile.
17558
17559         * except.c (add_partial_entry): Remove backwards compatibility code.
17560         (end_protect_partials): Likewise.
17561
17562 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
17563
17564         * config/ia64/ia64.md (prologue_use): New.
17565         * config/ia64/ia64.c (ia64_expand_prologue): Use
17566         gen_prologue_use instead of gen_rtx_USE.
17567         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
17568         as CODE_FOR_pred_rel_mutex.
17569         (ia64_sched_reorder2): Likewise.
17570
17571 2002-01-16  Eric Christopher  <echristo@redhat.com>
17572
17573         * config/mips/r3900.h: Reformat.
17574         (SUBTARGET_CPP_SIZE_SPEC): Remove.
17575         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
17576         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
17577         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
17578         * config/mips/t-elf: Remove mips3 multilib.
17579
17580 2002-01-16  H.J. Lu <hjl@gnu.org>
17581
17582         * config/mips/linux.h: Include "mips/abi64.h".
17583
17584 2002-01-16  H.J. Lu <hjl@gnu.org>
17585
17586         * config/mips/t-linux: New.
17587
17588         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
17589
17590         * config/mips/linux.h: Don't include "gofast.h".
17591         (INIT_SUBTARGET_OPTABS): Removed.
17592
17593 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17594
17595         * config/h8300/h8300-protos.h: Replace emit_a_shift with
17596         output_a_shift.
17597         * config/h8300/h8300.c: Likewise.
17598         * config/h8300/h8300.md: Likewise.
17599
17600 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17601
17602         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
17603         spaces after an opcode name.
17604         (pushqi1_h8300hs): Likewise.
17605         (pushhi1_h8300hs): Likewise.
17606
17607 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17608
17609         * doc/extend.texi: Replace "option" with "attribute"
17610         appropriately.
17611
17612 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17613
17614         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
17615         (and:DI () (const_int -8)).
17616         (split_small_symbolic_mem_operand): Split
17617         (mem (and:DI () (const_int -8)).
17618
17619 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17620
17621         PR target/5309:
17622         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
17623         same way as TYPE_IMUL.
17624         (ultrasparc_sched_reorder): Likewise.
17625         * config/sparc/sparc.md (type): Add comment to update
17626         ultrasparc_sched_reorder when making changes.
17627
17628 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17629
17630         * doc/invoke.texi: Change the dump file name of block
17631         reordering pass from 28.bbro to 29.bbro.
17632         Mention -dk option.
17633
17634 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
17635
17636         * i386.md (minsf splitter): Fix pasto.
17637
17638 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17639
17640         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
17641         to frame pointer initialisation instruction.
17642         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
17643         initialisation instruction.
17644         (soft_df_operand): Do not accept the IP register.
17645         (nonimmediate_soft_df_operand): Do not accept the IP register.
17646
17647 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17648
17649         PR target/5357:
17650         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
17651         MASK_V8 being both set.
17652
17653 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
17654
17655         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
17656         insn for GOT register; add REG_MAYBE_DEAD notes instead.
17657         config/s390/s390.md (call, call_value): Add GOT register to
17658         CALL_INSN_FUNCTION_USAGE where needed.
17659         (call_exp, call_value_exp): New.
17660
17661 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17662
17663         * config/arm/arm.c: General formatting tidy up.
17664
17665 2002-01-16  Graham Stott  <grahams@redhat.com>
17666
17667         * calls.c (try_to_integrate): Use "(size_t)" intermediate
17668         cast and when casting an integer literal to "rtx" pointer.
17669         (expand_call): Likewise.
17670         * flow.c (try_pre_increment): Likewise.
17671         (find_use_as_address): Likewise.
17672         * integrate.c (expand_iline_function): Likewise.
17673         * regmove.c (try_auto_increment): Likewise.
17674
17675 2002-01-16  Graham Stott  <grahams@redhat.com>
17676
17677         * sched-rgn.c (passed): Use sbitmap_free.
17678         (header): Likewise.
17679         (inner): Likewise.
17680         (in_queue): Likewise.
17681         (in_stack): Likewise.
17682
17683 2002-01-15  Eric Christopher  <echristo@redhat.com>
17684
17685         * flow.c (propagate_one_insn): Change to use fatal_insn.
17686
17687 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17688
17689         * expmed.c (extract_fixed_bit_field): Remove unused code.
17690         * system.h: Poison SLOW_ZERO_EXTEND.
17691         * doc/tm.texi: Remove.
17692         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
17693         * config/arm/arm.h: Likewise.
17694         * config/avr/avr.h: Likewise.
17695         * config/clipper/clipper.h: Likewise.
17696         * config/convex/convex.h: Likewise.
17697         * config/d30v/d30v.h: Likewise.
17698         * config/dsp16xx/dsp16xx.h: Likewise.
17699         * config/elxsi/elxsi.h: Likewise.
17700         * config/fr30/fr30.h: Likewise.
17701         * config/h8300/h8300.h: Likewise.
17702         * config/i370/i370.h: Likewise.
17703         * config/i386/i386.h: Likewise.
17704         * config/m68k/m68k.h: Likewise.
17705         * config/mips/mips.h: Likewise.
17706         * config/ns32k/ns32k.h: Likewise.
17707         * config/pdp11/pdp11.h: Likewise.
17708         * config/pj/pj.h: Likewise.
17709         * config/s390/s390.h: Likewise.
17710         * config/sh/sh.h: Likewise.
17711         * config/stormy16/stormy16.h: Likewise.
17712         * config/v850/v850.h: Likewise.
17713         * config/vax/vax.h: Likewise.
17714         * config/we32k/we32k.h: Likewise.
17715
17716 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17717
17718         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
17719         (altivec_lvsl): Change constraint to b.
17720         (altivec_lvsr): Same.
17721         (altivec_lvebx): Same.
17722         (altivec_lvehx): Same.
17723         (altivec_lvewx): Same.
17724         (altivec_lvxl): Same.
17725         (altivec_lvx): Same.
17726         (altivec_stvx): Add parallel.
17727         (altivec_stvxl): Same.
17728         (altivec_stvehx): Same.
17729         (altivec_stvebx): Same.
17730         (altivec_stvebx): Same.
17731
17732 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17733
17734         * config.gcc: Change altivec.h to altivec-defs.h.
17735
17736         * config/rs6000/altivec.h: Delete.
17737
17738         * config/rs6000/altivec-defs.h: Add.
17739
17740 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17741
17742         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
17743         and UMOD modes.
17744
17745         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
17746         less than or equal to eight bytes.
17747
17748         * vax.md (andsi3): Remove constraints and change SET destination
17749         operand type to nonimmediate_operand.
17750         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
17751         when it is a CONST_INT.
17752
17753 2002-01-15  Jason Merrill  <jason@redhat.com>
17754
17755         * c-common.def (FILE_STMT): New code.
17756         * c-common.c (statement_code_p): It's a statement.
17757         * c-common.h (stmt_tree_s): Add x_last_filename.
17758         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
17759         (last_expr_filename): New macro.
17760         * c-semantics.c (begin_stmt_tree): Initialize it.
17761         (add_stmt): If the filename changed, also insert a
17762         FILE_STMT.
17763         (expand_stmt): Handle seeing one.
17764
17765 2002-01-15  Eric Christopher  <echristo@redhat.com>
17766
17767         * flow.c (propagate_one_insn): Add error message and print out
17768         insn for debugging.
17769
17770 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17771
17772         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
17773         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
17774         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
17775         TRAMPOLINE_ALIGNMENT.
17776         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
17777         to be in bits.
17778         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
17779         PCC_BITFIELD_TYPE_MATTERS.
17780         * config/interix.h (STDC_VALUE): Remove.  Use
17781         STDC_0_IN_SYSTEM_HEADERS.
17782         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
17783         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
17784         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
17785
17786 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17787
17788         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
17789         not work on this platform currently.
17790
17791 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17792
17793         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
17794         readonly_warning in _().
17795
17796 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
17797
17798         * gcc.c (delete_if_ordinary): Backout previous change.
17799
17800 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17801
17802         * config/h8300/h8300.c (print_operand): Remove support for
17803         unused operand characters.
17804
17805         * read-rtl.c: Fix formatting.
17806         * real.c: Likewise.
17807         * recog.c: Likewise.
17808         * regclass.c: Likewise.
17809         * regmove.c: Likewise.
17810         * reg-stack.c: Likewise.
17811         * reload1.c: Likewise.
17812         * rtlanal.c: Likewise.
17813
17814 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17815
17816         * config/i386/i386.c: Fix formatting.
17817
17818 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
17819
17820         * c-typeck.c (process_init_element): Don't save_expr
17821         COMPOUND_LITERAL_EXPR if just its initializer will be used.
17822
17823 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
17824
17825         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
17826         emit optional traceback table if optimize_size or TARGET_ELF.
17827         * config/rs6000/rs6000.md (prefetch): New.
17828
17829 2002-01-15  Andreas Jaeger  <aj@suse.de>
17830
17831         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
17832
17833 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17834
17835         * mips-tfile.c: Fix formatting.
17836
17837 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17838
17839         * unroll.c (final_reg_note_copy): Fix previous commit.
17840
17841 2002-01-14  Kazu Hirata  <kazu@hxi.com>
17842
17843         * config/h8300/h8300-protos.h: Remove the prototype for
17844         eq_operator.
17845         * config/h8300/h8300.c (eq_operator): Remove.
17846
17847 2002-01-14  Richard Henderson  <rth@redhat.com>
17848
17849         * config/i386/i386.md (prefetch): Tidy.
17850         (prefetch_3dnow): Fix locality operand.
17851
17852 2002-01-14  Richard Henderson  <rth@redhat.com>
17853
17854         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
17855         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
17856
17857 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
17858
17859         * reload1.c (reload_combine): Pass reg_sum replacement through
17860         copy_rtx in loop performing multiple changes.
17861
17862 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
17863
17864         * except.c (remove_unreachable_regions): New.
17865         (free_eh_status): Clear exception_handler_labels.
17866         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
17867         (find_exception_handler_labels): Don't add the same label more than
17868         once.
17869         (remove_exception_handler_label): Don't die if
17870         find_exception_handler_labels hasn't been called for the current
17871         function yet.
17872
17873 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
17874
17875         * toplev.c (rest_of_compilation): Rebuild jump labels after
17876         gcse.
17877
17878 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
17879
17880         * doc/extend.texi: Move documentation of X86 built-in functions
17881         here.
17882         * doc/invoke.texi: From here.
17883         * doc/sourcebuild.texi: Document location of documentation for
17884         machine built-in functions.
17885
17886 2002-01-13  Christopher Faylor  <cgf@redhat.com>
17887
17888         * cppfiles.c (TEST_THRESHOLD): New macro.
17889         (SHOULD_MMAP): Ditto.
17890         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
17891         be used.
17892
17893 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
17894
17895         * unroll.c (final_reg_note_copy): Properly handle
17896         REG_LABEL
17897         (unroll_loops): Fix LOOP_CONDITION heuristics.
17898
17899 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
17900
17901         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
17902         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
17903
17904 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
17905
17906         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
17907         threaded loop.
17908
17909 2002-01-14  Tom Rix  <trix@redhat.com>
17910
17911         * config/rs6000/rs6000.md: Fix typo with sradi.
17912
17913 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
17914
17915         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
17916         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
17917         (clrstrdi, clrstrsi): Adapt callers.
17918
17919         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
17920
17921         (movti splitter): Never use register 0 as base register.
17922
17923 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17924
17925         * combine.c (simplify_shift_const): Always generate new rtx
17926         for shift expression instead of reusing given expression.
17927
17928 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17929
17930         * config/alpha/alpha.c (alpha_expand_mov): Don't call
17931         alpha_legitimize_address unless mode is Pmode.
17932
17933 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
17934
17935         * doc/md.texi (Modifiers): Document the '*' constraint for the
17936         user.
17937
17938         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
17939         * doc/extend.texi (Function Attributes): 'interrupt' is valid
17940         for xstormy16 too.
17941
17942 2002-01-13  Richard Henderson  <rth@redhat.com>
17943
17944         * reload.c (find_reloads): Use a hard reg destination as reload reg
17945         for an input reload of the source.
17946
17947 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17948
17949         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
17950         more generic.
17951
17952 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
17953
17954         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17955         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17956
17957         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
17958
17959 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17960
17961         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
17962
17963 2002-01-12  Tom Rix  <trix@redhat.com>
17964
17965         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
17966         TARGET_POWERPC64.
17967
17968 2002-01-12  Richard Henderson  <rth@redhat.com>
17969
17970         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
17971
17972         * doc/invoke.texi: Update Alpha options.
17973
17974         * doc/invoke.texi: Update i386 built-in function lists.
17975
17976 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17977
17978         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
17979         referencing outside.
17980
17981 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17982
17983         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
17984         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
17985         offsets, and change line folding.
17986         * optabs.c (expand_binop): Remove warnings.
17987         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
17988
17989 2002-01-12  Graham Stott <grahams@redhat.com>
17990
17991         * attribs.c (handle_deprecated_attribute): constify WHAT.
17992         * diagnostic.c (warn_deprecated_use): Add braces, fixes
17993         dangling else warning and constify WHAT.
17994         * except.h (struct function, struct inline_remap): Move
17995         struct tag forward defs before all prototypes.
17996         (duplicate_eh_regions): Whitespace.
17997
17998 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
17999
18000         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
18001         MODE_BASE_REG_CLASS.
18002         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
18003
18004 2002-01-12  Richard Henderson  <rth@redhat.com>
18005
18006         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
18007         (ix86_expand_vector_move): New.
18008         (bdesc_2arg): Remove andps, andnps, orps, xorps.
18009         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
18010         Remove old prefetch builtins.  Special case the logicals removed above.
18011         (ix86_expand_builtin): Likewise.
18012         (safe_vector_operand): Use V4SFmode, not TImode.
18013         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
18014         (ix86_expand_timode_binop_builtin): New.
18015         * config/i386/i386-protos.h: Update.
18016         * config/i386/i386.h (enum ix86_builtins): Update.
18017         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
18018         Use ix86_expand_vector_move in vector move expanders.
18019         (movti_internal, movti_rex64): Add xorps alternative.
18020         (sse_clrv4sf): Rename and adjust from sse_clrti.
18021         (prefetch): Don't work so hard.
18022         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
18023         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
18024         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
18025
18026 2002-01-11  Richard Henderson  <rth@redhat.com>
18027
18028         * config/i386/mmintrin.h: New file.
18029         * config/i386/xmmintrin.h: New file.
18030         * config.gcc (i?86-*-*): Add extra_headers.
18031         * simplify-rtx.c (simplify_unary_operation): Handle saturating
18032         truncation codes.
18033         (simplify_binary_operation): Handle saturating arithmetic codes.
18034         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
18035         not the lowpart subreg.
18036         (ix86_expand_builtin): Return a TImode dummy register instead of 0
18037         on error.
18038         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
18039
18040 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18041
18042         * conflict.c (conflict_graph_compute): Free regsets when finished.
18043         * ssa.c (compute_coalesced_reg_partition): Likewise.
18044
18045 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18046
18047         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
18048         every where we allocate a register.
18049
18050 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18051
18052         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
18053         * lcm.c (compute_earliest, compute_farthest): Likewise.
18054
18055 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18056
18057         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
18058
18059 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18060
18061         * doc/rtl.texi (Insns): Fix 2 typos.
18062
18063 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
18064
18065         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
18066         options.  Use @table @gcctabopt for MMIX options.  Add index
18067         entries for MMIX options.  Start new paragraph with first
18068         heading of the machine-dependent options.
18069
18070 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18071
18072         PR other/5299
18073         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
18074         * combine.c (force_to_mode): Same.
18075         * reload1.c (clear_reload_reg_in_use): Same.
18076
18077 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
18078
18079         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
18080         and 'subtargets'.
18081
18082 2002-01-11  Andreas Jaeger  <aj@suse.de>,
18083             Brad Lucier <lucier@math.purdue.edu>
18084
18085         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
18086         mcpu.
18087
18088 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
18089
18090         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
18091         Protect with IN_LIBGCC.
18092         (LINK_EH_SPEC): Add required trailing space.
18093
18094 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18095
18096         * c-tree.h: Move function declarations so that they are listed
18097         under the filename which contains them.
18098         (check_identifier, finish_decl_top_level,
18099         lookup_name_current_level_global, shadow_record_fields): Remove.
18100
18101 2002-01-11  Andreas Jaeger  <aj@suse.de>
18102
18103         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
18104         march.
18105
18106 2002-01-10  Richard Henderson  <rth@redhat.com>
18107
18108         * config/alpha/alpha.c (print_operand): Add 'J'.
18109         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
18110         new operand with the sequence number for the lituse.  When splitting
18111         the insns, use gen_movdi_er_high_g and generate a sequence number.
18112         (gen_movdi_er_high_g): Print the sequence number if non-zero.
18113
18114 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
18115
18116         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
18117         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
18118         stvxl.
18119         (altivec_expand_builtin): Same.
18120         (altivec_expand_stv_builtin): New.
18121
18122         * config/rs6000/rs6000.h (rs6000_builtins): Same.
18123
18124         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
18125         ("altivec_lvehx"): New.
18126         ("altivec_lvewx"): New.
18127         ("altivec_lvxl"): New.
18128         ("altivec_lvx"): New.
18129         ("altivec_stvx"): New.
18130         ("altivec_stvebx"): New.
18131         ("altivec_stvehx"): New.
18132         ("altivec_stvewx"): New.
18133         ("altivec_stvxl"): New.
18134
18135 2002-01-10  Richard Henderson  <rth@redhat.com>
18136
18137         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
18138         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
18139         care not to delete instructions twice.
18140
18141 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18142
18143         * toplev.c: Don't declare environ (it's not used anywhere).
18144         * configure.in: Don't check for declaration of environ.
18145         * config/i386/xm-mingw32.h: Don't #define environ.
18146         * config.in, configure: Regenerate.
18147
18148 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18149
18150         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
18151         * configure: Regenerate.
18152
18153         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
18154         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
18155         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
18156         alpha/xm-vms.h.
18157         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
18158         LIMITS_H_TEST here, not in m68k/x-next.
18159         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
18160         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
18161
18162         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
18163         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
18164         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
18165
18166         * config/i386/x-djgpp: Renamed i386/t-djgpp.
18167         * config/m88k/x-dolph: Renamed m88k/t-dolph.
18168         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
18169         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
18170         replacement of quadlib.asm with quadlib.c.
18171
18172         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
18173         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
18174         config/rs6000/xm-beos.h: Delete file.
18175
18176         * config.gcc: Update to match above changes.
18177
18178 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18179
18180         * config/h8300/h8300.h: Fix comment typos.
18181         * config/h8300/h8300.md: Likewise.
18182         * config/h8300/lib1funcs.asm: Likewise.
18183
18184 2002-01-10  Dale Johannesen  <dalej@apple.com>
18185
18186         PR optimization/5269
18187         * unroll.c (precondition_loop_p): Make *increment be the correct
18188         sign when n_iterations known, to avoid confusing caller.
18189
18190 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18191
18192         * doc/extend.texi (deprecated): Fix a typo.
18193
18194 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
18195
18196         * basic-block.h (update_br_prob_note): Declare.
18197         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
18198         (try_forward_edges): Care negative frequencies and update note.
18199         (outgoing_edges_match): Tweek conditional merging heuristics.
18200         (try_crossjump_to_edge): use update_br_prob_note.
18201         * cfglayout.c (fixup_reorder_chain): Likewise.
18202         * cfrtl.c (update_br_prob_note): New.
18203         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
18204
18205         * i386.c (ix86_decompose_address): Return -1 if address contains
18206         shift.
18207         (legitimate_address_p): Require ix86_decompose_address to return 1.
18208
18209         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
18210         (cprop_insn): Likewise.
18211
18212 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18213
18214         * toplev.c: Fix formatting.
18215         * tree.c: Likewise.
18216         * tree-dump.c: Likewise.
18217         * unroll.c: Likewise.
18218         * unwind-dw2.c: Likewise.
18219         * unwind-dw2-fde.c: Likewise.
18220         * unwind-dw2-fde-glibc.c: Likewise.
18221         * unwind-sjlj.c: Likewise.
18222
18223 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18224
18225         * doc/invoke.texi: Document PDP-11 options.
18226
18227 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18228
18229         * config/h8300/h8300.h: Fix formatting.
18230
18231 2002-01-10  Ira Ruben   <ira@apple.com>
18232
18233         Add __attribute__ ((deprecated)).
18234         * extend.texi: Document __attribute__ ((deprecated)).
18235         * invoke.texi: Document -Wno-deprecated-declarations.
18236         * testsuite/g++.dg/other/deprecated.C: New C++ test.
18237         * testsuite/gcc.dg/deprecated.c: New C test.
18238         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
18239         (c_common_attribute_table): Add "deprecated" entry.
18240         (handle_deprecated_attribute): New function.
18241         * c-decl.c (deprecated_states): New enum.
18242         deprecated_state: State of "deprecated" handling.
18243         (start_decl): Set deprecated_state based on attributes.
18244         (grokdeclarator): Test for deprecated uses, propagate attribute.
18245         * c-typeck.c (build_component_ref): Test for deprecated fields.
18246         (build_external_ref): Test for deprecated primaries.
18247         * diagnostic.c (warn_deprecated_use) New function to issue
18248         warnings about __attribute__ ((depricated)) references.
18249         * flags.h (warn_deprecated_decl): Extern declared for
18250         -W[no-]deprecated-declarations option.
18251         * print-tree.c (print_node): Show deprecated flag status.
18252         * toplev.c (warn_deprecated_decl): Defined.
18253         (W_options): Added "deprecated-declaration".
18254         * toplev.h (warn_deprecated_use): Extern declared.
18255         * tree.h (struct tree_common): Define deprecated_flag.
18256         (TREE_DEPRECATED): New macro to access flag.
18257         * cp/call.c (build_call): Test for deprecated calls.
18258         * cp/class.c (add_implicitly_declared_members): Set global
18259         flag to tell grokdeclarator to not issue deprecated warnings.
18260         * cp/cp-tree.h: Add extern for adding_implicit_members.
18261         * cp/decl.c (deprecated_states): New enum.
18262         (start_decl): Set deprecated_state based on attributes.
18263         (grokdeclarator): Test for deprecated uses, propagate attribute.
18264         * cp/lex.c (do_identifier): Test for deprecated primaries.
18265         * cp/typeck.c (build_component_ref): Test for deprecated fields.
18266
18267 2002-01-10  Ira Ruben   <ira@apple.com>
18268
18269         Fix to assign attributes to inline member functions.
18270         * cp/decl.c (start_method): Handle attrlist.
18271
18272 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18273
18274         * combine.c (expand_field_assignment): Use subreg_lsb().
18275
18276 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
18277
18278         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
18279         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
18280         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
18281         Recurse for any operand of AND as long as constant is non-zero.
18282
18283 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18284
18285         * config/h8300/h8300.md: Remove constraints from expanders.
18286
18287 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18288
18289         * varasm.c: Fix formatting.
18290         * varray.c: Likewise.
18291         * vmsdbgout.c: Likewise.
18292         * xcoffout.c: Likewise.
18293
18294 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
18295
18296         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
18297         update edge probabilities to match.
18298
18299 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18300
18301         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
18302         dependencies.
18303         * doc/languages.texi, doc/sourcebuild.texi: New files.
18304         * doc/configfiles.texi: Make a subsubsection.  Update.
18305         * doc/configterms.texi: Add @node.  Remove warning that this isn't
18306         instructions for building GCC.
18307         * doc/makefile.texi: Make a subsection.
18308         * doc/gccint.texi: Update.
18309
18310 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
18311
18312         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
18313
18314 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18315
18316         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
18317
18318 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
18319
18320         * optabs.c (expand_fix): Look for wider integer modes first.
18321
18322         * i386.md (mov?f): Avoid the fake const double trick for medium
18323         memory model.
18324         (min?f*/max?f*): Prohibit memory operands for i387 variant.
18325         (fop_df_4): Disable for SSE compilation.
18326
18327 2002-01-10  Graham Stott  <grahams@redhat.com>
18328
18329         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
18330         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
18331
18332 2002-01-10  Richard Henderson  <rth@redhat.com>
18333
18334         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
18335
18336 2002-01-10  Richard Henderson  <rth@redhat.com>
18337
18338         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
18339         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
18340
18341 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18342
18343         * combine.c (can_combine_p): Fix a comment typo.
18344
18345 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
18346
18347         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
18348         empty list correctly.  Change loop index $t to $f for
18349         consistency with rest of Makefile.
18350
18351 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
18352
18353         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
18354         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
18355
18356         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
18357         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
18358         (altivec_init_builtins): Same.
18359         (altivec_expand_unop_builtin): Return NULL_RTX on error.
18360         (altivec_expand_binop_builtin): Same.
18361         (altivec_expand_ternop_builtin): Same.
18362         (bdesc_dst): New.
18363
18364         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
18365         ("altivec_vctuxs"): Fix typo.
18366         ("altivec_vnmsubfp"): Same.
18367         ("altivec_dssall"): New.
18368         ("altivec_mfvscr"): New.
18369         ("altivec_dss"): New.
18370         ("altivec_lvsl"): New.
18371         ("altivec_lvsr"): New.
18372         ("altivec_dstt"): New.
18373         ("altivec_dstst"): New.
18374         ("altivec_dststt"): New.
18375         ("altivec_dst"): New.
18376
18377         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
18378         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
18379
18380 2002-01-09  Richard Henderson  <rth@redhat.com>
18381
18382         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
18383
18384 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
18385
18386         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
18387         function.
18388         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
18389         prototype.
18390         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
18391
18392 2002-01-09  Kazu Hirata  <kazu@hxi.com>
18393
18394         * read-rtl.c: Fix formatting.
18395         * real.c: Likewise.
18396         * regclass.c: Likewise.
18397         * regrename.c: Likewise.
18398         * reg-stack.c: Likewise.
18399         * reload1.c: Likewise.
18400         * reload.c: Likewise.
18401         * rtl.c: Likewise.
18402
18403 2002-01-09  Kazu Hirata  <kazu@hxi.com>
18404
18405         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
18406         to extract items in the expr_list chain.
18407
18408 2002-01-09  Richard Henderson  <rth@redhat.com>
18409
18410         * config/vax/vax.c (vax_rtx_cost): Never abort.
18411
18412         * config/vax/vax.h (REAL_ARITHMETIC): Define.
18413
18414 2002-01-09  Jan Hubicka  <jh@suse.cz>
18415
18416         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
18417
18418 2002-01-09  Richard Henderson  <rth@redhat.com>
18419
18420         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
18421         Unify code from various alternatives.
18422
18423 2002-01-09  Richard Henderson  <rth@redhat.com>
18424
18425         * regrename.c (copy_value): Ignore the copy if the source register
18426         is present in the value chain with a narrower mode.
18427
18428 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
18429
18430         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
18431         for the c4x target. Also improve layout.
18432
18433 2002-01-09  Richard Henderson  <rth@redhat.com>
18434
18435         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
18436         * config/m32r/m32r.md (and ior xor splitters): Swap operands
18437         to match insn patterns.
18438
18439 2002-01-09  Richard Henderson  <rth@redhat.com>
18440
18441         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
18442         (copyprop_hardreg_forward_1): Likewise.
18443
18444 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18445
18446         * pa.md (decrement_and_branch_until_zero): Change predicate for
18447         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
18448
18449 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
18450
18451         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
18452         gets undefined. For Darwin.
18453
18454 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18455
18456         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
18457
18458 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18459
18460         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
18461
18462 2002-01-08  Richard Henderson  <rth@redhat.com>
18463
18464         * regrename.c (copy_value): Ignore overlapping copies.
18465
18466 2002-01-08  Richard Henderson  <rth@redhat.com>
18467
18468         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
18469         as needed to avoid shared structure.
18470
18471 2002-01-08  Kazu Hirata  <kazu@hxi.com>
18472
18473         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
18474         H8/300H and H8/S.
18475
18476 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18477
18478         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
18479         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
18480         documentation of obsolete macros.
18481         * system.h: Poison these macros.
18482         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
18483         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
18484         config/c4x/c4x.h, config/clipper/clipper.h,
18485         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
18486         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
18487         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
18488         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
18489         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
18490         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
18491         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
18492         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
18493         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
18494         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
18495         config/sparc/sparc.h, config/stormy16/stormy16.h,
18496         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
18497         definitions and commented out definitions of obsolete macros.
18498         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
18499         of MAX_INT_TYPE_SIZE.
18500
18501 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18502
18503         * config/s390/s390.c (s390_preferred_reload_class): Never
18504         return ADDR_REGS if it isn't a subset of the given class.
18505         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
18506         FP_REGS, but all superclasses as well.
18507
18508         * config/s390/s390.c (s390_function_profiler): Fix thinko.
18509
18510         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
18511         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
18512         must not be a const_int.
18513
18514 2002-01-08  Richard Henderson  <rth@redhat.com>
18515
18516         * Makefile.in (toplev.o): Depend on options.h.
18517         (gcc.o): Depend on specs.h.
18518
18519 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
18520
18521         * expr.c (store_expr): Convert VOIDmode constants back to target's
18522         mode.
18523
18524 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18525
18526         * doc/invoke.texi: Markup gcc as @command.  Refer to
18527         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
18528         of http://gcc.gnu.org/thanks.html.
18529
18530 2002-01-08  Dale Johannesen  <dalej@apple.com>
18531
18532         * config/rs6000/rs6000.md: Add missing int register
18533         target case to movdf_low.
18534
18535 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
18536
18537         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
18538         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
18539         (cppinit.o): Depend on except.h.
18540         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
18541         s-specs): New rules.
18542
18543         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
18544         Don't create specs.h/options.h/gencheck.h here.  Remove
18545         unnecessary variable settings from last argument of AC_OUTPUT.
18546         * config.in, configure: Regenerate.
18547         * intl.c: Hardcode package name as "gcc".
18548
18549         * cppinit.c: Include except.h.
18550         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
18551         appropriate.
18552         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
18553         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
18554         (!)USING_SJLJ_EXCEPTIONS.
18555         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
18556
18557 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18558
18559         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
18560         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
18561         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
18562         documentation of obsolete macros.
18563         * system.h: Poison these macros.
18564         * config/d30v/d30v.h, config/ns32k/encore.h,
18565         config/stormy16/stormy16.h: Remove definitions and commented out
18566         definitions of obsolete macros.
18567
18568 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
18569
18570         * objc/objc-act.c (handle_class_ref): Mark the declaration of
18571         %sobjc_class_ref_%s as used - to prevent unwanted compiler
18572         warnings.
18573
18574 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18575
18576         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
18577         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
18578         to insn adjusting stack/frame pointer.
18579         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
18580         accept operands that cause the insn to be non-splittable.
18581
18582 2002-01-08  Graham Stott  <grahams@redhat.com>
18583
18584         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
18585         (C_TYPE_FIELDS_VOLATILE): Likewise.
18586         (C_TYPE_BEING_DEFINED): Likewise.
18587         (C_IS_RESERVED_WORD): Likewise.
18588         (C_TYPE_VARIABLE_SIZE): Likewise.
18589         (C_DECL_VARIABLE_SIZE): Likewise.
18590         (C_MISSING_PROTOTYPE_WARNED): Likewise.
18591         (C_SET_EXP_ORIGINAL_CODE): Likewise.
18592         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
18593         parenthesis.
18594         (C_DECL_ANTICIPATED): Likewise.
18595         (c_build_type_variant): Add parenthesis.
18596
18597 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18598
18599         * gcc.c (option_map): Remove --version.
18600         (process_command): Handle -fversion following the GNU Coding
18601         Standards.  Partially addresses PR other/704.
18602
18603 2002-01-08  Graham Stott  <grahams@redhat.com>
18604
18605         * combine.c (combine_instructions): Fix typo.
18606
18607 2002-01-08  Graham Stott  <grahams@redhat.com>
18608
18609         * debug.h: Use "tree" and "rtx" throughout.
18610
18611         * debug.c: Likewise.
18612
18613 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
18614
18615         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
18616         constant pool, use the pool's version of the symbol instead.
18617
18618 2002-01-07  Richard Henderson  <rth@redhat.com>
18619
18620         * regrename.c (find_oldest_value_reg): Ignore the value chain if
18621         the original register was copied in a mode with a fewer number of
18622         hard registers than the desired mode.
18623         (copyprop_hardreg_forward_1): Likewise.
18624         (debug_value_data): Fix loop test.
18625         * toplev.c (parse_options_and_default_flags): Reenable
18626         -fcprop-registers at -O1.
18627
18628 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18629
18630         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
18631         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
18632
18633         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
18634         predicates.
18635
18636         * config/rs6000/rs6000.md: Add altivec predicate patterns.
18637
18638 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18639
18640         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
18641         (pa_output_function_prologue): Output local label at the beginning of
18642         the prologue when profiling.
18643         (hppa_profile_hook): Use the local label rather than the function label.
18644         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
18645
18646 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18647
18648         * config/rs6000/rs6000.c (print_operand): Remove extra space.
18649         (altivec_expand_unop_builtin): Fix thinko.
18650         (altivec_expand_binop_builtin): Same.
18651         (altivec_expand_ternop_builtin): Same.
18652         (altivec_expand_builtin): Same.
18653
18654 2002-01-07  Richard Henderson  <rth@redhat.com>
18655
18656         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
18657
18658 2002-01-07  Jason Merrill  <jason@redhat.com>
18659
18660         * unwind-dw2.c (execute_cfa_program): Use < again.
18661
18662 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18663
18664         * predict.c (combine_predictions_for_insn): Avoid division by zero.
18665
18666 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18667
18668         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
18669         Don't allow -1 - x -> ~x simplifications in the first pass.
18670
18671 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18672
18673         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
18674         arguments.
18675         (altivec_expand_binop_builtin): Same.
18676         (altivec_expand_unop_builtin): Same.
18677         (print_operand): Fix typo.
18678         (bdesc_1arg): Add vupk* variants.
18679
18680         * rs6000.h (rs6000_builtins): Add vupk* enums.
18681
18682         * rs6000.md: Add altivec_vupk* variants.
18683
18684 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
18685
18686         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
18687         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
18688         and last update dates.
18689
18690 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
18691
18692         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
18693
18694 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
18695
18696         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
18697         * config/avr/avr.h (CPP_SPEC): Likewise.
18698         (LINK_SPEC): Likewise.
18699         (CRT_BINUTILS_SPECS): Likewise.
18700         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
18701         * doc/invoke.texi (AVR Options): Document them.
18702
18703 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18704
18705         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
18706         LABEL_NUSES.
18707
18708 2002-01-07  Graham Stott  <grahams@redhat.com>
18709
18710         * config/i386/i386.h: Update copyright date.
18711         (HALF_PIC_PTR): Add parenthesis.
18712         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
18713         (CONSTANT_ALIGNMENT): Add parenthesis.
18714         (DATA_ALIGNMENT): Likewise.
18715         (LOCAL_ALIGNMENT): Likewise.
18716         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
18717         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
18718         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
18719         (HARD_REGNO_NREGS): Add paranethesis.
18720         (VALID_SSE_REG_MODE): Whitespace.
18721         (VALID_MMX_REG_MODE): Whitespace.
18722         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
18723         (ix86_hard_regno_mode_ok): Add parenthesis.
18724         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
18725         (RETURN_IN_MEMORY): Whitespace.
18726         (N_REG_CLASSES): Add parenthesis.
18727         (INTEGER_CLASS_P): Add parenthesis and wrap.
18728         (FLOAT_CLASS_P): Likewise.
18729         (SSE_CLASS_P): Likewise.
18730         (MMX_CLASS_P): Likewise.
18731         (MAYBE_INTEGER_CLASS_P): Likewise.
18732         (MAYBE_FLOAT_CLASS_P): Likewise.
18733         (MAYBE_SSE_CLASS_P): Likewise.
18734         (MAYBE_MMX_CLASS_P): Likewise.
18735         (Q_CLASS_P): Likewise.
18736         (GENERAL_REGNO_P): Uppercase macro parameter.
18737         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
18738         (FP_REGNO_P): Likewise.
18739         (ANY_FP_REGNO_P): Uppercase macro parameter.
18740         (SSE_REGNO_P): Likewise.
18741         (SSE_REGNO): Likewise.
18742         (SSE_REG_P): Likewise.
18743         (SSE_FLOAT_MODE_P): Likewise.
18744         (MMX_REGNO_P): Likewise.
18745         (MMX_REG_P):Likewise.
18746         (STACK_REG_P): Likewise.
18747         (NON_STACK_REG_P): Likewise.
18748         (STACK_TOP_P): Likewise.
18749         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
18750         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
18751         (SECONDARY_MEMORY_NEEDED): Likewise.
18752         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
18753         (MD_ASM_CLOBBERS): Whitespace and wrap.
18754         (MUST_PASS_IN_STACK): Whitespace and wrap.
18755         (RETURN_POPS_ARGS): Add parenthesis.
18756         (INIT_CUMULATIVE_ARGS): Likewise.
18757         (FUNCTION_ARG): Likewise.
18758         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
18759         (SETUP_INCOMING_VARARGS): Likewise.
18760         (BUILD_VA_LIST_TYPE):  Add parenthesis.
18761         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
18762         parenthsis.
18763         (EXPAND_BUILTIN_VA_ARG): Likewise.
18764         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
18765         (INITIALIZE_TRAMPOLINE): Add parenthesis.
18766         (INITIAL_ELIMINATION_OFFSET): Likewise.
18767         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
18768         (REGNO_OK_FOR_BASE_P): Likewise.
18769         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
18770         (REGNO_OK_FOR_DIREG_P): Likewise.
18771         (REG_OK_FOR_INDEX_P): Whitespace.
18772         (REG_OK_FOR_BASE_P): Whitespace.
18773         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
18774         parenthesis.
18775         (FIND_BASE_TERM): Fix typo.
18776         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
18777         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
18778         (SYMBOLIC_CONST; Whitespace.
18779         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
18780         (ENCODE_SECTION_INFO): Whitespace.
18781         (FINALIZE_PIC): Remove do { ... } while (0).
18782         (PROMOTE_MODE): Wrap in do { ... } while (0).
18783         (CONST_COSTS): Whitespace.
18784         (RTX_COSTS): Add paramethesis, whitespace and wrap.
18785         (REGISTER_MOVE_COST): Add parenthesis.
18786         (MEMORY_MOVE_COST): Likewise.
18787         (EXTRA_CC_MODES): Whitespace.
18788         (SELECT_CC_MODE): Add parenthesis and whitespace.
18789         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
18790         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
18791         (ASM_OUTPUT_LABEL): Add paramethesis.
18792         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
18793         (ASM_OUTPUT_REG_POP): Likewise.
18794         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
18795         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18796
18797         * config/i386/i386.c: Update copyright.
18798         (CHECK_STACK_LIMIT): Add parenthesis.
18799         (AT_BP): Uppercase macro parameter.
18800         (x86_64_int_parameter_registers): Constify.
18801         (x86_64_int_return_registers): Likewise.
18802         (ix86_compare_op0): Use rtx.
18803         (construct_container): Constify INTREG parameter.
18804         (function_arg): Use rtx.
18805
18806         * diagnostic.h: Update copyright date.
18807         (output_buffer_state): Add parenthesis.
18808         (output_buffer_format_args): Likewise.
18809
18810         * combine.c (combine_instructions): Replace XEXP (links, 0)
18811         with link.
18812
18813 2002-01-06  H.J. Lu <hjl@gnu.org>
18814
18815         * cfgcleanup.c (thread_jump): Fix 2 typos.
18816
18817 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
18818
18819         * config.gcc: Add support for --enable-altivec.
18820
18821 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18822
18823         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
18824
18825 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
18826
18827         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
18828         __objc_class_name_*.
18829
18830 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18831
18832         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
18833
18834 2002-01-06  Richard Henderson  <rth@redhat.com>
18835
18836         * reorg.c (emit_delay_sequence): Remove death notes, not merely
18837         nop them out.  Increment label reference count for REG_LABEL.
18838         (fill_slots_from_thread): Frob label reference count around
18839         delete_related_insns.
18840
18841 2002-01-05  Richard Henderson  <rth@redhat.com>
18842
18843         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
18844         jump threading.
18845
18846 2002-01-05  Richard Henderson  <rth@redhat.com>
18847
18848         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
18849         * integrate.c (output_inline_function): Likewise.
18850         * toplev.c (rest_of_compilation): Do it here instead.  Move call
18851         to remove_unnecessary_notes after emitting abstract instance.
18852         Force an emitted nested function to have its parent emited as well.
18853         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
18854         for null.
18855         (rtl_for_decl_location): Do not look at reload data structures
18856         before reload has run.
18857
18858 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18859
18860         * cse.c: Fix formatting.
18861         * dwarf2asm.c: Likewise.
18862         * dwarf2out.c: Likewise.
18863         * explow.c: Likewise.
18864         * expmed.c: Likewise.
18865         * function.c: Likewise.
18866         * gcov.c: Likewise.
18867         * gencheck.c: Likewise.
18868         * genrecog.c: Likewise.
18869         * ggc-common.c: Likewise.
18870         * ggc-page.c: Likewise.
18871         * global.c: Likewise.
18872
18873 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18874
18875         * combine.c: Fix formatting.
18876
18877 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
18878
18879         PR middle-end/1557
18880         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
18881
18882 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
18883
18884         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
18885         as 1 for __powerpc64__ as well.
18886
18887         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
18888
18889         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
18890         return it.
18891
18892 2002-01-05  Daniel Berlin  <dan@dberlin.org>
18893
18894         * lcm.c: Revert change, due to performance regression it causes on
18895         SPEC because it's slightly more conservative (sigh, I hate
18896         edge-based LCM).
18897
18898 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
18899
18900         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
18901
18902 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
18903
18904         * doc/cppinternals.texi: Update.
18905
18906 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
18907
18908         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
18909         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
18910         negatives.
18911         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
18912         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
18913         kludge for pre-october-14th mmix versions to handle new-found bug
18914         with PUSHJ/PUSHGO and the register stack.
18915         * config/mmix/mmix.h (struct machine_function): Rename member
18916         has_call_value_without_parameters to has_call_without_parameters.
18917         All referers changed.
18918         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
18919         TARGET_MASK_BRANCH_PREDICT): New macros.
18920         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
18921         -mno-reg-stack-fill-bug-workaround.
18922         * config/mmix/mmix.md ("call"): Set struct machine member
18923         has_call_without_parameters.
18924
18925 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18926
18927         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
18928
18929 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
18930
18931         * cfgcleanup.c: Include tm_p.h
18932         (mark_effect): Fix handling of hard register; fix handling of SET
18933
18934 2002-01-04  Kazu Hirata  <kazu@hxi.com>
18935
18936         * config/h8300/h8300.md (anonymous patterns): Check that
18937         operands are registers before using REGNO on them.
18938
18939 2002-01-03  Roland McGrath  <roland@frob.com>
18940
18941         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
18942
18943 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
18944
18945         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
18946         * c-common.h (genrtl_expr_stmt_value): Likewise.
18947         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
18948         (expand_expr_stmt_value): Add maybe_last argument.
18949         Don't warn about statement with no effect if it is the last statement
18950         in expression statement.
18951         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
18952         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
18953         expand_expr_stmt_value.
18954         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
18955         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
18956         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
18957         as maybe_last to expand_expr_stmt_value.
18958
18959 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
18960
18961         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
18962         be passed in, do not build it.
18963         (c_begin_if_stmt): New function.
18964         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18965         * c-common.h (c_expand_start_cond): Update prototype.
18966         (c_begin_if_stmt): Prototype new function.
18967         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18968         * c-parse.in (if_prefix): Use c_begin_if_stmt,
18969         c_begin_while_stmt and c_finish_while_stmt_cond.
18970
18971 2002-01-04  William Cohen  <wcohen@redhat.com>
18972
18973         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
18974         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18975         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18976         * config/pa/som.h (ASM_FILE_START): Likewise.
18977
18978 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
18979
18980         * lcm.c: Include df.h.
18981         Add available_transfer_function prototype.
18982         (compute_available): Rework to use iterative dataflow framework.
18983         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
18984         with bb_info in df.h
18985         (available_transfer_function): New function.
18986
18987         * Makefile.in (lcm.o): add df.h to dependencies.
18988
18989 2002-01-04  Richard Henderson  <rth@redhat.com>
18990
18991         * config/alpha/alpha.c (some_operand): Accept HIGH.
18992         (input_operand): Likewise; accept simple references to globals.
18993         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
18994         (alpha_const_double_ok_for_letter_p): Likewise.
18995         (alpha_extra_constraint): Likewise.
18996         (alpha_preferred_reload_class): Likewise.  Do not force
18997         symbolic constants to memory.
18998         (alpha_legitimate_address_p): Accept simple references
18999         to small_symbolic_operand.
19000         (alpha_legitimize_address): New arg scratch.  Be prepared to be
19001         called when no_new_pseudos.  Emit simple symbolic references.
19002         Split integers into low, high, and rest.
19003         (alpha_expand_mov): Use alpha_legitimize_address.
19004         (some_small_symbolic_mem_operand): New.
19005         (split_small_symbolic_mem_operand): New.
19006         * config/alpha/alpha-protos.h: Update.
19007         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
19008         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
19009         (EXTRA_CONSTRAINT): Likewise.
19010         (PREFERRED_RELOAD_CLASS): Likewise.
19011         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
19012         (PREDICATE_CODES): Update.
19013         * config/alpha/alpha.md: New post-reload splitters to convert
19014         simplfied symbolic operands to the form that references $29.
19015         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
19016         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
19017
19018 2002-01-03  Richard Henderson  <rth@redhat.com>
19019
19020         * local-alloc.c (function_invariant_p): Update commentary.
19021
19022 2002-01-04  H.J. Lu <hjl@gnu.org>
19023
19024         * toplev.c (rest_of_compilation): Fix a typo when calling
19025         cleanup_cfg.
19026
19027 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19028
19029         * c-common.c: Fix formatting.
19030         * diagnostic.c: Likewise.
19031         * doloop.c: Likewise.
19032         * dwarf2out.c: Likewise.
19033
19034 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19035
19036         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
19037         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
19038
19039 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19040
19041         * cpperror.c: Update comments and copyright.
19042         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
19043         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
19044
19045 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19046
19047         * collect2.c (main): Use strcmp when testing for "-shared".
19048
19049 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19050
19051         * cppmacro.c: Don't include intl.h.  Update comments.
19052         (new_number_token): Allocate enough buffer for 64-bit unsigned
19053         integers; update prototype.
19054         * cppmain.c: Update comments.
19055
19056 2002-01-03  William Cohen  <wcohen@redhat.com>
19057
19058         * function.h (struct function): Add profile.
19059         (current_function_profile): New.
19060         doc/extend.texi: Update documentation.
19061         * final.c (final_start_function): Use current_function_profile
19062         instead of profile_flag.
19063         (profile_after_prologue): Likewise.
19064         * function.c (expand_function_start): Likewise.
19065         (expand_function_start): Likewise.
19066         * config/alpha/alpha.c (direct_call_operand):
19067         (alpha_does_function_need_gp): Likewise.
19068         (alpha_expand_prologue): Likewise.
19069         * config/arm/arm.c (arm_expand_prologue): Likewise.
19070         thumb_expand_prologue: Likewise.
19071         * config/d30v/d30v.c (d30v_stack_info): Likewise.
19072         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
19073         (fr30_expand_prologue): Likewise.
19074         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
19075         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
19076         * config/i386/i386.h (FINALIZE_PIC): Likewise.
19077         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19078         * config/i960/i960.c (i960_output_function_prologue): Likewise.
19079         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
19080         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
19081         (m32r_expand_prologue): Likewise.
19082         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
19083         (m88k_expand_prologue): Likewise.
19084         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
19085         * config/mips/mips.c (compute_frame_size): Likewise.
19086         (mips_expand_prologue): Likewise.
19087         (mips_can_use_return_insn): Likewise.
19088         * config/pa/elf.h (ASM_FILE_START): Likewise.
19089         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
19090         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
19091         * config/pa/som.h (ASM_FILE_START): Likewise.
19092         * config/romp/romp.c (romp_using_r14): Likewise.
19093         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
19094         (rs6000_stack_info): Likewise.
19095         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19096         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
19097         * config/v850/v850.c (compute_register_save_size): Likewise.
19098
19099 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
19100
19101         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
19102         gen_lowpart_common fails, use gen_lowpart_SUBREG.
19103
19104 2002-01-03  Turly O'Connor  <turly@apple.com>
19105
19106         * darwin.c (machopic_output_possible_stub_label): Don't generate
19107         stub routines for pseudo-stubs which we've just defined.
19108
19109 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19110
19111         * builtins.c: Fix formatting.
19112         * c-typeck.c: Likewise.
19113         * combine.c: Likewise.
19114         * expr.c: Likewise.
19115         * loop.c: Likewise.
19116
19117 2002-01-03  Andreas Schwab  <schwab@suse.de>
19118
19119         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
19120         and return true if _cpp_push_next_buffer pushed a new include
19121         file.
19122         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
19123         _cpp_pop_file_buffer did not push a new file.
19124         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
19125
19126 2002-01-02  Eric Christopher  <echristo@redhat.com>
19127
19128         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
19129         FIND_REG_INC_NOTE call. Update copyright.
19130         * loop.c (canonicalize_condition): Ditto.
19131         * reorg.c (delete_scheduled_jump): Ditto.
19132
19133 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19134
19135         * gcse.c: Fix formatting.
19136
19137 2002-01-03  Graham Stott  <grahams@redhat.com>
19138
19139         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
19140         forward defs for struct tags rtx_def, union_tree, rtvec_def
19141         also output corresponding typedefs for rtx, tree, and rtvec.
19142
19143         * system.h: Move forward defs for struct tags rtx_def, union_tree,
19144         rtvec_def along with corresponding typedefs for rtx, tree, and
19145         rtvec to config.h, hconfig.h, tconfig.h.
19146
19147 2002-01-03  Graham Stott  <grahams@redhat.com>
19148
19149         * tree.h: Update copyright date.
19150         (IS_EXPR_CODE_CLASS): Add parenthesis.
19151         (TREE_SET_CODE): Add whitespace.
19152         (TREE_CHECK): Add parenthesis.
19153         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
19154         (CST_OR_CONSTRUCTOR_CHECK):
19155         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
19156         (TREE_SYMBOL_REFERENCED): Whitespace.
19157         (INT_CST_LT): Likewise.
19158         (INT_CST_LT_UNSIGNED): Likewise.
19159         (tree_real_cst): Unwrap comment.
19160         (tree_string): Likewise.
19161         (tree_complex): Likewise.
19162         (IDENTIFIER_POINTER): correct cast.
19163         (SAVE_EXPR_CONTEXT): Whitespace.
19164         (EXPR_WFL_FILENAME_NODE): Likewise.
19165         (EXPR_WFL_FILENAME): Remove parenthesis.
19166         (DECL_ORIGIN): Add parenthesis.
19167         (DECL_FROM_INLINE): Use NULL_TREE.
19168         (build_int_2): Whitespace.
19169         (build_type_variant): Add parenthesis.
19170
19171         * gcc/jcf-parse.c: Update copyright date.
19172         (yyparse): Constify resource_filename.
19173
19174 2002-01-03  Graham Stott  <grahams@redhat.com>
19175
19176         * rtl.h: Update copyright date.
19177         (RTL_CHECK1): Wrap long line.
19178         (RTL_CHECK2): Likewise.
19179         (RTL_CHECKC1): Wrap long line and whitespace.
19180         (RTL_CHECKC2): Likewise.
19181         (XWINT): Whitespace.
19182         (XINT): Likewise.
19183         (XSTR): Likewise.
19184         (XEXP): Likewise.
19185         (XVEC): Likewise.
19186         (XMODE): Likewise.
19187         (XBITMAP): Likewise.
19188         (XTREE): Likewise.
19189         (XBBDEF): Likewise.
19190         (XTMPL): Likewise.
19191         (X0WINT): Likewise.
19192         (X0INT):Likewise.
19193         (X0UINT): Likewise.
19194         (X0STR): Likewise.
19195         (X0EXP): Likewise.
19196         (X0VEC): Likewise.
19197         (X0MODE): Likewise.
19198         (X0BITMAP): Likewise.
19199         (X0TREE): Likewise.
19200         (X0BBDEF): Likewise.
19201         (X0ADVFLAGS): Likewise.
19202         (X0CSELIB): Likewise.
19203         (X0MEMATTR): Likewise.
19204         (XCWINT): Likewise.
19205         (XCINT): Likewise.
19206         (XCUINT): Likewise.
19207         (XCSTR): Likewise.
19208         (XCEXP): Likewise.
19209         (XCVEC): Likewise.
19210         (XCMODE): Likewise.
19211         (XCBITMAP): Likewise.
19212         (XCTREE): Likewise.
19213         (XCBBDEF): Likewise.
19214         (XCADVFLAGS): Likewise.
19215         (XCCSELIB): Likewise.
19216         (XC2EXP): Likewise.
19217         (INSN_UID): Likewise.
19218         (PREV_INSN): Likewise.
19219         (PATTERN): Likewise.
19220         (INSN_CODE): Likewise.
19221         (PUT_REG_NOTE_KIND): Likewise.
19222         (CODE_LABEL_NUMBER): Likewise.
19223         (NOTE_SOURCE_FILE): Likewise.
19224         (NOTE_BLOCK): Likewise.
19225         (NOTE_EH_HANDLER): Likewise.
19226         (NOTE_RANGE_INFO): Likewise.
19227         (NOTE_LIVE_INFO): Likewise.
19228         (NOTE_BASIC_BLOCK): Likewise.
19229         (NOTE_EXPECTED_VALUE): Likewise.
19230         (NOTE_LINE_NUMBER): Likewise.
19231         (LABEL_NAME): Likewise.
19232         (LABEL_NUSES): Likewise.
19233         (LABEL_ALTERNATE_NAME): Likewise.
19234         (ADDRESSOF_DECL): Likewise.
19235         (JUMP_LABEL): Likewise.
19236         (LABEL_NEXTREF): Likewise.
19237         (REGNO): Likewise.
19238         (ORIGINAL_REGNO: Likewise.
19239         (HARD_REGISTER_NUM_P): Add parenthesis.
19240         (SUBREG_REG): Whitespace.
19241         (SUBREG_BYTE): Likewise.
19242         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
19243         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
19244         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
19245         (ASM_OPERANDS_INPUT_VEC): Likewise.
19246         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
19247         (ASM_OPERANDS_INPUT): Likewise.
19248         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
19249         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
19250         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
19251         (ASM_OPERANDS_INPUT_MODE): Likewise.
19252         (ASM_OPERANDS_SOURCE_FILE): Likewise.
19253         (ASM_OPERANDS_SOURCE_LINE): Likewise.
19254         (MEM_SET_IN_STRUCT_P): Minor reformat.
19255         (TRAP_CONDITION): Whitespace.
19256         (TRAP_CODE): Likewise.
19257         (COND_EXEC_TEST): Likewise.
19258         (COND_EXEC_CODE): Likewise.
19259         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
19260         (PHI_NODE_P): Add parenthesis.
19261         (plus_constant): Whitespace and add parenthesis.
19262
19263 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19264
19265         * config/avr/avr.c: Fix comment typos.
19266         * config/c4x/c4x.md: Likewise.
19267         * config/dsp16xx/dsp16xx.h: Likewise.
19268         * config/dsp16xx/dsp16xx.md: Likewise.
19269         * config/i386/i386.md: Likewise.
19270         * config/ia64/ia64.c: Likewise.
19271         * config/m32r/m32r.h: Likewise.
19272         * config/m68hc11/m68hc11.md: Likewise.
19273         * config/mmix/mmix.c: Likewise.
19274         * config/mn10200/mn10200.c: Likewise.
19275         * config/romp/romp.c: Likewise.
19276         * config/sh/sh.c: Likewise.
19277         * config/stormy16/stormy16.c: Likewise.
19278         * config/stormy16/stormy16.h: Likewise.
19279         * config/stormy16/stormy16.md: Likewise.
19280
19281 2002-01-03  Graham Stott  <grahams@redhat.com>
19282
19283         * loop.h: Update copyright date.
19284         (LOOP_MOVABLES): Fix typo.
19285         (LOOP_REGS): Likewise.
19286         (LOOP_IVS): Likewise.
19287
19288 2002-01-03  Graham Stott  <grahams@redhat.com>
19289
19290         * cppinit.c: Update copyright date.
19291         Don't include output.h
19292         * Makefile.in: Update copyright date.
19293         Update dependency.
19294
19295 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19296
19297         PR c/5226
19298         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
19299         (-pthread) Add to RS/6000 options.
19300
19301 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19302
19303         * except.c: Fix comment typos.
19304         * loop.c: Likewise.
19305         * varasm.c: Likewise.
19306         * doc/tm.texi: Fix a typo.
19307
19308 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
19309
19310         * c-typeck.c (output_init_element): Allow initializing static storage
19311         duration objects with compound literals.
19312
19313 2002-01-02  Richard Henderson  <rth@redhat.com>
19314
19315         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
19316         after abusing it.
19317
19318 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19319
19320         * gcc.c (default_compilers): Const-ify.
19321         * mips-tdump.c (stab_names): Likewise.
19322         * mips-tfile.c (map_coff_types, map_coff_storage,
19323         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
19324         pseudo_ops_t, pseudo_ops): Likewise.
19325         * protoize.c (default_include): Likewise
19326
19327         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
19328         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
19329         Add array size in declaration.
19330         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
19331         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
19332         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
19333         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
19334         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
19335         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
19336         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
19337         emtens, make_nan): Const-ify.
19338         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
19339         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
19340
19341 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
19342
19343         * config.gcc (ia64-*-*): Set extra_headers.
19344         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
19345         * config/alpha/t-osf: Remove.
19346         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
19347
19348 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
19349
19350         * config/rs6000/t-aix43: Revert previous change.
19351
19352 2002-01-02  Jason Merrill  <jason@redhat.com>
19353
19354         * c-decl.c (c_expand_body): Call outlining_inline_function when
19355         emitting an inline function out of line.
19356
19357 2002-01-02  Richard Henderson  <rth@redhat.com>
19358
19359         * dwarf2out.c (limbo_die_node): Add created_for member.
19360         (new_die): New argument created_for.  Update all callers.
19361         (mark_limbo_die_list): New.
19362         (dwarf2out_init): Register limbo_die_list as a root.
19363         (dwarf2out_finish): Force insert limbo dies into their function
19364         context.
19365
19366 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
19367
19368         PR c++/5089
19369         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
19370
19371 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19372
19373         * config/h8300/fixunssfsi.c: Update copyright.
19374         Fix comment typos.
19375         Fix formatting.
19376         * config/h8300/h8300.c: Update copyright.
19377         Eliminate warnings.
19378
19379 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19380
19381         * config/romp/romp.c: Fix comment formatting.
19382         * config/romp/romp.h: Likewise.
19383         * config/romp/romp.md: Likewise.
19384         * config/s390/s390.c: Likewise.
19385         * config/stormy16/stormy16.c: Likewise.
19386         * config/stormy16/stormy16.h: Likewise.
19387
19388 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
19389
19390         * c-common.h (genrtl_expr_stmt_value): Declare.
19391         * c-semantics.c (genrtl_goto_stmt): Redirect to...
19392         (genrtl_goto_stmt_value): ... this new function.  Pass new
19393         argument down to expand_expr_stmt_value, taking
19394         TREE_ADDRESSABLE into account.
19395         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
19396         STMT_EXPR as addressable, i.e., one whose result we want.
19397         * expr.c (expand_expr): Don't save expression statement value
19398         of labeled_blocks or loop_exprs.
19399         * stmt.c (expand_expr_stmt): Redirect to...
19400         (expand_expr_stmt_value): ... this new function.  Use new
19401         argument to tell whether to save expression value.
19402         (expand_end_stmt_expr): Reset last_expr_type and
19403         last_expr_value if we don't have either.
19404         * tree-inline.c (declare_return_variable): Mark its use
19405         statement as addressable.
19406         * tree.h: Document new use of TREE_ADDRESSABLE.
19407         (expand_expr_stmt_value): Declare.
19408
19409 2002-01-01  Tom Rix  <trix@redhat.com>
19410
19411         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
19412         rs6000_emit_allocate_stack.
19413
19414 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
19415
19416         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
19417         ${srcdir}/ginclude/ to every entry in extra_headers.
19418         * configure: Regenerate.
19419         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
19420         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
19421         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
19422         * ginclude/proto.h: Rename to config/convex/proto.h.
19423
19424 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19425
19426         * attribs.c (handle_vector_size_attribute): Use host_integerp
19427         and tree_int_cst; remove warnings.
19428         * caller-save.c (insert_restore): Add cast to get rid of warning.
19429         (insert_save): Likewise.
19430         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
19431         * regmove.c (find_matches): Add temporary var to kill a warning.
19432
19433 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
19434
19435         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
19436         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
19437         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
19438         (vms-dwarf2eh.o): Add Makefile rule.
19439         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
19440         * config/alpha/vms-dwarf2eh.asm: New file.
19441
19442         * gcc.c (delete_if_ordinary): Delete all versions.
19443
19444 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
19445
19446         * config/mmix/mmix.md: Update FIXME to not mention
19447         define_constants.
19448         (MMIX_rJ_REGNUM): New define_constants constant.
19449         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
19450         "*movdicc_real"): Adjust contraints formatting.
19451         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
19452         for branch prediction.
19453         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
19454         output template.
19455         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
19456         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
19457         number.  Delete related FIXMEs.
19458         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
19459         from number to MMIX_rJ_REGNUM.
19460         (TARGET_MASK_BRANCH_PREDICT): New.
19461         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
19462         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
19463         value.  Add -mbranch-predict and -mno-branch-predict.
19464         (TARGET_VERSION): Drop date.
19465         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
19466         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
19467         for finding out global symbols.
19468         (mmix_asm_output_labelref): Revert condition for global symbol.
19469         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
19470         (mmix_print_operand_punct_valid_p): A '+' is valid.
19471
19472 See ChangeLog.6 for earlier changes.