OSDN Git Service

a6bba3ae801ffd18a75b57c4b09c5308fc4deb39
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Jun 18 20:00:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * sh-protos.h (sh_pr_interrupt): Declare.
4         * sh.c (sh_pr_interrupt): New function.
5         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
6         (sh_hard_regno_rename_ok): Likewise.
7         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
8
9 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
10
11         * rtl.def (DEFINE_AUTOMATON): Add description of new options
12         `time' and `v'.  Fix incorrect description of option `w'.
13
14         * doc/md.texi: Ditto.
15
16         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
17         (gen_automata_option): Process the new options.
18         (transform_2, transform_3): Initialize some variables.
19         (initiate_automaton_gen): Use the new macros.
20         
21 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
22
23         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
24         (mips_set_return_address, mips_restore_gp): Declare.
25         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
26         (current_frame_info): Remove.
27         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
28         * config/mips/mips.c: Remove uses of current_frame_info.
29         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
30         (struct machine_function): Add 'frame' and 'insns_len'.
31         (current_frame_info, zero_frame_info): Remove.
32         (mips_restore_gp, mips_set_return_address): New.
33         (mips_initial_elimination_offset): New.
34         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
35         (eh_return define_split): Use mips_set_return_address.
36
37 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
38
39         * cpplib.c (dtable): Update.
40         (end_directive): Decrement expansion prevention count.
41         Clear state.in_expression.
42         (prepare_directive_trad): Set state.in_expression.
43         Increment expansion prevention count.
44         * cpptrad.c (enum ls): New.
45         (_cpp_overlay_buffer): Set overlaid_buffer.
46         (_cpp_remove_overlay): Use overlaid_buffer.
47         (_cpp_read_logcial_line_trad): Update buffer when it might
48         have changed.
49         (scan_out_logical_line): Handle state transitions for assertions
50         and defined() in #if, and for funlike invocations including the
51         directive case.  Handle '<' and '>' as a quote mechanism in
52         #include.  Warn about unterminated macro invocations.
53         * cpphash.h (struct lexer_state): New member in_expression.
54         (struct cpp_reader): New member overlaid buffer.
55
56 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
57
58         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
59         __always_inline__.
60
61 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
62
63         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
64
65         * doloop.c (doloop_optimize): Extract pattern from insn.
66
67 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
68
69         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
70
71 2002-06-17  Jeff Law <law@redha.com>
72
73         * libgcc2.c: Do not include symcat.h or machmode.h.
74
75 2002-06-17  Richard Henderson  <rth@redhat.com>
76
77         PR target/6922
78         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
79
80 2002-06-17  Tom Tromey  <tromey@redhat.com>
81
82         * dwarfout.c: Include function.h.
83
84 2002-06-17  Andreas Schwab  <schwab@suse.de>
85
86         * print-rtl.c (print_rtx): Print space before vector, not after.
87         (debug_rtx): Clear sawclose before printing.
88         (debug_rtx_list): Print newline after each list element.
89         (debug_rtx_range): Likewise.
90
91 2002-06-17  Richard Henderson  <rth@redhat.com>
92
93         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
94         (current_function_funcdef_no): Similarly.
95         * function.c (funcdef_no): Similarly.
96         (prepare_function_start): Set current_function_funcdef_no.
97         (expand_function_start): Don't set current_function_profile_label_no.
98         * dwarf2out.h (current_funcdef_number): Remove.
99         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
100         current_function_funcdef_no throughout.
101         * dwarfout.c, vmsdbgout.c: Similarly.
102         * except.c (sjlj_funcdef_number): Remove.
103         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
104         (output_function_exception_table): Likewise.
105         * final.c (profile_function): Use current_function_funcdef_no
106         instead of current_function_profile_label_no.
107
108 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
109
110         * sched-ebb.c (init_ready_list): Check INSN_P first.
111
112 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
113
114         * sh.md (divsi3): Update way how to find insns in a sequence.
115
116         * reload1.c (merge_assigned_reloads): Don't change reloads
117         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
118         to RELOAD_OTHER when there are conflicting input reloads.
119
120 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
121
122         * function.c (epilogue_done): Correctly build a sequence of insns for
123         a sibcall epilogue.
124
125 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
126
127         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
128         #define.
129
130         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
131
132 2002-06-16  Richard Henderson  <rth@redhat.com>
133
134         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
135         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
136
137 2002-06-16  Richard Henderson  <rth@redhat.com>
138
139         PR opt/6722
140         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
141
142 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
143
144         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
145         * config/i386/i386-aout.h, config/i386/i386elf.h,
146         config/i386/sysv4.h: Remove CPP_PREDEFINES.
147         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
148         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
149         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
150         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
151         CPP_PREDEFINES and part of CPP_SPEC.
152         * config/i386/sysv4-cpp.h: New.
153
154 2002-06-16  Richard Henderson  <rth@redhat.com>
155
156         PR c/7030
157         * dwarf2out.c (modified_type_die): Don't assign the qualified die
158         to the unqualified type.
159
160 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
161
162         * i386-protos.h (x86_field_alignment): Declare.
163         * i386.c (x86_field_alignment): Define.
164         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
165         (BIGGEST_FIELD_ALIGNMENT): Kill.
166
167 2002-06-16  Richard Henderson  <rth@redhat.com>
168
169         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
170
171 2002-06-16  Richard Henderson  <rth@redhat.com>
172
173         * c-common.c (flag_ms_extensions): Move from c++ front end.
174         * c-common.h (flag_ms_extensions): Declare.
175         * c-decl.c (c_decode_option): Add -fms-extensions.
176         (grokfield): Don't accept anonymous structures in ISO C mode;
177         accept only unnamed anonymous structures in GNU C mode; accept
178         Plan 9 extensions in MS mode.
179         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
180         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
181         (extension): Clear flag_iso.
182         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
183
184 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
185
186         PR target/7042
187         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
188         early if current_function_epilogue_delay_list is non-empty.
189         * config/cris/cris.md ("return"): Add sanity check asserting that
190         current_function_epilogue_delay_list is empty.
191
192 2002-06-16  Jeff Law <law@redhat.com>
193
194         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
195         sharing of hard registers.
196
197         * toplev.c (rest_of_compilation): Remove redundant conditional.
198
199         * toplev.c (rest_of_compilation): Perform a simpler, less costly
200         cleanup of the CFG when not optimizing.
201
202 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
203
204         * gcc.c (main): Correct startfile_prefix_spec check.
205
206 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
207
208         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
209         include both darwin.o and rs6000-c.o.
210
211 2002-06-15  Roger Sayle  <roger@eyesopen.com>
212
213         * expr.c (compare_from_rtx): Call simplify_relational_operation
214         on all comparisons, not just those between integer constants,
215         with the correct (possibly unsigned) comparison code.
216         (do_compare_rtx_and_jump): Likewise.
217
218 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
219
220         * Makefile.in (tm_defines): New configuration variable.
221         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
222         Pass tm_defines in TM_DEFINES.
223         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
224         * config.gcc (tm_defines): New configuration variable.
225         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
226         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
227         * configure.in: Substitute tm_defines.
228         * configure: Rebuilt.
229         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
230         * doc/install.texi: Update.
231         * pa/pa-700.h: Delete file.
232         * pa/pa-7100.h: Delete file.
233
234 2002-06-15  Roger Sayle  <roger@eyesopen.com>
235
236         * fold-const.c (comparison_to_compcode): New function to convert
237         an comparison TREE CODE into a bit-based representation.
238         (compcode_to_comparison): New function to convert from this bit
239         based representation back to a comparison TREE CODE.
240         (fold_truthop): Simplify (x<y) && (x==y) and related composite
241         comparisons.
242
243 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
244
245         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
246
247         * stor-layout.c (compute_record_mode): Remove check for
248         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
249         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
250         MEMBER_TYPE_FORCES_BLK.
251
252         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
253
254         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
255
256 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
257
258         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
259
260 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
261
262         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
263         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
264         * configure, config.in: Regenerate.
265
266 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
267
268         * loop.c (check_final_value): Use v->always_executed
269         instead of v->always_computable.
270         * unroll.c (final_giv_value): Don't calculate the final
271         value as a function of the biv if the giv is not computed
272         for every loop iteration.
273
274 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
275  
276         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
277
278 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
279
280         PR c/6677
281         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
282         the truncation down when the target type is signed.
283         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
284         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
285         the conversion if the target type is a smaller type.
286
287 2002-06-14  Richard Henderson  <rth@redhat.com>
288
289         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
290         earlier.  Re-factor comparisons vs extrema.
291
292 2002-06-14  Richard Henderson  <rth@redhat.com>
293
294         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
295
296 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
297
298         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
299         * sched-deps.c (add_dependence): Likewise.
300         (group_leader): Likewise.
301         * sched-rgn.c (init_ready_list): Likewise.
302         * doc/rtl.texi: Adjust accordingly.
303
304 2002-06-13  Jeffrey Law  <law@redhat.com>
305
306         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
307         null pointer checks were eliminated.  Update prototype.
308         (delete_null_pointer_checks): Similarly.
309         * rtl.h (delete_null_pointer_checks): Update prototype.
310         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
311         delete_null_pointer_checks deletes one or more null
312         pointer checks.  Do not run cleanup_cfg before gcse, the
313         CFG is accurate and optimized at that point..
314
315         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
316         of hard registers.
317
318 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
319
320         * Makefile.in (libgcc.mk): Depend on specs.
321
322 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
323
324         * sh.md (mulsi3): Update way how to find insns in a sequence.
325
326 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
327
328         * sh.h: Define HARD_REGNO_RENAME_OK
329         * sh.c: sh_hard_regno_rename_ok: New. If current function has
330         interrupt_handler attribute, only registers saved on stack are OK.
331         * sh-protos.h: Declare sh_hard_regno_rename_ok.
332
333 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
334
335         * config/sh/sh.md (jump): Emit jump insn.
336         (call_pcrel): Get pattern of the result of gen_call_site.
337         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
338
339 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
340
341         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
342         * cpptrad.c: Update comments.
343         (skip_whitespace, copy_comment): Take a new parameter.
344         (skip_escaped_newlines): Don't duplicate escaped newline test.
345         (copy_comment): Different location for CUR, decide here how
346         to copy / replace the comment.
347         (skip_whitespace): Copy whitespace.
348         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
349         (scan_out_logical_line): Let copy comment handle keeping or
350         replacing comments.
351         (scan_parameters, _cpp_create_trad_definition): Update.
352
353 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
354
355         * reload.c (get_secondary_mem,find_reloads_address,
356         find_reloads_address_1): Pass reference to MEM to find_reloads_address
357         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
358         
359 2002-06-13  Jessica Han  <jessica@cup.hp.com>
360
361         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
362         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
363         * doc/tm.texi: Document them.
364         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
365         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
366         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
367         (ASM_OUTPUT_FDESC): Likewise.
368
369 2002-06-13  Eric Christopher  <echristo@redhat.com>
370
371         * diagnostic.c (output_format): Fix thinko.
372
373 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
374
375         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
376         (DWARF2_UNWIND_INFO): Define to 0.
377
378         * config/sh/sh.c (calc_live_regs): Don't use initial_value
379         optimization for PR_MEDIA_REG.
380
381 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
382
383         * cpphash.h (_cpp_lex_identifier_trad): Remove.
384         * cpplib.c (end_directive): Don't skip, always remove overlay
385         apart from #define.
386         (prepare_directive_trad): Handle NULL pfile->directive.
387         (_cpp_handle_directive): Always call prepare_directive_trad
388         if traditional.
389         * cppmain.c (check_multiline_token): Rename account_for_newlines,
390         generalize inputs.
391         (scan_translation_unit_trad): Use it.
392         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
393         output, get escaped newline in comment close correct.
394         (check_output_buffer, skip_whitespace): Update.
395         (_cpp_lex_identifier_trad): Remove.
396         (scan_out_logical_line): Handle -C and comments in directives
397         properly.
398
399 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
400
401         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
402         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
403         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
404         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
405         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
406         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
407         (SELECT_SH5_COMPACT_NOFPU): Likewise.
408         (TARGET_SWITCHES): Use them.
409         (TARGET_CPU_DEFAULT): Define if not already defined.
410         (TARGET_DEFAULT): Use it.
411         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
412         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
413         * config/sh/t-monolib: New file.
414
415 2002-06-13  Roger Sayle  <roger@eyesopen.com>
416
417         * toplev.c (rest_of_compilation): Simplify (and correct) the
418         logic of the first delete-null-pointer-checks pass.
419
420 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
421
422         * i386.c (ix86_expand_movstr):  Fix pasto.
423
424 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
425
426         * reload.c (find_valid_class):  Fix thinko in my previous patch.
427
428 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
429
430         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
431         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
432         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
433         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
434
435 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
436
437         * tree-inline.c (expand_call_inline): Don' mess with _DECL
438         fields.
439
440 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
441
442         * diagnostic.c (output_format): Recognize "%H" as a format
443         specifier for a location_t.
444         (text_specifies_location): New function.
445         (diagnostic_set_info): Use it.
446
447 2002-06-13  Jeffrey Law  <law@redhat.com>
448
449         * emit-rtl.c (static_regno_reg_rtx): Define.
450         (init_emit_once): Initialize static_regno_reg_rtx.
451         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
452         of building new hard reg objects once per function.
453         (gen_rtx_REG): Try to share hard regs.
454         * regclass.c (init_fake_stack_mems): New function broken out from
455         init_regs.
456         * rtl.h (init_fake_stack_mems): Declare.
457         * toplev.c (lang_independent_init): Call init_regs before
458         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
459
460         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
461
462         * alias.c (argument_registers): Remove.
463         (init_alias_once): Initialize static_reg_base_value here.  Remove
464         initialization of argument_registers.
465         (init_alias_once_per_function): Remove.
466         (init_alias_analysis): Copy all the entries from static_reg_base_value
467         into new_reg_base_value all at once.
468         * rtl.h (init_alias_once_per_function): Remove declaration.
469         * function.c (prepare_function_start): Do not call
470         init_alias_once_per_function.
471
472         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
473         starting a sequence and emitting an INSN.
474
475 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
476
477         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
478
479 2002-06-13  David S. Miller  <davem@redhat.com>
480
481         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
482
483 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
484
485         * cpplib.c (end_directive): Handle line skipping.  Only remove
486         the rest of the line if the directive was valid.
487         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
488         expanding a traditional macro.
489         * cpptrad.c (recursive_macro): New.
490         (read_logical_line_trad): Handle skipping.
491         (scan_out_logical_line): Continue after a successful directive.
492         Don't expand macros whilst skipping, or if recursing.
493         (_cpp_create_trad_definition): scan_out_logical_line now sets
494         the output current position.
495
496 2002-06-12  Eric Christopher  <echristo@redhat.com>
497
498         From Chris Demetriou  <cgd@broadcom.com>
499         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
500         comment.
501         (ISA_HAS_MADD_MSUB): Ditto.
502         (ISA_HAS_NMADD_NMSUB): Ditto.
503
504 2002-06-12  Eric Christopher  <echristo@redhat.com>
505
506         * config.gcc: Consolidate little endian handling and
507         little/big endian targets.
508         * config/mips/elfl.h: Remove file.
509         * config/mips/elfl64.h: Ditto.
510         * config/mips/ecoffl.h: Ditto.
511         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
512
513 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
514
515         * gengtype.h (xvasprintf): New prototype.
516         (xasprintf): New prototype.
517         (struct outf): New.
518         (get_output_file): Return an outf_p.
519         (header_file): Is now an outf_p.
520         (base_files): Now are outf_p.
521         (oprintf): New.
522         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
523         rather than stdio operations.  Use xasprintf in a few places,
524         when appropriate.
525         (xvasprintf): New.
526         (xasprintf): New.
527         (struct filemap): Delete.
528         (files): Delete.
529         (output_files): New.
530         (oprintf): New.
531         (create_file): Create an outf_p.  Add parameter to indicate output
532         file name, change all callers.
533         (open_base_files): Create gtype-desc.c here.
534         (get_output_file_with_visibility): Rewrite.
535         (get_output_file_name): Just look at 'name' field in struct outf.
536         (close_output_files): Rewrite.
537
538 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
539
540         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
541         (MASK_G_FLOAT): Define.
542         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
543         (TARGET_SWITCHES): Likewise.
544         (TARGET_DEFAULT): Likewise.
545
546 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
547
548         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
549         * config/mips/mips.c (mips_output_filename): Don't print a
550         ".file" directive if we are using DWARF-2.
551         (mips_output_function_prologue): Do not emit source file
552         name for TARGET_GAS.
553
554 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
555
556         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
557         decide whether emit the short opcode.
558         * i386.h (x86_shift1): Declare.
559         (TARGET_SHIFT1): New macro.
560         * i386.c (x86_shift1): New global variable.
561
562         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
563         unconditionally; make loop to rebuild CFG; kill unnecesary
564         find_basic_block calls; kill compute_bb_for_insn call.
565         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
566         * haifa-sched.c (sched_init): Likewise.
567         * ssa-ccp.c (ssa_const_prop): Likewise.
568         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
569
570 2002-06-11  David S. Miller  <davem@redhat.com>
571
572         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
573         active_insn_p.
574
575 2002-06-11  Richard Henderson  <rth@redhat.com>
576
577         * c-common.c (builtin_define_type_max): New.
578         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
579         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
580
581         From Joseph S. Myers:
582         * glimits.h: Rewrite to expect the double underscore definitions
583         from the compiler.
584
585         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
586         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
587         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
588         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
589         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
590         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
591         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
592         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
593
594 2002-06-11  Richard Henderson  <rth@redhat.com>
595
596         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
597         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
598         (code_for_builtns): Update.
599         (alpha_init_builtins): Add __builtin_thread_pointer and
600         __builtin_set_thread_pointer.
601         (alpha_expand_builtin): Handle void builtins.
602         * doc/extend.texi (Alpha Built-in Functions): Update.
603
604 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
605
606         PR target/6997
607         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
608
609 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
610
611         * config.gcc: Make the name of the extra-modes file adjustable
612         by target stanzas.
613         (s390x, strongarm, xscale stanzas): Use this facility.
614         * configure.in: Update to match.
615         * configure: Regenerate.
616
617 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
618
619         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
620         max/mins as unsigned GE compares.
621
622 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
623
624         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
625         * config/vax/bsd.h: New file.
626         * config/vax/netbsd.h: Add missing notice.
627         (CPP_PREDEFINES): Remove.
628         (TARGET_OS_CPP_BUILTINS): Define.
629         (CPP_SPEC): Use NETBSD_CPP_SPEC.
630         * config/vax/openbsd.h: Update copyright years.
631         (CPP_PREDEFINES): Remove.
632         (TARGET_OS_CPP_BUILTINS): Define.
633         * config/vax/ultrix.h: Likewise.
634         * config/vax/vaxv.h: Likewise.
635         * config/vax/vms.h: Likewise.
636         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
637         (CPP_PREDEFINES, CPP_SPEC): Remove.
638
639 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
640
641         * i386.md (addqi_1_slp, subqi_1_slp
642         (andqi_ext0, testqi_ext0): Remove unnecesary check.
643         (addhi*, addqi*): Simplify "dec" condition.
644         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
645         (and, or, xor to QImode splitters): New.
646         (iorqi_ext*): New.
647         (xorqi_ext_0): New.
648         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
649         (andqi_ext_1_rex64): New.
650         (ashrqi*_slp): New.
651         (ashlqi*_slp): New.
652         (lshlqi*_slp): New.
653         (rotrqi3*_slp): New.
654         (rotlqi3*_slp): New.
655
656 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
657
658         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
659         softfloat.h.
660         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
661         (CPP_ENDIAN_LITTLE_SPEC): Delete.
662         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
663         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
664         __LONG_DOUBLE_128__ setting, _CALL_* setting.
665         (CPP_DEFAULT_SPEC): Delete.
666         (CPP_FLOAT_DEFAULT_SPEC): Delete.
667         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
668         (CPP_SYSV_DEFAULT_SPEC): Delete.
669         (CPP_ENDIAN_BIG_SPEC): Delete.
670         (CPP_ENDIAN_LITTLE_SPEC): Delete.
671         (CPP_ENDIAN_SPEC): Delete.
672         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
673         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
674         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
675         cpp_longdouble_default.
676         * config/rs6000/softfloat.h: Delete.
677         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
678         (EXTRA_SPECS): Delete cpp_cpu.
679         (TARGET_CPU_CPP_BUILTINS): New.
680         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
681         prototype.
682         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
683         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
684         (CPP_DEFAULT_SPEC): Delete.
685         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
686         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
687         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
688         (CPP_DEFAULT_SPEC): Delete.
689         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
690         (CPLUSPLUS_CPP_SPEC): Likewise.
691         (CPP_CPU_SPEC): Delete.
692         (CPP_DEFAULT_SPEC): Delete.
693         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
694         (CPLUSPLUS_CPP_SPEC): Likewise.
695         (CPP_CPU_SPEC): Delete.
696         (CPP_DEFAULT_SPEC): Delete.
697         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
698         (CPP_DEFAULT_SPEC): Delete.
699         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
700         (CPP_DEFAULT_SPEC): Delete.
701
702         * doc/gty.texi: Small updates.
703
704 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
705
706         * objc/objc-act.c (warn_with_ivar): Adjust calls to
707         diagnostic_count_error.
708         (warn_with_method): Likewise.
709
710         * diagnostic.h (warnings_are_errors_message): New field of
711         diagnostic_context.
712         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
713         match semantics.
714         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
715         (diagnostic_count_diagnostic): Make aware of other kinds of
716         diagnostics.
717         (diagnostic_initialize): Initialize warnings_are_errors_message field.
718
719 2002-06-11  Tom Tromey  <tromey@redhat.com>
720
721         For PR java/6520:
722         * fold-const.c (fold_convert): Don't modify existing tree's type.
723
724 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
725
726         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
727
728 2002-06-11  Richard Henderson  <rth@redhat.com>
729
730         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
731
732 2002-06-11  Richard Henderson  <rth@redhat.com>
733
734         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
735         DWARF2_UNWIND_INFO is false.
736
737 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
738
739         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
740
741         * config/s390/s390.c (emit_prologue): gen_store_multiple
742         returns an insn now, not a pattern.
743
744 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
745
746         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
747         $(TEXI2DVI) -o.
748
749 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
750
751         * i386.c (x86_promote_QImode): Set for Athlon
752         (x86_fast_prefix): New global variable.
753         (x86_arch_always_fancy_math_387): Fix formating.
754         * i386.h (x86_fast_prefix): Declare
755         (TARGET_FAST_PREFIX): define.
756         * i386.md (and to strict_low_part, HI to SI
757         promoting splitter): Use new macro.
758
759         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
760
761 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
762
763         * Makefile.in (distclean): Delete junk left in testsuite
764         directory, too.
765
766 2002-06-11  Jeffrey Law <law@redhat.com>
767
768         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
769         last insn created by the splitter.
770
771         * caller-save.c (init_caller_save): Move creation of SAVEINSN
772         and RESTINSN into into the scope of the sequence.
773
774         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
775         RETURN insns.
776
777         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
778
779         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
780         not the pattern.  So extract the pattern from the insn.
781
782         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
783
784 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
785
786         * config/s390/s390.md (movsi): Only use floating point
787         register alternatives when operands are already fprs.
788         (movdi_31, movdi_64): Likewise.
789
790 2002-06-11  David S. Miller  <davem@redhat.com>
791
792         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
793         Only run RTX equality checks on INSN_P rtl.
794
795 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
796
797         * config/s390/s390.md (reload_base, ltorg): Remove.
798         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
799         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
800         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
801         s390_asm_output_pool_prologue): Likewise.
802         * s390.h (s390_pool_start_insn): Likewise.
803
804         * s390.c (s390_output_symbolic_const): Remove support for
805         old-style pool chunks.
806         (s390_function_epilogue): Likewise.
807         (s390_output_constant_pool): Likewise.  Also, fix incorrect
808         alignment for 64-bit literal pools.
809         (print_operand_address): Remove 'y' and 'Y' format flags.
810         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
811         old-style pool chunks.
812         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
813         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
814         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
815
816         * s390.c (consttable_operand): New function.
817         * s390-protos.h (consttable_operand): Declare it.
818         * s390.h (PREDICATE_CODES): Add consttable_operand.
819         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
820         consttable_sf, consttable_df, pool_start_31, pool_end_31,
821         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
822         * s390.c (struct constant, struct constant_pool): New data types.
823         (constant_modes, gen_consttable): New variables.
824         (s390_start_pool, s390_end_pool, s390_add_pool,
825         s390_dump_pool, s390_free_pool): New functions.
826         (s390_chunkify_pool): Completely reimplement literal pool
827         overflow handling.
828
829         * s390.c (s390_pool_overflow): New variable.
830         * s390.h (s390_pool_overflow): Declare it.
831         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
832         jumps in literal pool overflow situations.
833
834         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
835         (s390_frame_info): Account for possible use of RETURN_REGNUM
836         by new literal pool overflow code.
837         (s390_emit_prologue): Likewise.
838
839 2002-06-05  David S. Miller  <davem@redhat.com>
840
841         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
842         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
843         emit_insns_before_scope, emit_insns_after,
844         emit_insns_after_scope): Delete declaration.
845         * ada/misc.c (insert_code_for): Use emit_insn* instead of
846         emit_insns_foo.
847         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
848         (alpha_set_memflags): Fix comment.
849         (set_frame_related_p): Use get_insns instead of gen_sequence.
850         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
851         emitting no insns.
852         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
853         gen_sequence.
854         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
855         * config/fr30/fr30.c (fr30_move_double): Likewise.
856         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
857         Likewise.
858         * config/ia64/ia64.c (spill_restore_mem): Likewise.
859         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
860         no insns.
861         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
862         instead of gen_sequence.
863         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
864         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
865         * config/sh/sh.c (sh_need_epilogue): Likewise.
866         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
867         attributes.
868         (setjmp pattern and split): Use them to avoid splitter which emits
869         no RTL.
870         * genattrtab.c (main): Emit include of function.h
871         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
872         get_insns instead of gen_sequence.
873         * config/cris/cris.c (cris_split_movdx): Likewise.
874         * emit-rtl.c (emit_insns*): Kill.
875         (try_split): Expect insn list instead of SEQUENCE.
876         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
877         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
878         Make them abort if a SEQUENCE is given and RTL checking is
879         enabled.
880         (emit_*_scope): Don't forget to set scope on final insn.
881         (gen_sequence): Move from here...
882         * ssa.c (gen_sequence): To here as private function.
883         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
884         comments.
885         (expand_builtin_return, expand_builtin_mathfn): Likewise.
886         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
887         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
888         (expand_builtin_expect_jump): Use get_insns and fix comments.
889         * calls.c (try_to_integrate): Use emit_insn_foo.
890         (expand_call, emit_library_call_value_1): Likewise.
891         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
892         (emit_move_insn_1): Use get_insns instead of gen_sequence.
893         (expand_expr): Use emit_insn_foo.
894         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
895         * except.c (build_post_landing_pads): Likewise.
896         * flow.c (attempt_auto_inc): Likewise.
897         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
898         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
899         * function.c (fixup_var_refs_insn): Use get_insns instead of
900         gen_sequence.
901         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
902         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
903         (fixup_stack_1, purge_addressof_1, expand_main_function,
904         get_arg_pointer_save_area): Likewise.
905         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
906         expand_function_end): Use emit_insn_foo.
907         (record_insns, keep_stack_depressed): Work with insn list instead
908         of SEQUENCE, fix comments.
909         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
910         noce_try_store_flag_constants, noce_try_store_flag_inc,
911         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
912         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
913         (noce_process_if_block): Use get_insns instead of gen_sequence.
914         * optabs.c (add_equal_note): Work with insn list, fix comments.
915         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
916         (expand_unop, expand_complex_abs, expand_unop_insn,
917         expand_no_conflict_block): Likewise.
918         (gen_move_insn): Use get_insns instead of gen_sequence.
919         (gen_cond_trap): Likewise.
920         * integrate.c (copy_rtx_and_substitute): Likewise.
921         (emit_initial_value_sets): Use emit_insn_foo.
922         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
923         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
924         now that RTL generators give insn lists.
925         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
926         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
927         instead of gen_sequence.
928         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
929         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
930         instead of gen_sequence.
931         * loop.c (move_movables, emit_prefetch_instructions,
932         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
933         Likewise.
934         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
935         (product_cheap_p): Likewise, and add commentary about RTL wastage
936         here.
937         * lcm.c (optimize_mode_switching): Use get_insns instead of
938         gen_sequence.
939         * profile.c (gen_edge_profiler): Likewise.
940         * regmove.c (copy_src_to_dest): Likewise.
941         * reg-stack.c (compensate_edge): Likewise and fix comment.
942         * gcse.c (process_insert_insn): Likewise.
943         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
944         * jump.c (delete_prior_computation): Update comment.
945         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
946         of gen_sequence, update comments to match.
947         * recog.c (peephole2_optimize): Work with insn lists instead of
948         SEQUENCE rtl.
949         * sched-vis.c (print_pattern): Abort on SEQUENCE.
950         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
951         Use get_insns instead of gen_sequence.
952         (copy_loop_body): Likewise and don't emit dummy NOTE.
953         * genrecog.c: Don't mention SEQUENCE rtl in comments.
954         * combine.c (try_combine): Expect insn lists from split generator.
955         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
956         hand.
957
958 2002-06-11  Roger Sayle  <roger@eyesopen.com>
959             Andreas Jaeger <aj@suse.de>
960
961         * cfgbuild.c: Update copyright years.
962
963 2002-06-11  Andreas Schwab  <schwab@suse.de>
964
965         * config/m68k/m68k.h (PREDICATE_CODES): Define.
966
967 2002-06-11  Eric Christopher  <echristo@redhat.com>
968
969         * doc/tm.texi (Run-time Target): Add comment about flag_iso
970         and strict ANSI.
971         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
972         * config/mips/ecoffl.h: Ditto.
973         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
974         (CPP_PREDEFINES): Ditto.
975         * config/mips/elfl64.h: Ditto.
976         * config/mips/elfl.h: Ditto.
977         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
978         out until irix header consolidation.
979         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
980         with SUBTARGET_OS_CPP_BUILTINS.
981         * config/mips/iris6.h: Ditto.
982         (CPLUSPLUS_CPP_SPEC): Remove.
983         * config/mips/linux.h: Ditto.
984         * config/mips/netbsd.h: Ditto.
985         * config/mips/openbsd.h: Ditto.
986         * config/mips/rtems.h: Ditto.
987         * config/mips/rtems64.h: Ditto.
988         * config/mips/sni-svr4.h: Ditto.
989         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
990         ISA_MIPS32, ISA_MIPS64): New defines.
991         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
992         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
993         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
994         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
995         (TARGET_CPU_CPP_BUILTINS): Define.
996         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
997         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
998         (movdicc): Remove check for ISA_MIPS32.
999          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
1000         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
1001         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
1002         sunge_sf, sunle_df, sunle_sf): New patterns.
1003
1004 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1005
1006         * Makefile.in: Update cppmain.o.
1007         * cpphash.h (struct cpp_reader): Move some members to a
1008         nested structure.
1009         (trad_line): Rename saved_line.
1010         (_cpp_read_logical_line_trad): Update.
1011         (_cpp_remove_overlay): New.
1012         * cppinit.c (cpp_create_reader): No need to set saved_line.
1013         (cpp_destroy): Update.
1014         (cpp_read_main_file): Only overlay if compiling.
1015         * cpplex.c (continue_after_nul): Return false if in directive.
1016         * cpplib.c (EXPAND): New.
1017         (directive_table, SEEN_EOL): Update.
1018         (end_directive): Remove overlay if traditional; don't skip
1019         line in traditional #define.
1020         (prepare_directive_trad): New.
1021         (_cpp_handle_directive, run_directive): Update for traditional
1022         directives.
1023         (lex_macro_node): Simplify, don't use lex_identifier_trad.
1024         * cpplib.h (struct options): Add preprocess_only.
1025         * cppmain.c: Don't include intl.h.
1026         (cpp_preprocess_file): Set options->preprocess_only.
1027         (scan_translation_unit_trad): Fix, and print line numbers.
1028         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
1029         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
1030         save_replacement_text, _cpp_create_trad_definition): Update for
1031         variable renaming.
1032         (_cpp_overlay_buffer): Save line number.
1033         (_cpp_remove_overlay): Rename from restore_buff, restore line.
1034         (_cpp_read_logical_line_trad): Don't handle overlays here.
1035         (scan_out_logical_line): Process directives.
1036
1037 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
1038
1039         * gthr-win32.h: Wrap functions in extern "C".
1040         (__gthread_key_t): Typedef as unsigned long,
1041         not win32 DWORD.
1042         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
1043         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
1044         (__gthr_win32_once, __gthr_win32_key_create,
1045         __gthr_win32_key_delete, __gthr_win32_getspecific,
1046         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
1047         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
1048         __gthr_win32_mutex_unlock): Declare.
1049         (__gthread_once,__gthread_key_create,
1050         __gthread_key_delete, __gthread_getspecific,
1051         __gthread_setspecific, __gthread_mutex_init_function,
1052         __gthread_mutex_lock,__gthread_mutex_trylock,
1053         __gthread_mutex_unlock): Call corresponding
1054         __gthr_win32_* extern implementations if #defined
1055         __GTHREAD_HIDE_WIN32API.
1056         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
1057         $(srcdir)/config/i386/gthr-win32.c
1058         * config/i386/gthr-win32.c: New implementation file.
1059         (__gthr_win32_once, __gthr_win32_key_create,
1060         __gthr_win32_key_delete, __gthr_win32_getspecific,
1061         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
1062         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
1063         __gthr_win32_mutex_unlock): New functions, based on
1064         static inlines in gthr-win32.h.
1065
1066 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
1067
1068         * config/xtensa/xtensa.c (override_options): Don't warn about
1069         using -fpic or -fPIC when PIC is enabled by default.
1070
1071 2002-06-10  Roger Sayle  <roger@eyesopen.com>
1072
1073         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
1074
1075 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
1076
1077         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
1078         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
1079         exists, substitute its pathname as @extra_modes_file@, define
1080         EXTRA_MODES_FILE to be an appropriate string to #include it
1081         with, and define EXTRA_CC_MODES to 1.
1082
1083         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
1084         it's defined.  Get rid of redundancy in calling sequence for
1085         CC; don't use it to define CCmode, to avoid a warning.
1086         * libgcc2.c: Include symcat.h for the sake of machmode.def.
1087
1088         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
1089         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
1090         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
1091         New files.
1092         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
1093         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
1094
1095         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
1096         defining extra CC modes.
1097
1098 2002-06-10  Roger Sayle  <roger@eyesopen.com>
1099             Andreas Jaeger <aj@suse.de>
1100
1101         * cfgrtl.c (create_basic_block_structure):  Remove index argument
1102         and use last_basic_block++ instead.  (create_basic_block): Update.
1103         * cfgbuild.c (find_basic_blocks_1): Likewise.
1104
1105         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
1106         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
1107         * sched-ebb.c (schedule_ebbs): Likewise.
1108         * sched-rgn.c (schedule_insns): Likewise.
1109         * ssa-ccp.c (ssa_const_prop): Likewise.
1110         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
1111         * toplev.c (rest_of_compilation): Likewise.
1112         * config/ia64/ia64.c (ia64_reorg): Likewise.
1113
1114 2002-06-10  Roger Sayle  <roger@eyesopen.com>
1115
1116         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
1117         of matching registers.
1118
1119 2002-06-10  Roger Sayle  <roger@eyesopen.com>
1120
1121         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
1122         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
1123
1124 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
1125
1126         * config/mmix/mmix.h: Improve comments.
1127         (CPP_SPEC, CPP_PREDEFINES): Don't define.
1128         (TARGET_CPU_CPP_BUILTINS): Define.
1129         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
1130         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
1131         unused predicate.
1132         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
1133         compiler warning.
1134         (mmix_constant_address_p): Remove another
1135         redundant test before case.
1136         (mmix_canonicalize_comparison): Remove unused function.
1137         (mmix_print_operand_address): Don't test and adjust for operand in
1138         non-canonical format.
1139         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
1140         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
1141
1142 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
1143
1144         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
1145         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
1146         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
1147         (gen_compare): Use CCmode unconditionally.
1148
1149 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR optimization/6759
1152         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
1153         the REQ_EQUAL note.
1154
1155 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1156
1157         PR c/6660
1158         * c-decl.c (grokfield): Allow user defined types if they declare
1159         structs or unions for unnamed fields.
1160
1161 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1162
1163         PR c/6809
1164         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
1165
1166 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1167
1168         PR optimization/6842
1169         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
1170         operand subreg cannot be simplified.
1171
1172 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1173
1174         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
1175         (compare_constant): Likewise.
1176         (output_addressed_constants): Likewise.
1177
1178 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
1179
1180         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
1181         merge bb with itself.
1182
1183 2002-06-10  Richard Henderson  <rth@redhat.com>
1184
1185         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
1186         (builtin_zapnot): Likewise.
1187
1188         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
1189         reservation.
1190
1191 2002-06-10  Eric Christopher  <echristo@redhat.com>
1192
1193         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
1194         prototype and function.
1195         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
1196         (call_insn_operand): Remove half pic references.
1197         (legitimate_address_p): Ditto.
1198         * config/i386/i386.h: Remove half pic defines.
1199
1200 2002-06-10  Eric Christopher  <echristo@redhat.com>
1201
1202         * doc/extend.texi (Return Address): Add note explaining the side-
1203         effects of inlining on __builtin_return_address.
1204
1205 2002-06-10  Tom Tromey  <tromey@redhat.com>
1206
1207         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
1208         (c-common.o): Depend on langhooks.h.
1209
1210 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
1211
1212         * cpphash.h (_cpp_read_logical_line_trad,
1213         _cpp_expansions_different_trad): Update prototypes.
1214         * cpplex.c (continue_after_nul): New.
1215         * cppmain.c: Include cpphash.h.
1216         (scan_translation_unit_trad): New.
1217         (cpp_preprocess_file): Call it.
1218         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
1219         overlay.
1220         (_cpp_expansions_different_trad): Update prototype.
1221
1222 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
1223
1224         Fix cfi generation for SH[1-4]:
1225
1226         * sh.c (frame_insn): New function.
1227         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
1228         (push): Now returns rtx.  Use frame_insn.
1229         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
1230         of a DF register.
1231         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
1232
1233 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
1234
1235         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
1236         and gtype-desc.c.
1237         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
1238         (distclean): ... not here.  But do delete all testsuite/*.log,
1239         testsuite/*.sum files here.  Delete mkheaders.  Delete
1240         po/*.gmo and the testsuite directory in a split tree build.
1241
1242 2002-06-10  Jeffrey Law  <law@redhat.com>
1243
1244         * alias.c (static_reg_base_value): New to hold RTL for
1245         items allocated once per function for the aliasing code.
1246         (init_alias_once_per_function): Initialize static_reg_base_value.
1247         (init_alias_analysis): Avoid throw-away allocations of RTL by
1248         using pre-computed values in static_reg_base_value.
1249         * function.c (prepare_function_start): Call
1250         init_alias_once_per_function appropriately.
1251         * rtl.h (init_alias_once_per_function): Declare.
1252         * caller-save (init_caller_save): Restructure slightly to
1253         avoid lots of silly RTL generation.
1254         * expr.c (init_expr_once): Likewise.
1255         * reload1.c (reload_cse_regs_1): Allocate throw-away register
1256         RTL object here.  Pass it into children.
1257         (reload_cse_simplify_operands): Use passed-in register RTL
1258         object.
1259         (reload_cse_simplify): Pass through throw-away register
1260         RTL object.
1261
1262 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
1263
1264         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
1265
1266 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
1267
1268         * gcc.c (process_command): Avoid assignment to read-only location.
1269         Fix sizeof calculation.
1270
1271 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
1272
1273         * cpphash.h (struct cpp_macro): Put comments on their own lines.
1274         (_cpp_expansions_different_trad): New.
1275         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
1276         * cpptrad.c (canonicalize_text): New.
1277         (scan_out_logical_line): Handle no arguments correctly.
1278         (save_replacement_text): Commit memory when finished.
1279         (_cpp_expansions_different_trad): New.
1280
1281 2002-06-10  Tim Josling  <tej@melbpc.org.au>
1282
1283         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
1284         TREELANG and COBOL.
1285         (lang_names): Add treelang and cobol.
1286         (get_file_basename): Add code to support treelang and cobol as
1287         4th and 5th users of c-common.c.
1288
1289 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
1290
1291         * Makefile.in (install-driver): Install driver as
1292         $(target_alias)-gcc-$(version).
1293         * gcc.c (spec_version): Make const.
1294         (process_command): Handle -V and -b by using exec.
1295         * doc/invoke.texi (Target Options): Restore -V option,
1296         update docs for -b option.
1297
1298 2002-06-10  Tim Josling  <tej@melbpc.org.au>
1299
1300         * configure.in (remaining_languages_check):
1301         Added check that all languages specified were found.
1302         Exit if not found. Previous behaviour was silent failure.
1303         * configure: Regenerated.
1304
1305 2002-06-10  Tim Josling  <tej@melbpc.org.au>
1306
1307          First steps to making treelang documentation compliant, based on
1308          instructions in sourcebuild.texi. Also add to gcc.c list of
1309          default languages.
1310
1311         * doc/contrib.texi: Add self as contributor of treelang.
1312
1313         * doc/frontends.texi: Add mention of treelang.
1314
1315         * doc/invoke.texi (Overall Options): Add mention of treelang.
1316
1317         * doc/standards.texi:  Add mention of treelang.
1318
1319 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
1320
1321         * config/cris/cris.c: Include ggc.h
1322
1323 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1324
1325         * cpphash.h (_cpp_push_text_context): Update.
1326         (_cpp_arguments_ok): New.
1327         * cppmacro.c (_cpp_arguments_ok): New, split out from...
1328         (collect_args): ...here.
1329         (_cpp_push_text_context): Change inputs.
1330         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
1331         replace_args_and_push): New.
1332         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
1333         Don't use IS macros directly.
1334         (scan_out_logical_line): Handle function-like macro argument
1335         collection.
1336         (push_replacement_text): Update.
1337         (replacement_length): Remove.
1338         (_cpp_create_trad_definition): Don't skip whitespace before
1339         checking for '('.
1340
1341 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1342
1343         * config/avr/avr.c (avr_mcu_types): Update for new devices.
1344         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
1345         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
1346         * config/avr/avr.md ("type" and "length" attributes): New type
1347         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
1348         output a single "call" or "rcall" insn depending on device size.
1349         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
1350
1351 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
1352
1353         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
1354         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
1355         assembler option.
1356         (CPP_CPU_SPEC): Add power3 and power4.
1357         (PROCESSOR_DEFAULT): Change to 604e.
1358         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
1359         (CPP_CPU_SPEC): Similar additions.
1360         (enum process_type): Add POWER4.
1361         (RTX_COSTS): Add POWER4.
1362         (CPP_CPU_SPEC): Similar additions.
1363         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
1364         (PROCESSOR_DEFAULT64): Define.
1365         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
1366         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
1367         branch adjustment.
1368         (rs6000_issue_rate): Add Power4.
1369         * config/rs6000/rs6000.md (cpu attr): Add power4.
1370         (iu compare): Remove 604, 604e, 620, 630.
1371         Add basic Power4 scheduling information.
1372         (mfcr/mtcrf): Change type attribute to cr_logical.
1373
1374 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1375
1376         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
1377         ATTRIBUTE_PRINTF_2.
1378         * gengtype-lex.l: Fix format specifier warning.
1379
1380         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
1381         not isspace.
1382         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
1383         lieu of isspace/IDchar.
1384         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
1385         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
1386         ISSPACE.
1387
1388 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
1389
1390         * Makefile.in (LIBCPP_OBJS): Take out version.o.
1391         * cpphash.h (cpp_reader): Take out print_version member.
1392         * cppinit.c: (cpp_handle_option): Don't do anything with
1393         -version.  Just set help_only for --version, --target-help.
1394         Just set verbose option for -v.
1395         (cpp_post_options): Don't print a version string.
1396
1397 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1398
1399         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
1400         (avr_section_type_flags): New, handle .noinit* sections.
1401
1402 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1403
1404         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
1405         and include netbsd_entry_point.
1406         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
1407         (NETBSD_ENTRY_POINT): Define.
1408
1409 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1410
1411         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
1412         if not already defined.
1413         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
1414
1415 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1416
1417         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
1418         in a noreturn function.
1419         (avr_output_function_prologue, avr_output_function_epilogue):
1420         Correct function size calculation.  Do not crash on empty function.
1421         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
1422
1423 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1424
1425         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
1426         netbsd_link_spec and netbsd_entry_point.
1427         (LINK_SPEC): Use %(netbsd_link_spec).
1428         (NETBSD_ENTRY_POINT): Define.
1429
1430 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1431
1432         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
1433         linker emulation.
1434         (LINK_ARCH64_SPEC): Likewise.
1435         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
1436         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
1437
1438 2002-06-08  Marc Espie  <espie@openbsd.org>
1439
1440         * lists.c (free_list):  Fix typo in comment.
1441
1442 2002-06-08  Andreas Jaeger  <aj@suse.de>
1443
1444         * lcm.c (optimize_mode_switching): Add unused attribute for
1445         variable.
1446
1447         * sched-deps.c (sched_analyze): Remove unused variable.
1448
1449 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
1450
1451         * diagnostic.def: Don't capitalize diagnostict descriptors.
1452
1453 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1454
1455         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
1456         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
1457         (NETBSD_ENTRY_POINT): Define.
1458
1459 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1460
1461         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
1462         NETBSD_LINK_SPEC_ELF.
1463         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
1464         (NETBSD_ENTRY_POINT): Define.
1465         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
1466         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
1467         netbsd_entry_point.
1468         (NETBSD_ENTRY_POINT): Define.
1469
1470 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1471
1472         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
1473         netbsd_link_spec and netbsd_entry_point.
1474         (LINK_SPEC): Use %(netbsd_link_spec).
1475         (NETBSD_ENTRY_POINT): Define.
1476
1477 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1478
1479         * config/netbsd-elf.h (LINK_SPEC): Rename to...
1480         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
1481         to specify program entry point.
1482
1483 2002-06-07  Jeff Law <law@redhat.com
1484
1485         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
1486         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
1487         than creating a new register.
1488         (distribute_notes): Likewise.
1489         * df.c (df_reg_use_gen): Likewise.
1490         (df_reg_clobber_gen): Likewise.
1491         (df_ref_record): Likewise.
1492         * expr.c (use_regs): Likewise.
1493         * flow.c (propagate_one_insn): Likewise.
1494         (mark_set_1): Likewise.
1495         (mark_used_reg): Likewise.
1496         * reload.c (emit_reload_insns): Likewise.
1497
1498 2002-06-07  Roger Sayle  <roger@eyesopen.com>
1499
1500         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
1501         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
1502         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
1503         comparison code comp can be reversed.
1504
1505 2002-06-07  Roger Sayle  <roger@eyesopen.com>
1506
1507         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
1508         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
1509         equivalent x > -1.0 when -ffast-math.
1510
1511 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1512
1513         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
1514         * config/mips/t-netbsd: New file.
1515
1516 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
1517
1518         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
1519         options their own entries.
1520         (parse_option): Clarify comment.
1521         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
1522         special case.  Replace if/strcmp chain for -W options with
1523         use of new OPT_* entries for them.
1524         (cpp_handle_options): Update to match.
1525         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
1526         * c-decl.c: Update call to cpp_handle_option.
1527
1528 2002-06-07  Akim Demaille  <akim@epita.fr>
1529
1530         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
1531         Whitespace changes.
1532
1533 2002-06-07  Jeffrey Law  <law@redhat.com>
1534
1535         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
1536         on empty lists.
1537
1538 2002-06-07  H.J. Lu  (hjl@gnu.org)
1539
1540         * configure.in: Add --enable-__cxa_atexit.
1541         * configure: Regenerated.
1542         * config.in: Likewise.
1543
1544         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
1545         not defined.
1546
1547 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
1548
1549         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
1550
1551 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1552
1553         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
1554
1555 2002-06-07  Jason Merrill  <jason@redhat.com>
1556
1557         * cppexp.c (num_equality_op): Use a temporary variable to work
1558         around gcc 3.0.4 bug.
1559
1560 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
1561
1562         * diagnostic.c (diagnostic_build_prefix): Tidy.
1563
1564 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1565
1566         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
1567         scan_parameters, save_replacement_text, replacement_length): New.
1568         (scan_out_logical_line): Take a macro and save parameters if
1569         non-NULL.
1570         (_cpp_logical_line_trad): Update.
1571         (_cpp_create_trad_definition): Update to handle function-like
1572         macros.
1573         * cpplex.c (new_buff): Update.
1574         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
1575         * cpphash.h: ...here.
1576         (CPP_ALIGN2, _cpp_save_parameter): New.
1577         * cppmacro.c (save_parameter): Rename, export.
1578         (parse_params): Update.
1579
1580 2002-06-07  Andreas Jaeger  <aj@suse.de>
1581
1582         * config/mmix/mmix.c: Remove extra broken prototype for
1583         mmix_init_machine_status.
1584
1585 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
1586
1587         * gengtype.c: Add comments before all the routines.
1588
1589 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1590
1591         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
1592         from and add t-sh64 to ${tmake_file}.
1593         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
1594         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
1595         * config/sh/t-netbsd-sh5-32: Remove.
1596         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
1597         MULTILIB_ENDIAN.
1598         (MULTILIB_DIRNAMES): Define.
1599
1600 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
1601
1602         * i386.md (and promoting splitters): Disable QI to SImode promoting
1603         when doing so changes immediate to be 32bit.
1604
1605         * rtl.h (emit_*_scope): Declare.
1606         * emit-rtl.c (emit_*_scope): New global functions.
1607         (try_split): Copy scope.
1608         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
1609         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
1610         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1611         noce_process_if_block, find_cond_trap): Copy scopes.
1612         * recog.c (peephole2_optimize): likewise.
1613
1614 2002-06-06  Jeffrey Law  <law@redhat.com>
1615
1616         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
1617
1618 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
1619
1620         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
1621
1622 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1623
1624         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
1625         ($(docdir)/gccinstall.info): New target.
1626         (info): Depend on it.
1627         (gccinstall.dvi): New target.
1628         (dvi): Depend on it.
1629         * doc/.cvsignore: Ignore new info files.
1630         * doc/install.texi (@setfilename): Reflect new info filename.
1631
1632 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
1633
1634         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
1635         on an UNSPEC.
1636
1637 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1638
1639         PR objc/6834
1640         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
1641         c_common_get_alias_set.
1642         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
1643
1644 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1645
1646         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
1647         functions.
1648         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
1649         * avr/avr.c (avr_output_function_epilogue): Use above to determine
1650         function size.
1651         * pa/pa.c (pa_output_function_prologue): Likewise.
1652
1653 2002-06-05  David S. Miller  <davem@redhat.com>
1654
1655         * integrate.c (subst_constants): Handle 'B' RTL format.
1656
1657 2002-06-05  Eric Christopher  <echristo@redhat.com>
1658
1659         * varasm.c (make_decl_rtl): Fix comment for removed
1660         halfpic.c.
1661
1662 2002-06-05  Eric Christopher  <echristo@redhat.com>
1663
1664         * Makefile.in: Remove missed halfpic bits.
1665
1666 2002-06-05  Eric Christopher  <echristo@redhat.com>
1667
1668         * toplev.c: Remove half-pic.
1669         * config/mips/mips.c: Ditto.
1670         * config/mips/mips.h: Ditto. Remove unused defines.
1671         * config/mips/openbsd.h: Update comment to reflect above.
1672         * config/mips/mips.md: Remove half-pic constraints.
1673         * halfpic.h: Delete.
1674         * halfpic.c: Ditto.
1675
1676 2002-06-05  Jeffrey Law  <law@redhat.com>
1677
1678         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
1679         rejects (mem (lo_sum (reg) (unspec))), but will allow
1680         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
1681
1682 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1683
1684         * cpphash.h (_cpp_create_definition): Update prototype.
1685         (_cpp_push_text_context, _cpp_create_trad_definition): New.
1686         ( cpp_lex_identifier_trad): New.
1687         (_cpp_set_trad_context): New.
1688         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
1689         * cpplib.c (SEEN_EOL): Update.
1690         (lex_macro_node): Update for -traditional.
1691         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
1692         * cppmacro.c (_cpp_create_definition): Split into
1693         create_iso_definition() and _cpp_create_trad_definition().
1694         (warn_of_redefinition): Update prototype; handle traditional
1695         macros.
1696         (_cpp_push_text_context): New.
1697         * cpptrad.c (skip_whitespace, push_replacement_text): New.
1698         (lex_identifier): Call ht_lookup with correct start.
1699         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
1700         _cpp_set_trad_context): New.
1701         (scan_out_logical_line): Update to handle changing contexts.
1702
1703 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
1704
1705         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
1706         (shl*-*-elf*): Add.
1707         * config/sh/t-be (MULTILIB_ENDIAN): Set.
1708         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
1709         * t-sh (MULTILIB_ENDIAN): Set.
1710         (MULTILIB_OPTIONS): Use it.
1711         * t-sh64 (MULTILIB_OPTIONS): Likewise.
1712         (MULTILIB_DIRNAMES): Likewise.
1713
1714 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
1715
1716         * toplev.h (report_error_function): Remove.
1717
1718         * diagnostic.h (location_t): New datatype.
1719         (text_info): Likewise.
1720         (diagnostic_info): Likewise.
1721         (output_prefix): New macro.
1722         (diagnostic_last_function_changed): Likewise.
1723         (diagnostic_set_last_function): Likewise.
1724         (diagnostic_last_module_changed): Likewise.
1725         (diagnostic_set_last_module): Likewise.
1726         (report_diagnostic): Now macro.
1727         (diagnostic_set_info): Declare.
1728
1729         * diagnostic.c (report_problematic_module): Rename to
1730         diagnostic_repor_current_module.
1731         (set_diagnostic_context): Remove.
1732         (count_error): Rename to diagnostic_error_count.
1733         (error_function_changed): Remove.
1734         (record_last_error_function): Likewise.
1735         (error_module_changed): Likewise.
1736         (record_last_error_module): Likewise.
1737         (context_as_prefix): Rename to diagnostic_build_prefix.
1738         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
1739         (diagnostic_set_info): New function.
1740
1741         * objc/objc-act.c: #include diagnostic.h
1742         (error_with_ivar): Adjust call to count_error.
1743         (warn_with_method): Likewise.
1744         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
1745
1746 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
1747
1748         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
1749         lang_hooks.types.make_type instead of make_node; set up
1750         __va_list_tag type decl.
1751         (xtensa_builtin_saveregs): Remove broken use of
1752         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
1753         for saved registers; add varargs alias set.
1754
1755 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1756
1757 config:
1758         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
1759         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1760         CPP_PREDEFINES and part of CPP_SPEC.
1761         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
1762         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
1763
1764 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
1765
1766         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
1767
1768 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
1769
1770         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
1771
1772 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
1773
1774         * gengtype-yacc.y: Make sure all rules end with a semicolon.
1775
1776 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
1777
1778         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
1779         typo in function prototype and include "ggc.h" header.
1780
1781 2002-06-04  Richard Henderson  <rth@redhat.com>
1782
1783         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
1784         (print_operand) ['U']: Likewise.
1785         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
1786         (alpha_expand_unaligned_store_words): Likewise.
1787         (alpha_expand_builtin_vector_binop): Fix typo.
1788         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
1789         umulh, and cix insns.
1790         (one_arg_builtins): Add cix builtins.
1791         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
1792         (alpha_expand_builtin): Fix typo in arity.
1793         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
1794         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
1795         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
1796         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
1797         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
1798         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
1799         builtin_ctlz, builtin_ctpop): New.
1800         * doc/extend.texi (Alpha Built-in Functions): Update.
1801
1802 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
1803
1804         * gengtype.c (write_gc_root): Don't unnecessarily prevent
1805         global variable-length arrays being roots.
1806
1807         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
1808         * configure.in (config_gtfiles): New variable.
1809         (all_gtfiles): Initialise from config_gtfiles.
1810         * configure: Regenerate.
1811
1812 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1813
1814 config/i386:
1815         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
1816         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
1817         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
1818         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
1819         win32.h (CPP_SPEC): Remove cpp_cpu.
1820         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
1821         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
1822
1823 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
1824
1825         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
1826
1827 2002-06-04  Jeff Law <law@redhat.com.
1828             David Edelsohn <edelsohn@gnu.org>
1829             Michael Matz <matz@kde.org>
1830
1831         * sched-int.h (struct deps): New field libcall_block_tail_insn.
1832         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
1833         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
1834         is set, then mark the current insn as being part of a libcall
1835         scheduling group.
1836         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
1837
1838         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
1839         insns against the issue rate.
1840
1841 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
1842
1843         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
1844         * final.c (final_scan_insn): Likewise.
1845         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
1846         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
1847         * haifa-sched.c (unlink_other_notes): Likeewise.
1848         (reemit_notes): Likewise.
1849         * print-rtl.c (print_rtx): Likewise.
1850         * sched-deps (sched-analyze): Likewise.
1851         * rtl.c (note_insn_name): Likewise.
1852         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
1853         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
1854         (RANGE_*): Kill.
1855
1856 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1857
1858         * varasm.c (mark_constants): Handle RTX format 'B'.
1859
1860 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1861
1862         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
1863         (struct cpp_context): Add traditional fields.
1864         * cppmacro.c (paste_all_tokens, push_ptoken_context,
1865         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
1866         * cpptrad.c (skip_comment, lex_identifier,
1867         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
1868
1869 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
1870
1871         * gbl-ctors.h: Fix formatting.
1872         * gcc.c: Likewise.
1873         * gccspec.c: Likewise.
1874         * gcov.c: Likewise.
1875         * gcov-io.h: Likewise.
1876         * gcse.c: Likewise.
1877         * ggc-common.c: Likewise.
1878         * ggc.h: Likewise.
1879         * ggc-page.c: Likewise.
1880         * ggc-simple.c: Likewise.
1881         * global.c: Likewise.
1882         * graph.h: Likewise.
1883         * gthr-dce.h: Likewise.
1884         * gthr.h: Likewise.
1885         * gthr-posix.h: Likewise.
1886         * gthr-rtems.h: Likewise.
1887         * gthr-solaris.h: Likewise.
1888         * gthr-win32.h: Likewise.
1889
1890 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
1891
1892         Merge from pch-branch:
1893
1894         * gengtype.h (UNION_OR_STRUCT_P): New macro.
1895         * gengtype.c (write_gc_structure_fields): Use it.
1896         (write_gc_root): Use it here too.
1897
1898         * gengtype.c (write_gc_structure_fields): Assume that lengths
1899         of typenames fit into an 'int'; don't pass a size_t to "%d" in
1900         printf.
1901         (write_gc_marker_routine_for_structure): Likewise.
1902         (write_gc_types): Likewise.
1903         (write_gc_root): Likewise.
1904
1905         * varray.h (VARRAY_CLEAR): New.
1906         (varray_clear): Prototype.
1907         * varray.c (varray_clear): New.
1908         * cselib.c (reg_values_old): New.
1909         (used_regs_old): New.
1910         (cselib_init): Use cached varrays if available to avoid
1911         generating large amounts of garbage.
1912         (cselib_finish): Don't throw away old varrays.
1913
1914         * final.c (insn_addresses_): Move out of ifdef.
1915
1916         * varray.c (uses_ggc): Make more varray kinds GCable.
1917         * varray.h (union varray_data_tag): Let gengtype see
1918         fields 'generic' and 'te'.
1919         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
1920         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
1921         (reg_to_stack): Don't call VARRAY_FREE.
1922         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
1923         (insn_addresses_): Use gengtype to mark.
1924         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
1925         pointers; handle generic pointers in unused union fields.
1926         (get_output_file_with_visibility): Include cselib.h,
1927         insn-addr.h in gtype-desc.c.
1928         * function.c (prologue): Use gengtype to mark.
1929         (epilogue): Likewise.
1930         (sibcall_epilogue): Likewise.
1931         * dependence.c: Include gt-dependence.h, ggc.h.
1932         (struct def_use): Use gengtype to mark.
1933         (struct loop): Likewise.
1934         (struct induction): Likewise.
1935         (struct dependence): Likewise.
1936         (def_use_chain): Likewise.
1937         (dep_chain): Likewise.
1938         (loop_chain): Likewise.
1939         (induction_chain): Likewise.
1940         (init_dependence_analysis): Don't free anything, just clear pointers.
1941         (build_def_use): Use GGC to allocate def_use.
1942         (add_loop): Use GGC to allocate loop.
1943         (find_induction_variable): Use GGC to allocate induction.
1944         (check_node_dependence): Use GGC to allocate induction, dependence.
1945         (dump_node_dependence): Don't free varrays.
1946         (end_dependence_analysis): Likewise.
1947         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
1948         (struct elt_loc_list): Likewise.
1949         (struct elt_list): Likewise.
1950         * cselib.c: Don't include obstack.h.
1951         (hash_table): Use gengtype to mark.
1952         (reg_values): Use gengtype to mark.
1953         (used_regs): Use gengtype to mark.
1954         (cselib_obstack): Delete.
1955         (cselib_startobj): Delete.
1956         (empty_vals): Mark as deletable.
1957         (empty_elt_lists): Mark as deletable.
1958         (empty_elt_loc_lists): Mark as deletable.
1959         (new_elt_list): Use GGC to allocate struct elt_list.
1960         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
1961         (clear_table): Don't delete obstack; don't unnecessarily clear
1962         deletable variables.
1963         (new_cselib_val): Use GGC to allocate struct cselib_val.
1964         (cselib_init): Don't set up obstacks.  Use GGC to allocate
1965         hash table.
1966         (cselib_finish): Just clear variables, don't free anything.
1967         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
1968         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
1969         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
1970         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
1971         (gt-reg-stack.h): New rule.
1972         (gt-dependence.h): New rule.
1973         (gtype-desc.o): Add cselib.h, insn-addr.h.
1974
1975         * varray.c: Use only necessary headers.
1976         (element_size): New.
1977         (uses_ggc): New.
1978         (varray_init): Take type, not size.  Use GGC if appropriate.
1979         (varray_grow): Update for change to struct varray_head_tag.
1980         Use GGC if appropriate.
1981         * varray.h (struct const_equiv_data): Use gengtype.
1982         (enum varray_data_enum): New.
1983         (union varray_data_tag): Use gengtype.
1984         (struct varray_head_tag): Use gengtype.  Replace size field with
1985         enum varray_data_enum.
1986         (varray_init): Update prototype.
1987         (VARRAY_SCHED_INIT): Delete.
1988         (VARRAY_*_INIT): Update for change to varray_init.
1989         (VARRAY_SCHED): Delete.
1990         (VARRAY_PUSH_SCHED): Delete.
1991         (VARRAY_TOP_SCHED): Delete.
1992         * tree.h: Update for change to length specifier.
1993         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
1994         (clone_body): Likewise.
1995         * ssa.h (ssa_definition): Use gengtype to mark.
1996         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
1997         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
1998         * rtl.h (struct rtvec_def): Update for change to length specifier.
1999         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
2000         (struct initial_value_struct): Update for change to length specifier.
2001         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
2002         (ggc_add_tree_varray_root): Delete prototype.
2003         (ggc_mark_rtx_varray): Delete prototype.
2004         (ggc_mark_tree_varray): Delete prototype.
2005         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
2006         (ggc_add_tree_varray_root): Delete.
2007         (ggc_mark_rtx_varray): Delete.
2008         (ggc_mark_tree_varray): Delete.
2009         (ggc_mark_rtx_varray_ptr): Delete.
2010         (ggc_mark_tree_varray_ptr): Delete.
2011         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
2012         (create_varray): Delete prototype.
2013         * gengtype.c (varrays): Delete.
2014         (create_varray): Delete.
2015         (adjust_field_type): Detect array of string pointers.
2016         (process_gc_options): Remove code to handle varray_type option.
2017         (set_gc_used_type): Remove TYPE_VARRAY case.
2018         (output_escaped_param): New.
2019         (write_gc_structure_fields): Use output_escaped_param on all
2020         parameters.  Handle 'skip' with 'use_param' option.  Handle
2021         arrays of strings.  Remove TYPE_VARRAY handling.
2022         (write_gc_roots): Use boolean to detect 'length' option.
2023         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
2024         (struct_fields): Call adjust_field_type on array fields.
2025         (type): Remove VARRAY_TYPE case.
2026         (type_option): Likewise.
2027         * gengtype-lex.l: Don't consider varray_type a keyword.
2028         * function.h: Update for change to length specifier.
2029         (free_eh_status): Delete prototype.
2030         * function.c (free_after_compilation): Don't call free_eh_status.
2031         (reorder_blocks): Don't use VARRAY_FREE.
2032         * except.c (struct eh_status): Update for change to length specifier.
2033         remove varray_type specifier.
2034         (free_eh_status): Delete.
2035         * dwarf2out.c: Include gt-dwarf2out.h.
2036         (used_rtx_varray): Use gengtype to mark, move
2037         outside ifdefs.
2038         (incomplete_types): Likewise.
2039         (decl_scope_table): Likewise.
2040         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
2041         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
2042         * c-tree.h (struct lang_type): Update for change to length specifier.
2043         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
2044         * c-objc-common.c: Include gt-c-objc-common.h.
2045         (deferred_fns): Mark for gengtype.
2046         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
2047         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
2048         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
2049         (gtype-desc.o): Update dependencies.
2050         (dwarf2out.o): Add gt-dwarf2out.h.
2051         (varray.o): Update dependencies.
2052         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
2053         (gt-c-objc-common.h): New rule.
2054         (gt-dwarf2out.h): New rule.
2055         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
2056
2057         * doc/gty.texi (GTY Options): Correct spelling.
2058         (GGC Roots): Likewise.
2059         * Makefile.in (TEXI_CPP_FILES): New.
2060         (TEXI_GCC_FILES): New.
2061         (TEXI_GCCINT_FILES): New.
2062         (TEXI_CPPINT_FILES): New.
2063         ($(docdir)/cpp.info): Use new macros.
2064         ($(docdir)/gcc.info): Likewise.
2065         ($(docdir)/gccint.info): Likewise.
2066         ($(docdir)/cppinternals.info): Likewise.
2067         (cpp.dvi): Likewise.
2068         (gcc.dvi): Likewise.
2069         (gccint.dvi): Likewise.
2070         (cppinternals.dvi): Likewise.
2071
2072         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
2073         * doc/gccint.texi (Top): Include gty.texi.
2074         * doc/gty.texi: New file.
2075
2076         * bitmap.c: Include ggc.h, gt-bitmap.h.
2077         (bitmap_ggc_free): New.
2078         (bitmap_elem_to_freelist): New.
2079         (bitmap_element_free): Use bitmap_elem_to_freelist.
2080         (bitmap_element_allocate): Allow use of GGC.
2081         (bitmap_clear): Use bitmap_elem_to_freelist.
2082         (bitmap_copy): Update for change to bitmap_element_allocate.
2083         (bitmap_set_bit): Likewise.
2084         (bitmap_operation): Update for changes elsewhere.
2085         (bitmap_initialize): Allow to create bitmaps that will use GGC.
2086         * bitmap.h (struct bitmap_element_def): Use gengtype.
2087         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
2088         (bitmap_initialize): Add extra parameter.
2089         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
2090         (BITMAP_ALLOCA): Delete.
2091         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
2092         (BITMAP_GGC_ALLOC): New.
2093         * Makefile.in (gtype-desc.o): Add bitmap.h.
2094         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
2095         (GTFILES): Add bitmap.c.
2096         (gt-bitmap.h): New rule.
2097         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
2098         * basic-block.h: Update for changes to bitmap_initialize.
2099         * except.c (exception_handler_label_map): Move into...
2100         (struct eh_status): Here.
2101         (struct eh_region): Make 'aka' GCable.
2102         (free_eh_status): Don't need to specially handle
2103         exception_handler_label_map.
2104         (add_ehl_entry): Update for changes to exception_handler_label_map.
2105         (find_exception_handler_labels): Likewise.
2106         (remove_exception_handler_label): Likewise.
2107         (maybe_remove_eh_handler): Likewise.
2108         (for_each_eh_label): Likewise.
2109         (remove_eh_handler): Allocate 'aka' using GGC.
2110         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
2111         to list of includes.
2112
2113         * gengtype.c (write_gc_marker_routine_for_structure): Name
2114         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
2115         (write_gc_types): Arrange for the tests with NULL to be inlined.
2116         (write_gc_roots): Update uses of procedure pointers.
2117         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
2118
2119         * Makefile.in (explow.o): Add dependency on gt-explow.h.
2120         (sdbout.o): Add dependency on gt-sdbout.h.
2121
2122         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
2123         (mem_attrs_htab): Likewise.
2124         (init_emit_once): Don't call ggc_add_deletable_htab.
2125         * fold-const.c (size_htab): Use gengtype to clear unused entries.
2126         (size_int_type_wide): Don't call ggc_add_deletable_htab.
2127         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
2128         parameters, use them, change callers.
2129         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
2130         (write_gc_roots): Handle 'if_marked' option.
2131         (main): Don't need to call set_gc_used_type any more.
2132         * ggc.h (ggc_htab_marked_p): Delete.
2133         (ggc_htab_mark): Delete.
2134         (struct ggc_cache_tab): New.
2135         (gt_ggc_cache_rtab): New declaration.
2136         * ggc-common.c (struct d_htab_root): Delete.
2137         (d_htab_roots): Delete.
2138         (ggc_add_deletable_htab): Delete.
2139         (ggc_htab_delete): Handle new htab-deleting mechanism.
2140         (ggc_mark_roots): Use new htab-deleting mechanism.
2141         * tree.c (type_hash_table): Use gengtype to clear unused entries.
2142         Make static.
2143         (init_obstacks): Don't call ggc_add_deletable_htab.
2144
2145         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
2146         (struct hashed_entry): Likewise.
2147         (nst_method_hash_list): Likewise.
2148         (cls_method_hash_list): Likewise.
2149         (HASH_ALLOC_LIST_SIZE): Delete.
2150         (ATTR_ALLOC_LIST_SIZE): Delete.
2151         * objc/objc-act.c (hash_init): Use ggc to allocate
2152         nst_method_hash_list, cls_method_hash_list.
2153         (hash_enter): Use ggc to allocate; allocate one entry at a time.
2154         (hash_add_attr): Likewise.
2155         (ggc_mark_hash_table): Delete.
2156         (objc_act_parse_init): Delete.
2157         (objc_init): Delete reference to objc_act_parse_init.
2158         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
2159         obstack.h.  Replace references to 'struct hash_table' with htab_t.
2160         (struct symbol_hash_entry): Replace hash header with key field.
2161         (struct file_hash_entry): Replace hash header with key field.
2162         (struct demangled_hash_entry): Replace hash header with key field.
2163         (hash_string_eq): New.
2164         (hash_string_hash): New.
2165         (symbol_hash_newfunc): Delete.
2166         (symbol_hash_lookup): Modify to use htab_t.
2167         (file_hash_newfunc): Delete.
2168         (file_hash_lookup): Modify to use htab_t.
2169         (demangled_hash_newfunc): Delete.
2170         (demangled_hash_lookup): Modify to use htab_t.
2171         (tlink_init): Modify to use htab_t.
2172         * hash.h: Delete.
2173         * hash.c: Delete.
2174         * ggc.h: Delete forward structure declarations.
2175         Delete prototypes for deleted functions.
2176         * ggc-common.c: Don't include hash.h.
2177         (ggc_add_tree_hash_table_root): Delete.
2178         (ggc_mark_tree_hash_table_entry): Delete.
2179         (ggc_mark_tree_hash_table): Delete.
2180         (ggc_mark_tree_hash_table_ptr): Delete.
2181         * gengtype.c (write_gc_structure_fields): Allow param_is option.
2182         (write_gc_marker_routine_for_structure): Use visibility of
2183         the parameter if there is one.
2184         * function.c: Replace hash.h with hashtab.h.  Replace references
2185         to 'struct hash_table *' with htab_t.
2186         (struct insns_for_mem_entry): Include a plain key.
2187         (fixup_var_refs_insns_with_hash): Update to use htab_t.
2188         (insns_for_mem_newfunc): Delete.
2189         (insns_for_mem_hash): Update to use htab_t.
2190         (insns_for_mem_comp): Likewise.
2191         (insns_for_mem_walk): Likewise.
2192         * c-lang.c: Include ggc.h.
2193         * Makefile.in (OBJS): Remove hash.o.
2194         (c-lang.o): Add GGC_H.
2195         (COLLECT2_OBJS): Remove hash.o.
2196         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
2197         (ggc-common.o): Remove hash.h.
2198         (function.o): Remove hash.h, add HASHTAB_H.
2199         (genautomata.o): Remove hash.h, add HASHTAB_H.
2200
2201         * varasm.c (mark_const_str_htab_1): Delete.
2202         (mark_const_str_htab): Delete.
2203         (const_str_htab_del): Delete.
2204         (const_str_htab): Use gengtype to mark.
2205         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
2206         allocate them.
2207         * tree.c (mark_tree_hashtable_entry): Delete.
2208         (mark_tree_hashtable): Delete.
2209         * tree.h (mark_tree_hashtable): Delete prototype.
2210         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
2211         (ggc_mark): Likewise.
2212         (ggc_calloc): New.
2213         (htab_create_ggc): New.
2214         * ggc-common.c (ggc_calloc): New.
2215         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
2216         (struct type): Add param_struct structure.
2217         * gengtype.c (param_structs): New.
2218         (adjust_field_type): Handle param_is option.
2219         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
2220         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
2221         (write_gc_structure_fields): Add new PARAM parameter.  Update
2222         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
2223         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
2224         Use it to generate function name.  Update callers.
2225         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
2226         Process them.
2227         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
2228         option.
2229         (main): Define PTR as pointer-to-scalar.  Don't specially
2230         mark deferred_string or ehl_map_entry.
2231         * gengtype-yacc.y (PARAM_IS): Add new token.
2232         (externstatic): Use adjust_field_type.
2233         (type_option): Add PARAM_IS.
2234         * gengtype-lex.l: Add rule for typedef of function pointers.
2235         Add rule for PARAM_IS.
2236         (IWORD): Add size_t.
2237         * except.c (exception_handler_label_map): Use gengtype to mark.
2238         (type_to_runtime_map): Likewise.
2239         (mark_ehl_map_entry): Delete.
2240         (mark_ehl_map): Delete.
2241         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
2242         (t2r_mark_1): Delete.
2243         (t2r_mark): Delete.
2244         * Makefile.in (gtype-desc.o): Correct dependencies.
2245         (GTFILES): Add hashtab.h.
2246         (genautomata.o): Actually uses hashtab.h.
2247
2248         * Makefile.in (stringpool.o): Add $(GGC_H).
2249         (dwarf2asm.o): Likewise.
2250         (GTFILES): Add hashtable.h.
2251         * c-common.h (struct c_common_identifier): Use gengtype.
2252         * c-decl.h (c_mark_tree): Delete.
2253         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
2254         * c-tree.h (struct lang_identifier): Use gengtype.
2255         (union lang_tree_node): New.
2256         (c_mark_tree): Delete prototype.
2257         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
2258         dwarf2_debug_hooks.
2259         * gengtype-lex.l (IWORD): Allow 'bool'.
2260         (ptr_alias): Match.
2261         * gengtype-yacc.y (ALIAS): New token.
2262         (type_option): New rule.
2263         (option): Use type_option.
2264         * gengtype.c (process_gc_options): New.
2265         (set_gc_used_type): Use it.
2266         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
2267         Add new variable 't' to hold the type of the field being processed.
2268         Add more error checking.  Use UNION_P when looking at 'desc' option.
2269         Handle language-specific structures containing other
2270         language-specific structures.
2271         (write_gc_types): Handle 'ptr_alias' option.
2272         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
2273         * ggc-common.c (ggc_pending_trees): Delete.
2274         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
2275         (ggc_mark_trees): Delete.
2276         (gt_ggc_m_tree_node): Delete.
2277         * ggc.h (ggc_pending_trees): Delete.
2278         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
2279         * hashtable.h (ht_identifier): Use gengtype.
2280         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
2281         * langhooks.h (struct lang_hooks): Delete mark_tree.
2282         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
2283         anyway.
2284         * system.h: Poison LANG_HOOKS_MARK_TREE.
2285         * tree.c (tree_node_structure): New.
2286         * tree.h (struct tree_common): Use gengtype.
2287         (struct tree_int_cst): Likewise.
2288         (struct tree_real_cst): Likewise.
2289         (struct tree_string): Likewise.
2290         (struct tree_complex): Likewise.
2291         (struct tree_vector): Likewise.
2292         (struct tree_identifier): Likewise.
2293         (struct tree_list): Likewise.
2294         (struct tree_vec): Likewise.
2295         (struct tree_exp): Likewise.
2296         (struct tree_block): Likewise.
2297         (struct tree_type): Likewise.
2298         (struct tree_decl): Likewise.
2299         (enum tree_structure_enum): New.
2300         (union tree_node): Use gengtype, with an alias.
2301         (tree_node_structure): Prototype.
2302         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
2303
2304         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
2305         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
2306         to LANG_HOOKS_FUNCTION_FINAL.
2307         * Makefile.in (GTFILES): Add bitmap.h.
2308         * except.c (struct eh_region): Mark field 'aka' to be skipped.
2309
2310         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
2311         (alpha_init_machine_status): Give proper type.
2312         * Makefile.in (c-lang.o): Depend on gtype-c.h.
2313         (optabs.o): Depend on gt-optabs.h.
2314         (GTFILES): Add optabs.o.
2315         (gt-optabs.h): Add rule.
2316         * optabs.c: Include gt-optabs.h.
2317
2318         * gengtype.c (set_gc_used_type): Correct some errors in last change.
2319         (write_gc_structure_fields): If a field which should be NULL is
2320         not, abort.
2321         * c-pragma.c: Move struct align_stack and variable alignment_stack
2322         out from the ifdef.
2323
2324         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
2325         * config/xtensa/xtensa.c: Include gt-cris.h.
2326         (struct machine_function): Use gengtype to mark.
2327         * config/mmix/mmix.h (struct machine_function): Use gengtype
2328         to mark.
2329         * config/cris/t-cris: Add dependencies for gt-cris.h.
2330         * config/cris/cris.c: Include gt-cris.h.
2331         (struct machine_function): Use gengtype to mark.
2332         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
2333         to mark.
2334         * doc/tm.texi (Per-Function Data): Delete references to
2335         mark_machine_status.
2336         * config/ia64/ia64.c (ia64_override_options): Don't set
2337         mark_machine_status.
2338         * config/i386/i386.c (override_options): Likewise.
2339         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
2340         * config/arm/arm.c (arm_init_expanders): Likewise.
2341         * config/alpha/alpha.c (override_options): Likewise.
2342         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
2343         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
2344         (write_gc_structure_fields): Don't handle 'really' option.
2345         Handle 'maybe_null' option.
2346         (write_gc_types): Handle 'maybe_null' option.
2347         * function.h (struct function): Don't use "really".
2348         (mark_machine_status): Delete declaration.
2349         (mark_lang_status): Delete declaration.
2350         (gt_ggc_mr_machine_function): Delete prototype.
2351         (gt_ggc_mr_language_function): Delete prototype.
2352         * function.c (mark_machine_status): Delete.
2353         (mark_lang_status): Delete.
2354         (gt_ggc_mr_machine_function): Delete.
2355         (gt_ggc_mr_language_function): Delete.
2356         * c-tree.h (mark_c_function_context): Delete prototype.
2357         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
2358         * c-decl.c (struct language_function): Rename from struct
2359         c_language_function.  Update uses.  Use gengtype to mark.
2360         (mark_c_function_context): Delete.
2361         * c-common.h (struct c_language_function): Rename from struct
2362         language_function.
2363         (mark_stmt_tree): Delete prototype.
2364         (c_mark_lang_decl): Delete prototype.
2365         (mark_c_language_function): Delete prototype.
2366         * c-common.c (mark_stmt_tree): Delete.
2367         (c_mark_lang_decl): Delete.
2368         (mark_c_language_function): Delete.
2369
2370         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
2371         (lang_bitmap): New typedef.  Use where appropriate.
2372         (struct type): Add gc_used field, lang_struct field.
2373         (UNION_P): New macro.
2374         (new_structure): New prototype.
2375         (find_structure): Remove 'pos' parameter.  Change all callers.
2376         * gengtype-lex.l: Update for changes to find_structure.
2377         * gengtype-yacc.y (typedef_struct): Use new_structure.
2378         (yacc_ids): Suppress warning.
2379         (type): Use new_structure.
2380         * gengtype.c (string_type): Update for changes to struct type.
2381         (find_structure): Just find a structure, don't worry about
2382         creating one.
2383         (new_structure): New.
2384         (note_yacc_type): Use new_structure.
2385         (set_gc_used_type): New.
2386         (set_gc_used): New.
2387         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
2388         (write_gc_types): Handle TYPE_LANG_STRUCT.
2389         (write_gc_marker_routine_for_structure): New.
2390         (main): Call set_gc_used.  Add some calls to set_gc_used_type
2391         for places where GCC doesn't use gengtype properly yet.
2392         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
2393         (gt_ggc_m_tree_node): Likewise.
2394
2395         * varasm.c (copy_constant): Call expand_constant if we hit
2396         something we can't recognise.
2397
2398         * ggc-common.c (ggc_mark_rtvec_children): Delete.
2399         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
2400         (lang_mark_false_label_stack): Delete.
2401         * rtl.h (struct rtvec_def): Use gengtype to mark.
2402         * ggc.h (ggc_mark_rtvec): Delete.
2403         (gt_ggc_m_rtvec_def): Delete.
2404         (ggc_mark_nonnull_tree): Delete.
2405         (ggc_mark_rtvec_children): Delete prototype.
2406         (lang_mark_false_label_stack): Delete declaration.
2407
2408         * gengtype.h (note_yacc_type): Add prototype.
2409         * gengtype.c (note_yacc_type): New function.
2410         * gengtype-lex.l: Add lexer support for yacc files.
2411         * gengtype-yacc.y (start): Extract union from yacc files.
2412         (yacc_union): New rule.
2413         (yacc_typematch): New rule.
2414         (yacc_ids): New rule.
2415         (enum_items): Tweak for efficiency.
2416         (optionseq): Likewise.
2417
2418         * c-common.h (struct language_function): Use gengtype.
2419         (struct c_lang_decl): Likewise.
2420         * c-tree.h (struct lang_decl): Likewise.
2421         (struct lang_type): Likewise.
2422         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
2423         tree language substructures.
2424
2425         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
2426         ggc_mark_tree.
2427         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
2428
2429         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
2430
2431         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
2432         mark. Remove 'data.block.cleanup_ptr' field.
2433         (struct stmt_status): Use usual technique to mark struct nesting.
2434         (gt_ggc_mr_nesting_cond): Delete.
2435         (gt_ggc_mr_nesting_loop): Delete.
2436         (gt_ggc_mr_nesting_block): Delete.
2437         (gt_ggc_mr_nesting_case_stmt): Delete.
2438         (expand_start_cond): Set discriminator.
2439         (expand_start_loop): Likewise.
2440         (expand_start_null_loop): Likewise.
2441         (expand_start_bindings_and_block): Set discriminator.  Don't set
2442         deleted fields.
2443         (expand_decl_cleanup): Replace 'cleanup_ptr' with
2444         &thisblock->data.block.cleanups.
2445         (expand_start_case): Set discriminator.
2446         (expand_start_case_dummy): Set discriminator.
2447
2448         * ggc-callbacks.c: Remove.
2449
2450         * gengtype.h (struct type): Add 'u.s.bitmap' field.
2451         (find_structure): Add 'pos' parameter.
2452         * gengtype-lex.l: Update callers to find_structure.
2453         * gengtype-yacc.y: Likewise.
2454         * gengtype.c (find_structure): Allow for structures to be defined
2455         in multiple language backends.
2456         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
2457         (counter): Rename to gc_counter.
2458         (write_gc_structure_fields): Fail when writing out fields for
2459         an incomplete structure.  Ignore arrays of scalars.  Handle
2460         'tree_vec' special.
2461         (write_gc_types): Reset counter for each procedure written.
2462
2463         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
2464         (free_case_nodes): Delete.
2465         (expand_end_case_type): Delete call to free_case_nodes.
2466
2467         * Makefile.in (cselib.o): Include gt-<filename>.h.
2468         (gcse.o): Likewise.
2469         (profile.o): Likewise.
2470         (alias.o): Likewise.
2471         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
2472         alphabetize backend files.
2473         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
2474         * alias.c: Use gengtype for roots.
2475         * c-common.h (struct stmt_tree_s): Use gengtype.
2476         * c-decl.c: Use gengtype for roots.
2477         * cselib.c: Use gengtype for roots.
2478         * expr.c: Use gengtype for roots.
2479         * fold-const.c: Use gengtype for roots.
2480         * gcse.c: Use gengtype for roots.
2481         * gengtype-lex.l: Handle typedefs of function types.
2482         Allow for empty array bounds.
2483         Allow processing to stop on initialisers.
2484         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
2485         (semiequal): New rule.
2486         * gengtype.c (create_file): Tidy output files.
2487         (get_output_file_with_visibility): Fix paren warning.  Fix bug
2488         involving multiple input files mapping to one output file.
2489         (write_gc_structure_fields): Skip arrays of scalars.
2490         (write_gc_types): Tidy output files.
2491         (write_gc_root): New function.
2492         (write_gc_roots): Fix bugs, add support for roots that are
2493         structures.
2494         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
2495         (ggc_mark_tree_ptr): Delete.
2496         (ggc_add_rtx_root): Delete.
2497         (ggc_add_tree_root): Delete.
2498         (ggc_del_root): Delete.
2499         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
2500         allocate struct initial_value_struct.
2501         * profile.c: Use gengtype for roots.
2502         * sdbout.c: Use gengtype for roots.
2503         * varasm.c (mark_weak_decls): Delete unused prototype.
2504         (mark_const_hash_entry): Delete unused function.
2505         * config/darwin-protos.h: Use gengtype for roots.
2506         (machopic_add_gc_roots): Delete.
2507         * config/arm/arm.c: Use gengtype for roots.
2508         * config/arm/arm.h: Use gengtype for roots.
2509         * config/c4x/c4x-protos.h: Use gengtype for roots.
2510         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
2511         * config/d30v/d30v-protos.h: Use gengtype for roots.
2512         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
2513         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
2514         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
2515         * config/ia64/ia64-protos.h: Use gengtype for roots.
2516         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
2517         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
2518         * config/m68hc11/m68hc11.c (z_reg): Make global.
2519         (z_reg_qi): Make global.
2520         (m68hc11_add_gc_roots): Delete.
2521         * config/mcore/mcore-protos.h: Use gengtype for roots.
2522         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
2523         * config/mips/mips.c (mips_add_gc_roots): Delete.
2524         * config/mips/mips.h: Use gengtype for roots.
2525         * config/mmix/mmix.c (override_options): Use gengtype for roots.
2526         * config/mmix/mmix.h: Use gengtype for roots.
2527         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
2528         * config/mn10200/mn10200.h: Use gengtype for roots.
2529         * config/pa/pa.c: Use gengtype for roots, marking.
2530         (struct deferred_plabel): Use GGC, gengtype.
2531         (pa_add_gc_roots): Delete.
2532         (mark_deferred_plabels): Delete.
2533         * config/pj/pj-protos.h: Use gengtype for roots.
2534         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
2535         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
2536         machopic_add_gc_roots.
2537         * config/rs6000/rs6000.h: Use gengtype for roots.
2538         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
2539         (gt-darwin.h): Add rule.
2540         * config/sh/sh.c: Use gengtype for roots.
2541         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
2542         (gt-sh.h): Add rule.
2543         * config/sparc/sparc.c: Use gengtype for roots.
2544         (sparc_add_gc_roots): Delete.
2545         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
2546         (mark_ultrasparc_pipeline_state): Delete.
2547         * config/sparc/sparc.h: Use gengtype for roots.
2548
2549         * Makefile.in (c-parse.o): Update dependencies.
2550         (c-common.o): Likewise.
2551         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
2552         Add dependencies for the files they generate.
2553         * c-common.c: Replace ggc_add_* uses with GTY annotations.
2554         * c-common.h: Likewise.
2555         * c-decl.c: Likewise.
2556         (gt_ggc_mp_binding_level): Delete.
2557         * c-lang.c: Include gtype-c.h.
2558         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
2559         gt-c-parse.h.
2560         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
2561         (gt_ggc_mp_align_stack): Delete.
2562         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
2563         * function.c: Replace ggc_add_* uses with GTY annotations.
2564         (gt_ggc_mp_function): Delete.
2565         * function.h: Replace ggc_add_* uses with GTY annotations.
2566         * gengtype.c (lang_names): New.
2567         (NUM_BASE_FILES): New.
2568         (open_base_files): Create language base files.
2569         (startswith): New.
2570         (get_file_basename): New.
2571         (get_base_file_bitmap): New.
2572         (get_output_file_with_visibility): Rename from get_output_file.
2573         Add more mappings for various C/Objc filenames.
2574         (finish_root_table): New.
2575         (write_gc_roots): Handle dependencies and scoping properly.
2576         * gengtype.h: Add prototypes for new functions.
2577         * ggc-common.c (struct deletable_root): Delete.
2578         (deletables): Delete.
2579         (ggc_add_deletable_root): Delete.
2580         (ggc_mark_roots): No need to deal with deleted functionality.
2581         * ggc.h (ggc_add_deletable_root): Delete prototype.
2582         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
2583         (gtype-objc.h): Add rule to create.
2584         * objc/config-lang.in (gtfiles): New.
2585         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
2586         ggc_add_* with GTY markers.  Include gtype-objc.h.
2587         (ggc_mark_imp_list): Delete.
2588         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
2589         * objc/objc-lang.c: Random Whitespace Change.
2590
2591         * except.h (exception_handler_labels): Delete.
2592         (get_exception_handler_labels): New.
2593         * except.c (exception_handler_labels): Delete.
2594         (struct eh_status): Add exception_handler_labels field.
2595         (doing_eh): Don't add exception_handler_labels as root.
2596         (free_eh_status): Don't need to free exception_handler_labels.
2597         (get_exception_handler_labels): New.
2598         (find_exception_handler_labels): Update for move of
2599         exception_handler_labels.
2600         (remove_exception_handler_label): Likewise.
2601         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
2602         * jump.c (rebuild_jump_labels): Likewise.
2603         * loop.c (find_and_verify_loops): Likewise.
2604         * sched-rgn.c (is_cfg_nonregular): Likewise.
2605
2606         * gengtype.c (write_gc_structure_fields): Handle variable-length
2607         TYPE_ARRAYs.
2608
2609         * varasm.c (struct weak_syms): Use GGC, gengtype.
2610         (mark_weak_decls): Delete.
2611         (weak_decls): Likewise.
2612         (add_weak): Likewise.
2613         (remove_from_pending_weak_list): Likewise.
2614         (init_varasm_once): Likewise.
2615
2616         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
2617         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
2618         stor-layout.c, regclass.c, and lists.c.
2619         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
2620         gt-regclass.h and gt-lists.h on s-gtype.
2621         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
2622         * except.c: Use gengtype for roots.
2623         * explow.c: Use gengtype for roots.  Include gt-explow.h.
2624         * expr.h (init_stor_layout_once): Delete prototype.
2625         * function.c: Use gengtype for roots.
2626         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
2627         * gengtype-yacc.y (start): Can also be an externstatic.
2628         (externstatic): New production.
2629         (struct_fields): Correct array bounds inversion for 2-d arrays.
2630         * gengtype.c (variables): New variable.
2631         (note_variable): New function.
2632         (get_output_file): Include libfuncs.h into gtype-desc.c.
2633         (get_output_file_name): New function.
2634         (write_gc_structure_fields): Suppress warnings.
2635         (write_gc_types): Make static.
2636         (put_mangled_filename): New function.
2637         (write_gc_roots): New function.
2638         (main): Call write_gc_roots.
2639         * gengtype.h (note_variable): Prototype.
2640         (get_output_file_name): Prototype.
2641         (write_gc_types): Delete prototype.
2642         * ggc.h: Clean up unnecessary structure predefinitions.
2643         (struct ggc_root_tab): Define.
2644         (gt_ggc_m_rtx_def): Make function, not macro.
2645         (gt_ggc_m_tree_node): Likewise.
2646         * libfuncs.h: Use gengtype for roots.
2647         * lists.c: Use gengtype for roots.  Include gt-lists.h.
2648         (init_EXPR_INSN_LIST_cache): Delete.
2649         * optabs.c: Use gengtype for roots.
2650         (gt_ggc_mp_optab): Delete.
2651         * optabs.h: Use gengtype for roots.
2652         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
2653         * rtl.h: Use gengtype for roots.
2654         (init_EXPR_INSN_LIST_cache): Delete prototype.
2655         * stor-layout.c: Use gengtype for roots.
2656         Include gt-stor-layout.h.
2657         (init_stor_layout_once): Delete.
2658         * toplev.c: Use gengtype for roots.  Delete calls to deleted
2659         routines.
2660         * tree.c: Use gengtype for roots.
2661         * tree.h: Use gengtype for roots.
2662         * varasm.c: Use gengtype for roots.
2663
2664         * Makefile.in (GTFILES): Add @all_gtfiles@.
2665         * configure: Regenerate.
2666         * configure.in: Construct all_gtfiles from the gtfiles definitions
2667         in config-lang.in.
2668         * gengtype-yacc.y (type): Warn about duplicate structure names.
2669         * gengtype.c (get_output_file): Handle .c files in language
2670         subdirectories.
2671
2672         * Makefile.in (GTFILES): Run gengtype on all the config files
2673         and on the target .c file.
2674         * except.c (mark_eh_region): Delete.
2675         (init_eh_for_function): Use GGC on struct eh_status.
2676         (mark_eh_status): Delete.
2677         (free_eh_status): Use GGC.
2678         (expand_eh_region_start): Use GGC to
2679         (collect_eh_region_array): Allocate last_region_number using GGC.
2680         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
2681         (remove_eh_handler): Let GGC free struct eh_region.
2682         (add_call_site): Use GGC to reallocate call_site_record array.
2683         * function.c (init_machine_status): Update calling sequence.
2684         (mark_machine_status): Likewise.
2685         (mark_lang_status): Likewise.
2686         (prepare_function_start): Update init_machine_status call.
2687         (mark_function_status): Delete.
2688         (maybe_mark_struct_function): Delete.
2689         (ggc_mark_struct_function): Delete.
2690         (gt_ggc_mp_function): New.
2691         (gt_ggc_mr_machine_function): New.
2692         (gt_ggc_mr_language_function): New.
2693         (init_function_once): Use canonical names.
2694         * function.h (struct function): Use gengtype.
2695         (init_machine_status): Return the structure.
2696         (mark_machine_status): Take a 'void *'.
2697         (mark_lang_status): Likewise.
2698         * ggc-common.c (ggc_mark_trees): Use canonical name for
2699         ggc_mark_struct_function.
2700         * tree.h (ggc_mark_struct_function): Delete prototype.
2701         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
2702         (alpha_init_machine_status): Likewise.
2703         (override_options): Use canonical name for alpha_mark_machine_status.
2704         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
2705         * config/arm/arm.h (struct machine_function): Use gengtype.
2706         * config/arm/arm.c (arm_mark_machine_status): Delete.
2707         (arm_init_machine_status): Update calling sequence.
2708         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
2709         * config/cris/cris.c (cris_init_machine_status): Update
2710         calling sequence.
2711         * config/d30v/d30v.h (struct machine_function): Use gengtype.
2712         * config/d30v/d30v.c (d30v_init_machine_status): Update
2713         calling sequence.
2714         (d30v_mark_machine_status): Delete.
2715         * config/i386/i386.c: Include gt-i386.h.
2716         (struct machine_function): Use gengtype.
2717         (ix86_init_machine_status): Update calling sequence.
2718         (ix86_mark_machine_status): Delete.
2719         (override_options): Use canonical namke for ix86_mark_machine_status.
2720         * config/ia64/ia64.h (struct machine_function): Use gengtype.
2721         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
2722         sequence.
2723         (ia64_mark_machine_status): Delete.
2724         (ia64_override_options): Use canonical name for
2725         ia64_mark_machine_status.
2726         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
2727         sequence.
2728         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
2729         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2730         * gengtype.c (get_output_file): Fix warning.
2731         (main): Add prototype to suppress warning.
2732         * tree.c: Remove tree_hash_mark prototype.
2733
2734         * tree.h (init_stmt): Delete prototype.
2735         * toplev.c (lang_independent_init): Don't call init_stmt.
2736         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
2737         (stmt_obstack): Delete.
2738         (POPSTACK): No need to free 'struct nesting'.
2739         (gt_ggc_mr_nesting_cond): Use canonical names.
2740         (gt_ggc_mr_nesting_loop): Use canonical names.
2741         (gt_ggc_mr_nesting_block): Use canonical names.
2742         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
2743         (mark_stmt_status): Delete.
2744         (init_stmt): Delete.
2745         (clear_last_expr): Clear both last_expr_type and last_expr_value.
2746         Use it everywhere that last_expr_type was cleared.
2747         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
2748         (zap_lists): Delete.
2749         * ggc.h (ggc_add_deletable_root): Prototype.
2750         (mark_stmt_status): Remove prototype.
2751         * ggc-common.c (ggc_add_deletable_root): New.
2752         (ggc_mark_roots): Handle deletable roots.
2753         * function.c (ggc_mark_struct_function): Use canonical name
2754         for mark_stmt_status.
2755         * emit-rtl.c (free_sequence_stack): New.
2756         (start_sequence): Use a freelist for sequences.
2757         (end_sequence): Likewise.
2758         (init_emit_once): Add free_sequence_stack as a deleteable root.
2759         * c-pragma.c Include gt-c-pragma.h.
2760         (struct align_stack): Use gengtype.
2761         (push_alignment): Use GGC for struct align_stack.
2762         (mark_align_stack): Delete.
2763         (gt_ggc_mp_align_stack): New.
2764         (init_pragma): Use canonical name for mark_align_stack.
2765         * c-decl.c: Include gt-c-decl.h.
2766         (struct binding_level): Use gengtype.
2767         (make_binding_level): Use GGC; handle the freelist here.
2768         (pop_binding_level): New.
2769         (pushlevel): Move code into make_binding_level.
2770         (push_label_level): Likewise.
2771         (poplevel): Move code into pop_binding_level.
2772         (pop_label_level): Likewise.
2773         (mark_binding_level): Delete.
2774         (gt_ggc_mp_binding_level): New.
2775         (c_init_decl_processing): Use canonical name for mark_binding_level.
2776         Add free_binding_level as deletable root.
2777         (mark_c_function_context): Use canonical name for mark_binding_level.
2778         * Makefile.in (c-decl.o): Add gt-c-decl.h.
2779         (c-pragma.o): Add gt-c-pragma.h.
2780         (GTFILES): Add c-decl.c and c-pragma.c.
2781         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
2782
2783         * tree.c (struct type_hash): Use gengtype.
2784         (init_obstacks): Use canonical name for type_hash_mark.
2785         (type_hash_mark): Delete.
2786         Include gt-tree.h.
2787         * rtl.h (struct mem_attrs): Use gengtype.
2788         * optabs.h (struct optab): Use gengtype.
2789         * optabs.c (expand_binop): Squish signed/unsigned warning.
2790         (mark_optab): Make local, use canonical name, use autogenerated
2791         marker procedure.
2792         (init_optabs): Use canonical name for mark_optab.
2793         (new_optab): Use GGC to allocate optabs.
2794         * ggc.h: Delete mark_optab prototype.
2795         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
2796         mem_attrs marker procedure.
2797         * gengtype.c (get_output_file): Include headers in gtype-desc.c
2798         explicitly rather than deducing them from file names.
2799         (write_gc_structure_fields): Handle arrays of structures.
2800         (main): Return non-zero exit code if errors occur during output.
2801         * emit-rtl.c (mem_attrs_mark): Delete.
2802         (init_emit_once): Use canonical name for mem_attrs marker procedure.
2803         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
2804         (tree.o): Depend on gt-tree.h.
2805         (GTFILES): Add rtl.h, optabs.h, tree.c.
2806         (gt-tree.h): Add it to s-gtype rule.
2807
2808         * .cvsignore: Ignore gengtype flex/bison generated files.
2809         * Makefile.in (GGC_H): Add gtype-desc.h.
2810         (OBJS): Add gtype-desc.o.
2811         (GEN): Add gengtype.
2812         (STAGESTUFF): Add gengtype.
2813         (varasm.o): Add gt-varasm.h.
2814         (stmt.o): Add gt-stmt.h.
2815         (except.o): Add gt-except.h.
2816         (integrate.o): Add gt-integrate.h.
2817         (GTFILES): New.
2818         Add new rules for new files.
2819         * configure: Regenerate.
2820         * configure.in: Correct defaults.h paths.
2821         * emit-rtl.c (mark_sequence_stack): Delete.
2822         (mark_emit_status): Delete.
2823         (start_sequence): Allocate sequence structures using GGC.
2824         (end_sequence): Allocate sequence structures using GGC.
2825         * except.c: Use gengtype for various structures.  Include
2826         gt-except.h.
2827         * expr.c (mark_expr_status): Delete.
2828         * function.c: Use gengtype for various structures.  Include
2829         gt-function.h.
2830         (mark_function_status): Use standard gt_ggc names for marker functions.
2831         (ggc_mark_struct_function): Likewise.
2832         * function.h: Use gengtype for various structures.
2833         * gengtype-lex.l: New file.
2834         * gengtype-yacc.y: New file.
2835         * gengtype.c: New file.
2836         * gengtype.h: New file.
2837         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
2838         the standard names.  Remove some now-unnecessary prototypes.
2839         * integrate.c: Use gengtype for various structures.  Include
2840         gt-integrate.h.
2841         (mark_hard_reg_initial_vals): Delete.
2842         * integrate.h (mark_hard_reg_initial_vals): Delete.
2843         * stmt.c: Use gengtype for various structures.  Include
2844         gt-stmt.h.
2845         (mark_case_node): Delete.
2846         (mark_goto_fixup): Delete.
2847         (mark_stmt_status): Use standard gt_ggc names for marker functions.
2848         * system.h: Define GTY to empty.   In flex/bison files,
2849         don't poison malloc or realloc, instead just define them to
2850         xmalloc and xrealloc.
2851         * varasm.c: Use gengtype for various structures.  Include
2852         gt-varasm.h.  Use standard gt_ggc names for marker functions.
2853         (mark_pool_constant): Delete.
2854         (mark_varasm_status): Delete.
2855         (decode_rtx_const): #if 0 out non-typesafe hack.
2856
2857         * function.h (free_lang_status): Mark as obsolete.
2858         * function.c (free_lang_status): Mark as obsolete.
2859         * c-decl.c (push_c_function_context): Use GC to allocate and free
2860         struct language_function.
2861         (pop_c_function_context): Likewise.
2862         * c-common.c (mark_c_language_function): Mark struct
2863         language_function.
2864
2865         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
2866         Document that the machine_function structures must be allocated
2867         using GC.  Update mark_machine_status documentation.
2868         * function.h: Don't declare free_machine_status.
2869         * function.c (free_machine_status): Don't define.
2870         (free_after_compilation): Don't call free_machine_status.
2871         (ggc_mark_struct_function): Mark f->machine.  Call
2872         mark_machine_status only on non-NULL pointers.
2873         * system.h: Poison free_machine_status.
2874         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
2875         struct machine_function.
2876         (xtensa_free_machine_status): Delete.
2877         (override_options): Don't set free_machine_status.
2878         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
2879         free_machine_status.
2880         (rs6000_init_machine_status): Use GC on struct machine_function.
2881         (rs6000_free_machine_status): Delete.
2882         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
2883         machine_function.
2884         (ia64_mark_machine_status): Likewise.
2885         (ia64_free_machine_status): Delete.
2886         (ia64_override_options): Don't set free_machine_status.
2887         * config/i386/i386.c (override_options): Don't set
2888         free_machine_status.
2889         (ix86_init_machine_status): Use GC on struct machine_function.
2890         (ix86_mark_machine_status): Likewise.
2891         (ix86_free_machine_status): Delete.
2892         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
2893         machine_function.
2894         (d30v_mark_machine_status): Likewise.
2895         (d30v_free_machine_status): Delete.
2896         (d30v_init_expanders): Don't set free_machine_status.
2897         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
2898         machine_function.
2899         (arm_init_machine_status): Likewise.
2900         (arm_free_machine_status): Delete.
2901         (arm_init_expanders): Don't set free_machine_status.
2902         * config/alpha/alpha.c (override_options): Don't set
2903         free_machine_status.
2904         (alpha_init_machine_status): Use GC on struct machine_function.
2905         (alpha_mark_machine_status): Likewise.
2906         (alpha_free_machine_status): Delete.
2907
2908         * varasm.c (compare_constant): Fix typo.
2909
2910         * varasm.c: Don't include obstack.h.
2911         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
2912         (struct rtx_const): Give substructures names, improve formatting.
2913         (struct constant_descriptor): Delete.
2914         (struct constant_descriptor_tree): New, based on constant_descriptor.
2915         (const_hash_table): Is a hash table of trees.
2916         (mark_const_hash_entry): Is used for hashes of trees.  Mark
2917         constant_descriptor_tree structure.
2918         (mark_const_str_htab_1): Mark deferred_string structure.
2919         (compare_constant): Rewrite to compare trees.
2920         (compare_constant_1): Delete.
2921         (record_constant): Delete.
2922         (record_constant_1): Delete.
2923         (output_constant_def): Use struct constant_descriptor_tree.
2924         Don't duplicate trees twice.
2925         (struct constant_descriptor_rtx): New.
2926         (struct pool_constant): Used for rtx constants.
2927         (init_varasm_status): Update for change to struct varasm_status.
2928         (mark_varasm_status): Likewise.
2929         (free_varasm_status): Delete.
2930         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
2931         (record_constant_rtx): Likewise.
2932         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
2933         (force_const_mem): Likewise.
2934         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
2935         * function.c (free_after_compilation): Don't use free_varasm_status.
2936         * function.h: Don't prototype free_varasm_status.
2937
2938         * ggc-common.c (ggc_realloc): Handle X being NULL.
2939
2940         * ggc-common.c (ggc_realloc): New function.
2941         * ggc.h: Prototype it.
2942         * emit-rtl.c (free_emit_status): Delete.
2943         (init_emit): Allocate emit subarrays using GC.
2944         (gen_reg_rtx): Reallocate subarrays using GC.
2945         (init_emit): Use GC to allocate 'struct emit_status' and its
2946         subarrays.
2947         (mark_emit_status): Mark structure and its subarrays.
2948         * stmt.c (free_stmt_status): Delete.
2949         * expr.c (free_expr_status): Delete.
2950         * function.h: Remove prototypes for deleted functions.
2951         * function.c (free_after_compilation): Don't use deleted functions.
2952         Don't call free() on x_parm_reg_stack_loc.
2953         (free_after_parsing): Don't use free_stmt_status.
2954         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
2955         (mark_function_status): Mark x_parm_reg_stack_loc.
2956
2957         * varasm.c (init_varasm_status): Use GC to allocate
2958         'struct varasm_status' and its fields x_const_rtx_hash_table
2959         and x_const_rtx_sym_hash_table.
2960         (mark_varasm_status): Mark them.
2961         (free_varasm_status): Use GC to free them.
2962         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
2963         (mark_expr_status): Mark the structure itself.
2964         (free_expr_status): Use GC to free the structure.
2965         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
2966         (mark_stmt_status): Mark the 'struct stmt_status' itself.
2967         (init_stmt_for_function): Allocate the structure for GC.
2968
2969         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
2970         (equate_type_number_to_die): Likewise.
2971         * tree.h (TYPE_SYMTAB_DIE): New macro.
2972         (struct die_struct): Predeclare.
2973         (struct tree_type): Add field symtab.die.   Add a tag
2974         to the union type of field symtab.
2975
2976         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
2977         'struct rtvec_def *', not 'struct rtvec_def'.
2978
2979         * function.h (original_arg_vector): Make a real rtvec.
2980         * function.c (ggc_mark_struct_function): Adjust.
2981         * integrate.c (expand_inline_function): Adjust.
2982
2983 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
2984
2985         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
2986         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
2987         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
2988         (TARGET_VERSION_CPU): Define according to the
2989         default target.
2990         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
2991         TARGET_VERSION_CPU.
2992         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
2993         if TARGET_SHMEDIA64.
2994         (LINK_DEFAULT_CPU_EMUL): Define according to the
2995         default target.
2996         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
2997         (SUBTARGET_LINK_SPEC): Define.
2998         (LINK_SPEC): Use SH_LINK_SPEC.
2999         (ASM_SPEC): Remove.
3000         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
3001         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
3002         and TARGET_SHMEDIA64 which abort, for now.
3003         * config/sh/t-netbsd-sh5: New file.
3004         * config/sh/t-netbsd-sh5-32: New file.
3005         * config/sh/t-netbsd-sh5-64: New file.
3006
3007 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
3008             Richard Henderson  <rth@redhat.com>
3009
3010         * config/alpha/alpha.c (reg_or_const_int_operand): New.
3011         (some_operand, input_operand): Accept CONST_VECTOR.
3012         (alpha_extra_constraint): Add 'W'.
3013         (alpha_expand_zap_mask): New.
3014         (alpha_expand_builtin_vector_binop): New.
3015         (enum alpha_builtin): New.
3016         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
3017         (alpha_init_builtins, alpha_expand_builtin): New.
3018         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
3019         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
3020         (PREDICATE_CODES): Update.
3021         * config/alpha/alpha-protos.h: Update.
3022         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
3023         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
3024         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
3025         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
3026         (movv2si, movv2si_fix, movv2si_nofix): New.
3027         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
3028         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
3029         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
3030         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
3031         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
3032         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
3033         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
3034         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
3035         builtin_unpkbw, unpkbw): New.
3036         * doc/extend.texi (Alpha Built-in Functions): New.
3037
3038 2002-06-03  Richard Henderson  <rth@redhat.com>
3039
3040         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
3041         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
3042
3043 2002-06-03  Richard Henderson  <rth@redhat.com>
3044
3045         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
3046
3047         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
3048         (const0_operand): New.
3049         (reg_or_fp0_operand, fp0_operand): Remove.
3050         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3051         * config/alpha/alpha-protos.h: Update.
3052         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
3053         and fp0_operand with reg_or_0_operand and const0_operand.
3054
3055 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
3056
3057         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
3058
3059 2002-06-03  Roger Sayle  <roger@eyesopen.com>
3060
3061         * gcse.c (cprop_jump): Use single_set to get the pattern
3062         from the setcc argument.
3063
3064 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
3065
3066         * diagnostic.h (diagnostic_count): Move from output_buffer to
3067         diagnostic_context.
3068         (diagnostic_kind_count): Adjust definition.
3069
3070 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
3071
3072         * except.c (except.c): Do not rebuild CFG.
3073         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
3074         optimization.
3075
3076 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
3077
3078         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
3079         * toplev.c: Include cfglahout.h
3080         * Makefile.in (toplev.c): Add dependnecy.
3081
3082 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
3083
3084         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
3085         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
3086         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
3087
3088 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
3089
3090         * config/ns32k/netbsd.h: Update copyright years.
3091         (TARGET_OS_CPP_BUILTINS): Define.
3092         (CPP_PREDEFINES): Remove.
3093         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
3094         (TARGET_CPU_CPP_BUILTINS): Define.
3095
3096 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
3097
3098         * emit-rtl.c: Fix formatting.
3099         * errors.h: Likewise.
3100         * except.c: Likewise.
3101         * explow.c: Likewise.
3102         * expmed.c: Likewise.
3103         * expr.c: Likewise.
3104         * expr.h: Likewise.
3105
3106 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
3107
3108         * config/h8300/elf.h: Fix formatting.
3109         * config/h8300/rtems.h: Likewise.
3110
3111 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
3112
3113         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
3114
3115 2002-06-02  Tom Tromey  <tromey@redhat.com>
3116
3117         * fixinc/fixincl.x: Rebuilt.
3118         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
3119
3120 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3121
3122 config/i370:
3123         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
3124         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
3125         * mvs.h: Similarly.
3126         * oe.h: Similarly.
3127
3128 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
3129
3130         * final.c (final):  Allow notes to not have computed addresses;
3131         kill no longer needed STACK_REGS ifdef.
3132
3133 2002-06-02  Richard Henderson  <rth@redhat.com>
3134
3135         * gcse.c (bypass_conditional_jumps): Fix typo last change.
3136
3137 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3138
3139         * loop.c (emit_prefetch_instructions): Properly place the address
3140         computation.
3141
3142 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
3143
3144         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
3145         (set_block_for_insn): Turn into macro.
3146         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
3147         * cfglayout.c (insn_scopes): Kill.
3148         (scope_to_insns_initialize): Do not use insn_scopes.
3149         (scope_to_insns_finalize): Likewise.
3150         (duplicate_insn_chain): Likewise.
3151         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
3152         * cfgrtl.c (basic_block_for_insn): Kill.
3153         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
3154         (create_basic_block_structure): Use reorder_insns.
3155         (compute_bb_for_insn): Do not use basic_block_for_insn.
3156         (merge_blocks_nomove): Likewise.
3157         (update_bb_for_insn): Likewise.
3158         (verify_flow_info): Likewise.
3159         (set_block_for_insn): Kill.
3160         * combine.c (try_combine): Update gen_rtx_INSN call.
3161         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
3162         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
3163         scopes and BBs.
3164         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
3165         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
3166         Clear BB.
3167         (emit_insns_after): Simplify.
3168         (emit_copy_of_insn_after): Copy scope.
3169         * final.c (final_start_function): Lower scopes.
3170         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
3171         * integrate.c (copy_insn_list): Cope scopes.
3172         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
3173         * loop.c (loop_optimize): Do not care block notes.
3174         * print-rtl.c (print_rtx): Print BB.
3175         * recog.c (apply_change_group): Simplify.
3176         * rtl.c (copy_rtx): Handle 'B'.
3177         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
3178         * rtl.h (Field accessors): Update indexes.
3179         * sched-ebb.c (schedule_ebbs): Do not lower notes.
3180         * sched-rgn.c (schedule_insns): Likewise.
3181         * toplev.c (rest_of_compilation): Lower notes.
3182         * unroll.c (unroll_loop): Do not care scoping notes.
3183         (copy_loop_body): Copy scopes.
3184
3185 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3186
3187 config/h8300:
3188         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
3189         SUBTARGET_SPEC.
3190         * rtems.h: Similarly.
3191         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
3192         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
3193         (TARGET_CPU_CPP_BUILTINS): Use.
3194
3195 2002-06-02  Richard Henderson  <rth@redhat.com>
3196
3197         * alias.c: Include target.h.
3198         (mark_constant_function): Use targetm.binds_local_p instead
3199         of checking TREE_PUBLIC ourselves.
3200         * Makefile.in (alias.o): Add TARGET_H.
3201
3202 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3203
3204         * c-lex.c: Update copyright and file description.
3205
3206 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3207
3208         * config/fr30/fr30.h: Update to new CPP macros.
3209
3210 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3211
3212         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
3213
3214 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3215             Zack Weinberg <zack@codesourcery.com>
3216
3217         * c-common.c (c_common_init): Override cpplib's default
3218         warn_long_long setting.
3219         * c-lex.c (lex_number): Replace with interpret_integer,
3220         interpret_float, narrowest_unsigned_type and
3221         narrowest_signed_type, taking advantage of the new
3222         cpplib functionality.
3223         * cpperror.c (_cpp_begin_message): If a warning is turned
3224         into an error, avoid printing "warning:".
3225         * cppexp.c (cpp_num_sign_extend): New.
3226         * cppinit.c: Update comment.
3227         * cpplib.h (cpp_num_sign_extend): New.
3228         * tree.h: Update comment.
3229
3230 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
3231
3232         * diagnostic.h (struct diagnostic_context):  Add new member
3233         internal_error.
3234         (internal_error_function): Remove declaration.
3235         * diagnostic.c (internal_error_function): Remove definition..
3236         (internal_error): Adjust use.
3237
3238 2002-06-02  Richard Henderson  <rth@redhat.com>
3239
3240         * rtl.h (CC0_P): New.
3241         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
3242         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
3243         (bypass_block): Save old dest block for dump text.
3244         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
3245         Allow only true SET insns, not single_set.
3246
3247 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
3248
3249         * diagnostic.c (diagnostic_finish): Rename to output_flush.
3250         (clear_disgnostic_info): Rename to output_clear_data.  Use false
3251         instead of 0 for boolean value.
3252         Adjust function call throughout.
3253
3254 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
3255
3256         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
3257         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
3258
3259 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3260
3261         * d30v.h (CPP_PREDEFINES): Replace with
3262         (TARGET_CPU_CPP_BUILTINS): New.
3263
3264 2002-06-02  Roger Sayle  <roger@eyesopen.com>
3265
3266         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
3267
3268 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
3269
3270         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
3271
3272 2002-06-02  Richard Henderson  <rth@redhat.com>
3273
3274         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
3275
3276 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3277
3278         Support for C++ constructors/destructors.
3279         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
3280         instead of looping if main() returns.
3281         (asm_file_start): Output global symbols that cause .data and .bss
3282         initialization code to be linked in, unconditionally for now.
3283         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
3284         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
3285         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3286         (LIBSTDCXX): New.
3287         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
3288         (__tablejump__): New.
3289         (__do_copy_data, __do_clear_bss): New.
3290         (__do_global_ctors, __do_global_dtors): New.
3291         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
3292         _ctors, _dtors.
3293
3294 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3295
3296         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
3297         (CPP_SPEC, CPP_PREDEFINES): Kill.
3298         * c4x/rtems.h (CPP_PREDEFINES): Kill.
3299         (TARGET_OS_CPP_BUILTINS): New.
3300
3301 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
3302
3303         * Makefile.in (tracer.o): New.
3304         * params.def (TRACER_*): New options.
3305         * rtl.h (tracer): Declare.
3306         * timevar.def (TV_TRACER): New.
3307         * toplev.c (dump_file_index): Add DFI_tracer.
3308         (dump_file_info): Add tracer.
3309         (flag_tracer): New.
3310         (lang_indepdenent_options): Add tracer.
3311         (rest_of_compilation): Call tracer.
3312         * tracer.c: New file.
3313         * invoke.texi (-ftracer): Document.
3314         (--param tracer-*): Document.
3315
3316 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
3317
3318         * tree-inline.c (expand_call_inline): Make the statement
3319         expression we generate have a COMPOUND_STMT.
3320
3321 2002-06-01  Roger Sayle  <roger@eyesopen.com>
3322
3323         * gcse.c (cprop_cc0_jump): Function deleted.
3324         (cprop_jump): Take an additional argument which is the possibly
3325         NULL cc setting insn immediately before the conditional jump.
3326         When a MODE_CC set is present, substitute it into the JUMP_INSN
3327         before attempting the constant propagation.
3328         (cprop_insn):  Recognize cc setters followed by conditional jumps
3329         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
3330         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
3331         (find_bypass_set): New function based upon find_avail_set used by
3332         cprop, but finds constant expressions available at the end of
3333         basic blocks.
3334         (bypass_block): New function.  Given a basic block that begins
3335         with a conditional jump and multiple incoming edges, perform
3336         the jump bypass optimization.
3337         (bypass_conditional_jumps): New function.  Call bypass_block with
3338         each suitable basic block in the CFG using a simple single pass.
3339
3340 2002-06-01  Roger Sayle  <roger@eyesopen.com>
3341
3342         * tree.c (real_minus_onep): New function to test for -1.0.
3343         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
3344
3345 2002-06-01  Roger Sayle  <roger@eyesopen.com>
3346
3347         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
3348         and "!p && !q" into "(p|q) == 0" under suitable conditions.
3349
3350 2002-06-01  Andreas Jaeger  <aj@suse.de>
3351
3352         * cppexp.c (cpp_classify_number): Cast precission to int for
3353         correct printf format.
3354
3355 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3356
3357         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
3358         expected, but don't really exist: atmega83, atmega85, attiny10.
3359         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
3360         emulations for all devices.
3361         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
3362         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
3363
3364 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
3365
3366         * config/h8300/h8300-protos.h: Add a prototype for
3367         h8300_shift_needs_scratch_p.
3368         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
3369         * config/h8300/h8300.h (OK_FOR_R): New.
3370         (OK_FOR_S): Likewise.
3371         (OK_FOR_T): Likewise.
3372         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
3373         * config/h8300/h8300.md (anonymous shift patterns): Use
3374         constraints R, S, and T.
3375
3376 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3377
3378         * basic-block.h (struct basic_block_def): New field loop_father.
3379         (BB_VISITED): New flag.
3380         (struct loop): New field pred, removed field shared.
3381         (struct loops): New field parray.
3382         (LOOP_EXITS_DOMS): Removed.
3383         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
3384         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
3385         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
3386         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
3387         verify_loop_structure): Declare.
3388         * cfg.c (entry_exit_blocks): Initialize loop_father field.
3389         * cfganal.c (dfs_enumerate_from): New function.
3390         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
3391         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3392         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
3393         flow_loop_dump, flow_loops_dump, flow_loops_free,
3394         flow_loop_tree_node_add, flow_loop_level_compute,
3395         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
3396         flow_loop_outside_edge_p): Modified for new infrastructure.
3397         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
3398         redirect_edge_with_latch_update, flow_loop_free): New static functions.
3399         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
3400         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
3401         find_common_loop, verify_loop_structure, loop_latch_edge,
3402         loop_preheader_edge): New functions.
3403         (flow_loops_cfg_dump): Do not show dominators, as this information
3404         does not remain up to date long.
3405         (flow_loops_find): Store results in new format.
3406         * predict.c (propagate_freq, estimate_probability,
3407         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
3408         infrastructure.
3409
3410 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
3411
3412         * except.c (nothrow_function_p): Walk epilogue delay list
3413         checking the insn, not the chain for potential throws.
3414
3415 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
3416
3417         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
3418         (install): Refer to install-cpp directly.
3419         (uninstall-cpp): Folded into uninstall rule.
3420         * configure.in: Delete all code relating to --disable-cpp.
3421         * configure: Regenerate.
3422         * config/t-install-cpp: Delete.
3423
3424 2002-05-31  Richard Henderson  <rth@redhat.com>
3425
3426         * configure.in (HAVE_AS_TLS): Add alpha tests.
3427         * configure: Rebuild.
3428         * config/alpha/alpha.c (TARGET_AS_TLS): New.
3429         (alpha_tls_size, alpha_tls_size_string): New.
3430         (overide_options): Set it.  Always install machine_status hooks.
3431         (input_operand): Accept got tls predicates.
3432         (local_symbol_p): Merge into ...
3433         (local_symbolic_operand): ... here.  Reject tls symbols.
3434         (global_symbolic_operand): Likewise.
3435         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
3436         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
3437         (tp16_symbolic_operand, tp32_symbolic_operand): New.
3438         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
3439         (alpha_encode_section_info): Handle TLS symbols.
3440         (alpha_strip_name_encoding): Likewise.
3441         (alpha_legitimate_address_p): Likewise.
3442         (alpha_legitimize_address): Likewise.
3443         (alpha_expand_mov): Early exit to avoid nop moves.
3444         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
3445         (alpha_init_machine_status, alpha_mark_machine_status,
3446         alpha_free_machine_status): Always define.
3447         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
3448         (print_operand, print_operand_address): Add TLS relocs.
3449         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
3450         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
3451         (TARGET_SWITCHES): Add -mtls-kernel.
3452         (alpha_tls_size, alpha_tls_size_string): New.
3453         (TARGET_OPTIONS): Add -mtls-size=.
3454         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
3455         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
3456         (ASM_OUTPUT_LABELREF): Skip %.
3457         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
3458         (PREDICATE_CODES): Update.
3459         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
3460         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
3461         UNSPEC_TP, UNSPECV_SET_TP): New.
3462         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
3463         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
3464         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
3465         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
3466         (call_value_osf_2_er): Accept anything as op4.
3467         * config/alpha/alpha-protos.h: Update.
3468         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
3469
3470 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
3471
3472         * cppinit.c (append_include_chain): Always pay attention to
3473         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
3474         marker on argument.
3475
3476 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3477
3478         * target.h: Fix formatting.
3479         * timevar.h: Likewise.
3480         * tlink.c: Likewise.
3481         * toplev.c: Likewise.
3482         * toplev.h: Likewise.
3483         * tree.c: Likewise.
3484         * tree-dump.h: Likewise.
3485         * tree.h: Likewise.
3486         * tree-inline.h: Likewise.
3487         * unroll.c: Likewise.
3488         * unwind-dw2.c: Likewise.
3489         * unwind-dw2-fde.c: Likewise.
3490         * unwind-dw2-fde-glibc.c: Likewise.
3491         * unwind-dw2-fde.h: Likewise.
3492         * unwind.h: Likewise.
3493         * unwind-sjlj.c: Likewise.
3494         * varasm.c: Likewise.
3495         * varray.h: Likewise.
3496         * vmsdbg.h: Likewise.
3497         * vmsdbgout.c: Likewise.
3498         * xcoffout.h: Likewise.
3499
3500 2002-05-31  Igor Shevlyakov <igor@microunity.com>
3501
3502         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
3503         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
3504
3505 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
3506
3507         * gcc.c (cpp_unique_options): Remove "-d" options.
3508         (cpp_debug_options): New spec string.
3509         (default_compilers): Use it.
3510         * objc/lang-specs.h: Likewise.
3511
3512 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
3513
3514         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
3515         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
3516         * gcc/mklibgcc.in: Likewise.
3517         * gcc/config/arc/t-arc: Likewise.
3518         * gcc/configure.in: Likewise.
3519         * gcc/configure: Regenerate.
3520
3521 2002-05-31  Stan Shebs  <shebs@apple.com>
3522             Turly O'Connor  <turly@apple.com>
3523
3524         * c-decl.c (struct binding_level): Change int field n_incomplete
3525         to tree list incomplete_list.
3526         (clear_binding_level): Init field with NULL.
3527         (pushdecl): Add incomplete type to list.
3528         (mark_binding_level): Mark the incomplete list.
3529         (finish_struct): Scan the incomplete list for types instead
3530         of all decls in the current binding level.
3531
3532 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3533
3534         * pa.c (output_millicode_call): Add missing '%' characters.
3535         (output_call): Likewise.
3536
3537 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
3538
3539         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
3540         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3541
3542 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
3543
3544         * varasm.c (mark_constant_pool): Walk epilogue delay list
3545         checking the insn, not the chain for potential constants.
3546
3547 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
3548
3549         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
3550
3551 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
3552
3553         * i386.c (classify_argument): Properly handle base types.
3554
3555         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
3556         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
3557         registers.
3558
3559 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3560
3561         * gcse.c (gcse_emit_move_after): New.
3562         (pre_delete, hoist_store): Use it.
3563
3564         * reload1.c (emit_input_reload_insns): Use constrain_operands
3565         instead of constraint_accepts_reg_p to verify optimization.
3566         (constraint_accepts_reg_p): Kill
3567
3568         * reload1.c (reload_cse_delete_noop_set): Kill.
3569         (reload_cse_simplify): use delte_insn_and_edges.
3570
3571 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3572
3573         * cfgloop.c (flow_loops_find): Initialize first and last fields
3574         correctly.
3575
3576 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3577
3578         * c-common.c (builtin_define_std): Correct logic.
3579
3580 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3581
3582         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
3583         (output_call): Likewise.
3584
3585 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3586
3587         * pa.c: Move output.h include after tree.h include.
3588         (pa_asm_output_mi_thunk): Constify identifier lab.
3589
3590 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3591
3592         * config/ns32k/ns32k.h: Define named constants for the
3593         bits in target_flags and use them.
3594         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
3595
3596 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3597
3598         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
3599         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
3600         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
3601         default scheduling model.
3602         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
3603         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
3604         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
3605         * doc/install.texi (hppa*-*-*): Document default scheduling.
3606
3607 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3608
3609         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
3610
3611 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3612
3613         * config.gcc (ns32k-*-netbsd*): Set tm_file to
3614         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
3615         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
3616         netbsd.h, or netbsd-aout.h.
3617
3618 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3619
3620         * longlong.h (count_trailing_zeros): Add missing \, and clean up
3621         whitespace in __ns32000__ case.
3622
3623 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
3624
3625         * expr.c (expand_expr): Output partially zeroed out vectors with
3626         output_constant_def.
3627
3628 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
3629
3630         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
3631         (sh-*-netbsdelf*)
3632         (shl*-*-netbsdelf*): New targets.
3633         * config/sh/netbsd-elf.h: New file.
3634         * config/sh/t-netbsd: New file.
3635
3636 2002-05-30  Richard Henderson  <rth@redhat.com>
3637             Eric Botcazou  <ebotcazou@multimania.com>
3638
3639         PR optimization/6822
3640         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
3641         to unsigned int for op1 comparisons.  Use gen_int_mode.
3642
3643 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
3644
3645         * expmed.c (const_mult_add_overflow_p): New.
3646         * expr.h: Declare it.
3647         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
3648         Don't eliminate the biv if the giv has a constant multiplier and
3649         the rhs argument of the comparison does satisfy the predicate.
3650         Use expand_mult_add to compute the replacement constant.
3651
3652 2002-05-30  Osku Salerma  <osku@iki.fi>
3653
3654         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
3655         (c_common_get_alias_set): Handle it.
3656         * doc/extend.texi: Document it.
3657
3658 2002-05-30  Richard Henderson  <rth@redhat.com>
3659
3660         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
3661         * toplev.c (process_options): Don't check it.
3662         * doc/tm.texi: Don't document it.
3663         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
3664         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
3665         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
3666         frame pointer optimization if current_function_profile.
3667
3668 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3669
3670         * langhooks.c: Fix formatting.
3671         * langhooks.h: Likewise.
3672         * lcm.c: Likewise.
3673         * libgcc2.c: Likewise.
3674         * lists.c: Likewise.
3675         * local-alloc.c: Likewise.
3676         * loop.c: Likewise.
3677         * loop.h: Likewise.
3678
3679 2002-05-30  Marc Espie <espie@openbsd.org>
3680
3681         * config.gcc (sparc64-*-openbsd*): New.
3682         * config/sparc/openbsd1-64.h: New.
3683         * config/sparc/openbsd64.h: New.
3684
3685 2002-05-30  Jeff Law <law@redhat.com>
3686
3687         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
3688         a dead insn with a REG_RETVAL note when the entire libcall is not
3689         dead and remove the associated REG_LIBCALL note at the same time.
3690
3691 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
3692
3693         * lcm.c (output.h): #include.
3694         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
3695         as an ordinary block.
3696         (optimize_mode_switching): Don't pretend that the exit block is
3697         an ordinary block, or handle sucessors of entry block specially.
3698         Instead, split edges from entry block and to exit block, and
3699         put a computing definition on the thus gained post-entry-block,
3700         and a need on the pre-exit-block.
3701
3702 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
3703
3704         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
3705         * rtl.texi: Document 'B'
3706
3707 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
3708
3709         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
3710         at run-time.
3711         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
3712
3713 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
3714
3715         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
3716         const0_rtx instead of NULL_RTX when in error.
3717         (altivec_expand_abs_builtin): Same.
3718         (rs6000_expand_binop_builtin): Same.
3719         (altivec_expand_predicate_builtin): Same.
3720         (altivec_expand_stv_builtin): Same.
3721         (rs6000_expand_ternop_builtin): Same.
3722         (altivec_expand_builtin): Same.
3723
3724 2002-05-29  David S. Miller  <davem@redhat.com>
3725
3726         * rtl.h (clear_emit_caches): Delete.
3727         * integrate.c (output_inline_function): Don't call it.
3728         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
3729         (clear_emit_caches): Delete definition.
3730         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
3731
3732 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
3733
3734         * config/mmix/mmix.c: Include real.h.
3735         (mmix_constant_address_p): Remove redundant test before switch.
3736
3737 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3738
3739         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
3740         only if not already defined.
3741
3742 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3743
3744         * config/h8300/h8300-protos.h: Remove prototypes for
3745         ok_for_bclr and small_power_of_two.
3746         * config/h8300/h8300.c (small_power_of_two): Remove.
3747         (ok_for_blcr): Likewise.
3748         (fix_bit_operand): Make WHAT deal with an integer instead of a
3749         constraint character.
3750         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
3751         (CONST_OK_FOR_P): Likewise.
3752         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
3753         CONST_OK_FOR_P any more.
3754         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
3755         of fix_bit_operand.
3756         (iorqi3): Likewise.
3757         (xorqi3): Likewise.
3758
3759 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3760
3761         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3762         (CPP_PREDEFINES): Make sure this is undefined.
3763         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
3764         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
3765         or -U__MIPSEB__ before defining one or the other.  Instead,
3766         use %(subtarget_endian_default) if neither -EB nor -EL are
3767         specified.
3768         (SUBTARGET_EXTRA_SPECS): Define.
3769         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
3770         %(netbsd_cpp_spec).
3771
3772 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3773
3774         * doc/md.texi (Patterns): Note pattern condition pitfall
3775         for unnamed insn.
3776
3777 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
3778
3779         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
3780         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
3781         ternary operations from here...
3782         (rs6000_expand_builtin): ...to here.
3783         New argument expandedp.
3784         Change all instances of altivec_expand_binop_builtin to
3785         rs6000_expand_binop_builtin.
3786         (altivec_expand_unop_builtin): Rename to
3787         rs6000_expand_unop_builtin.
3788         (altivec_expand_binop_builtin): Rename to
3789         rs6000_expand_binop_builtin.
3790         (altivec_expand_ternop_builtin): Rename to
3791         rs6000_expand_ternop_builtin.
3792
3793 2002-05-29  Richard Henderson  <rth@redhat.com>
3794
3795         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
3796         (TARGET_BI_ARCH): Likewise.
3797         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
3798         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
3799         (TARGET_64BIT_DEFAULT): Default to 0.
3800         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
3801
3802 2002-05-29  Richard Henderson  <rth@redhat.com>
3803
3804         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
3805         (get_pc_thunk_name): New.
3806         (output_set_got): Use it.
3807         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
3808         into linkonce sections.
3809
3810 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3811
3812         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3813         (CPP_PREDEFINES): Make sure this is undefined.
3814         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
3815         (CPP_SUBTARGET_SPEC): Don't provide different versions for
3816         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
3817         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
3818         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
3819         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3820         (CPP_PREDEFINES): Make sure this is undefined.
3821         (SUBTARGET_EXTRA_SPECS): Define.
3822         (CPP_SPEC): Use %(netbsd_cpp_spec).
3823
3824 2002-05-29  Jeff Law <law@redhat.com>
3825
3826         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
3827
3828         * flow.c (propagate_one_insn): Do not remove a dead insn if it
3829         contains a REG_RETVAL note.
3830
3831         * haifa-sched (sched_analyze): Remove another useless clearing
3832         of SCHED_GROUP_P I missed yesterday.
3833
3834         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
3835         * pa.c (pa_asm_output_mi_thunk): New function.
3836         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
3837
3838 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3839             Marek Michalkiewicz  <marekm@amelek.gda.pl>
3840
3841         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
3842         (avr_asm_only_p): Make non-static.
3843         (enum avr_arch): Remove.
3844         (avr_arch_types): New.
3845         (avr_mcu_types): Update.
3846         (avr_override_options): Use avr_arch_types table instead of switch.
3847         * avr.h (CPP_PREDEFINES): Die.
3848         (avr_base_arch_macro, avr_extra_arch_macro): New.
3849         (TARGET_CPU_CPP_BUILTINS): New.
3850         (CPP_SPEC, EXTRA_SPECS): Simplify.
3851         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
3852         CPP_AVR5_SPEC): Die.
3853
3854 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3855
3856         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3857         NETBSD_OS_CPP_BUILTINS_AOUT.
3858         (SUBTARGET_EXTRA_SPECS): Define.
3859         (CPP_SPEC): Use %(netbsd_cpp_spec).
3860
3861 2002-05-29  Richard Henderson  <rth@redhat.com>
3862
3863         * config/i386/i386.c (ix86_output_function_epilogue): New.
3864         (TARGET_ASM_FUNCTION_EPILOGUE): New.
3865         (pic_label_name): Remove.
3866         (pic_labels_used): New.
3867         (ix86_asm_file_end): Emit one pc load stub for each register used.
3868         (output_set_got): Generate deep pc load to any register.
3869         (ix86_select_alt_pic_regnum): New.
3870         (ix86_save_reg): Don't save pic register if we can find a valid
3871         call-clobbered replacement.
3872         (ix86_expand_prologue): If we found a valid replacement, renumber
3873         pic_offset_table_rtx.
3874         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
3875         pic_offset_table_rtx after reload.
3876         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
3877         * config/i386/i386.md (set_got): Make insn, not expander.
3878         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
3879
3880 2002-05-29  Richard Henderson  <rth@redhat.com>
3881
3882         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
3883         alignment for alloca.
3884
3885 2002-05-29  Richard Henderson  <rth@redhat.com>
3886
3887         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
3888         (print_operand_address): Only add rip for symbolic addresses
3889         for which we do not have another relocation type.
3890
3891 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3892
3893         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3894         (EXTRA_SPECS): Add netbsd_cpp_spec.
3895         (CPP_SPEC): Use %(netbsd_cpp_spec).
3896         (CPP_PREDEFINES): Remove.
3897         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3898         (EXTRA_SPECS): Define.
3899         (CPP_SPEC): Use %(netbsd_cpp_spec).
3900         (CPP_PREDEFINES): Remove.
3901
3902 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3903
3904         PR preprocessor/6844
3905         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
3906         NUL.
3907
3908 2002-05-29  Eric Christopher  <echristo@redhat.com>
3909
3910         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
3911         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
3912
3913 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
3914
3915         * config/fr30/fr30.md: Remove previous restriction on splits.
3916         Enforce conformance through gen_lowpart and cont_int_operand.
3917         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
3918         as the assembler does not support ".bss".
3919
3920 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3921
3922         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3923         (CPP_PREDEFINES): Remove.
3924         (SUBTARGET_EXTRA_SPECS): Define.
3925         (CPP_SPEC): Use %(netbsd_cpp_spec).
3926         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3927         (CPP_PREDEFINES): Remove.
3928         (SUBTARGET_EXTRA_SPECS): Define.
3929         (CPP_SPEC): Use %(netbsd_cpp_spec).
3930         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
3931         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
3932         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
3933         Add netbsd_cpp_spec.
3934         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
3935
3936 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3937             Zack Weinberg <zack@codesourcery.com>
3938
3939         * cppexp.c (cpp_num): Move to cpplib.h.
3940         (CPP_ERROR): Remove.
3941         (interpret_float_suffix, interpret_int_suffix): New.
3942         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
3943         (cpp_classify_number, cpp_interpret_integer): New.
3944         (interpret_number): Remove.
3945         (eval_token): Update to use new routines.
3946         * cpphash.h (cpp_num_part): Move to cpplib.h.
3947         * cppinit.c (cpp_post_options): Set warn_long_long.
3948         * cpplib.h (struct cpp_options): Add warn_long_long.
3949         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
3950         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
3951         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
3952         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
3953         cpp_interpret_integer): New.
3954
3955 2002-05-29  Joel Sherrill <joel@OARcorp.com>
3956
3957         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
3958
3959 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3960
3961         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3962         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
3963         (CPP_SUBTARGET_SPEC): Define.
3964         (SUBTARGET_EXTRA_SPECS): Define.
3965         (CPP_SPEC): Remove.
3966
3967 2002-05-29  Chris Lattner  <sabre@nondot.org>
3968
3969         * ssa.c (rename_insn_1): Rename uses of undefined registers to
3970         prevent confusion if/when the register is defined.
3971
3972 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3973
3974         PR target/6838
3975         * config/cris/cris.md: Fix typos and thinkos in comments.
3976         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
3977         second alternative.
3978         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
3979         ("*mov_sideqi_mem"): Similar, but for operand 3.
3980         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
3981         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
3982         Remove spurious mode specifier on operand 2.
3983
3984 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3985
3986         * config/h8300/h8300-protos.h: Remove the prototype for
3987         o_operand.
3988         Add prototypes for single_one_operand and single_zero_operand.
3989         * config/h8300/h8300.c (o_operand): Remove.
3990         (single_one_operand): New.
3991         (single_zero_operand): Likewise.
3992         (print_operand): For 'V' operand, and the operand with 0xff.
3993         For 'V' and 'W' operands, do not and the bit position with 7.
3994         * config/h8300/h8300.md (various anonymous patterns): Replace
3995         use of exact_log2 with single_one_operand/single_zero_operand.
3996
3997 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
3998
3999         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
4000
4001 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
4002
4003         * config/s390/s390.c (legitimate_pic_operand_p): Do not
4004         accept symbolic LARL operands.
4005         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
4006         epilogue insns.
4007
4008 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
4009
4010         * config/s390/s390.md (cmpstr_64/31): Mark whole
4011         input registers as used.
4012
4013 2002-05-28  Richard Henderson  <rth@redhat.com>
4014
4015         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
4016         not current_function_uses_pic_offset_table and
4017         current_function_uses_const_pool; examine current_function_profile.
4018         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
4019         input to blockage if needed.
4020         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
4021         (legitimize_pic_address): Likewise.  Set regs_ever_live for
4022         pic_offset_table_rtx when invoked during reload.
4023         * config/i386/i386.h (FINALIZE_PIC): Remove.
4024         * config/i386/i386.md (tablejump): Reformat.  Do not set
4025         current_function_uses_pic_offset_table.
4026         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
4027         (blockage): Accept anything as operand 0.
4028
4029 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
4030
4031         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
4032         common CPP built-ins for all NetBSD a.out targets.
4033         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
4034         common CPP built-ins for all NetBSD ELF targets.
4035         * config/netbsd.h: Add missing notice.
4036         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
4037         for all NetBSD targets.
4038         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
4039         for all NetBSD targets using an LP64 code model.
4040         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
4041         NetBSD targets.
4042
4043 2002-05-28  Richard Henderson  <rth@redhat.com>
4044
4045         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
4046         update if UPDATE_LIFE_LOCAL.
4047
4048 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4049
4050         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
4051
4052 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
4053                           Jason R. Thorpe <thorpej@wasabisystems.com>
4054
4055         config/sh reorganization to factor out endianness and coff:
4056
4057         * config/sh/little.h: New file.
4058         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
4059         defined, define to 0 to select big-endian.
4060         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
4061         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
4062         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
4063         * config/sh/t-be: New file.
4064         * config/sh/t-le: New file.
4065
4066         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
4067         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
4068         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
4069         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
4070         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
4071         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
4072         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
4073         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
4074         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
4075         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
4076         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
4077         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
4078         (LINK_SPEC): Define to SH_LINK_SPEC.
4079         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
4080         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
4081         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
4082         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
4083         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
4084         * config/sh/coff.h: New file.
4085         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
4086         (TARGET_OBJFMT_CPP_BUILTINS): Define.
4087         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
4088         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
4089         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
4090         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
4091         (PTRDIFF_TYPE): Likewise.
4092         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
4093         (CPP_PREDEFINES): Don't define.
4094         (TARGET_OBJFMT_CPP_BUILTINS): Define.
4095         (LINK_SPEC): Define to SH_LINK_SPEC.
4096         (LINK_EMUL_PREFIX): Redefine.
4097         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
4098         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
4099         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
4100         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
4101         (TARGET_OS_CPP_BUILTINS): Define.
4102         (TARGET_DEFAULT): Redefine.
4103         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
4104         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
4105         (LINK_SPEC): Don't redefine.
4106         (LINK_DEFAULT_CPU_EMUL): Redefine.
4107         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
4108         * sh.c (sh_asm_named_section): Don't declare / define.
4109         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
4110         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
4111         (sh64-*-elf* tm_file): Likewise.
4112         (sh-*-rtemself* tm_file): Likewise.
4113         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
4114         (sh-*-linux* tmake_file): Add sh/t-le.
4115         (sh-*-rtems* tm_file): Add sh/coff.h
4116         (sh-*-* tm_file): Likewise.
4117
4118 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
4119
4120         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
4121         CONSTANT_POOL_ADDRESS_P.
4122
4123         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
4124
4125 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
4126             Jeff Law <law@redhat.com>
4127
4128         * optabs.c (expand_binop): Fix nwords sign warnings.
4129         generate pseudo for add_optab.
4130
4131         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
4132         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
4133
4134 2002-05-28      Marc Espie <espie@openbsd.org>
4135
4136         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
4137         inherited from gas.h.
4138         (ASM_QUAD):  Undef.  OpenBSD does not support it.
4139
4140 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
4141
4142         * doc/install.texi (binaries): Change mingw binaries
4143         link to www.mingw.org.
4144
4145 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4146
4147         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
4148
4149 2002-05-28  Richard Henderson  <rth@redhat.com>
4150
4151         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
4152         bottom alignment for leaf functions.
4153
4154 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
4155
4156         * config/pa/milli32.S, config/pa/lib1funcs.asm,
4157         config/sparc/sol2-g1.asm: Delete unused files.
4158
4159 2002-05-28  Richard Henderson  <rth@redhat.com>
4160
4161         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
4162
4163         * flow.c (calculate_global_regs_live): Rename call_used to
4164         invalidated_by_call.  Initialize from regs_invalidated_by_call
4165         instead of call_used_regs.
4166
4167         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
4168         DECL_EXTERNAL.
4169
4170 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
4171
4172         * tree.h: Don't include real.h.
4173         Forward-declare struct realvaluetype.
4174         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
4175         contain it.
4176         (TREE_REAL_CST_PTR): New accessor.
4177         (TREE_REAL_CST): Update.
4178         * real.h: Include machmode.h.
4179         (realvaluetype): Make it struct realvaluetype, not a typedef.
4180         (build_real): Prototype here.
4181
4182         * tree.c: Include real.h.
4183         (build_real): Allocate the REAL_VALUE_TYPE as a separate
4184         object in GC memory, set TREE_REAL_CST_PTR to point to it.
4185         (build_real_from_int_cst): Use build_real.
4186         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
4187         REAL_CST.
4188
4189         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
4190         fold-const.c, print-tree.c, real.c: Include real.h.
4191         * Makefile.in: Update dependency lists.
4192
4193 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4194
4195         * basic-block.h (last_basic_block): Declare.
4196         (expunge_block_nocompact): Declaration removed.
4197         (compact_blocks): Declare.
4198         * cfg.c (last_basic_block): New variable.
4199         (expunge_block_nocompact): Removed.
4200         (expunge_block): Do not compact basic blocks.
4201         (compact_blocks): New.
4202         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
4203         longer change.
4204         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
4205         last_basic_block.
4206         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
4207         real positions of blocks.
4208         (delete_unreachable_blocks): Simplified -- quadratic behavior now
4209         cannot occur.
4210         (cleanup_cfg): Compact blocks.
4211         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
4212         basic_block_info varray.
4213         (flow_delete_block): Comment update.
4214         (back_edge_of_syntactic_loop_p): Modify position check code.
4215         (verify_flow_info): Update checking.
4216         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
4217         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
4218         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
4219         indices no longer change.
4220         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
4221         last_basic_block.
4222         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
4223         * profile.c (branch_prob): Compact blocks.
4224         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
4225         last_basic_block.
4226
4227 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
4228
4229         * config/h8300/h8300.md (two anonymous patterns): New.
4230
4231 2002-05-28  David S. Miller  <davem@redhat.com>
4232
4233         * config/sparc/sparc.md (cpu): Tidy.
4234         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
4235         'trap'.
4236         (in_call_delay): Delete reference to 'return' type.
4237         (eligible_for_return_delay, in_return_delay, define_delay
4238         referencing those): Delete.
4239         (rest of file): Use new type attributes as appropriate.
4240         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
4241         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
4242         * config/sparc/ultra1_2.md (us1_single): New reservation.
4243         (us1_ialuX): Likewise.
4244         * config/sparc/ultra3.md (us3_single): Likewise.
4245         (us3_ialuX): Likewise.
4246         (us3_imul, us3_idiv): Tweak.
4247
4248 2002-05-28  Richard Henderson  <rth@redhat.com>
4249
4250         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
4251         STRING_CST.
4252
4253 2002-05-28  Richard Henderson  <rth@redhat.com>
4254
4255         * config.gcc: Obsolete mn10200.
4256
4257 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4258
4259         * cppexp.c (interpret_number): Optimize for single-digit
4260         and less-than-half-precision cases.
4261         (num_trim, num_positive, num_div_op): Cast constants.
4262
4263 2002-05-27  Bo Thorsen  <bo@suse.de>
4264
4265         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
4266         3.1 branch. The file was made by Jakub Jelinek.
4267         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
4268         support so multilib doesn't break. And don't define this at all
4269         when -Dinhibit_libc is used.
4270         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
4271         * config/i386/t-linux64: Implement full multilib support. Patch
4272         originally done by Andreas Jaeger and Jakub Jelinek.
4273
4274 2002-05-27  Roger Sayle  <roger@eyesopen.com>
4275
4276         * c-common.c: Add support for __attribute__((nothrow)) to specify
4277         that a function cannot throw an exception (using TREE_NOTHROW).
4278         (handle_nothrow_attribute): New function to process this attribute.
4279
4280         * doc/extend.texi: Document the new nothrow function attribute.
4281
4282 2002-05-27  H.J. Lu  (hjl@gnu.org)
4283
4284         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
4285         (num_positive): Likewise.
4286         (num_div_op): Likewise.
4287
4288 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4289
4290         * c-common.c (c_common_init): Always use intmax_t.
4291
4292 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4293
4294         * c-common.c (c_common_init): Use intmax_t for now.
4295
4296 2002-05-24  Andrew Haley  <aph@redhat.com>
4297
4298         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
4299         if T is a boolean type.
4300
4301 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4302
4303         * basic-block.h (last_basic_block): Defined as synonym for
4304         n_basic_blocks.
4305         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
4306         flow_depth_first_order_compute, flow_preorder_transversal_compute,
4307         flow_dfs_compute_reverse_init): Replaced relevant occurences of
4308         n_basic_blocks with last_basic_block.
4309         * cfgbuild.c (make_edges): Likewise.
4310         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
4311         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
4312         * combine.c (combine_instructions): Likewise.
4313         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
4314         iterative_dataflow_bitmap): Likewise.
4315         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
4316         calc_idoms, idoms_to_doms): Likewise.
4317         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
4318         Likewise.
4319         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
4320         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
4321         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
4322         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
4323         delete_null_pointer_checks, compute_code_hoist_vbeinout,
4324         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
4325         compute_store_table, build_store_vectors): Likewise.
4326         * haifa-sched.c (sched_init): Likewise.
4327         * ifcvt.c (if_convert): Likewise.
4328         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
4329         pre_edge_lcm, compute_available, compute_nearerout,
4330         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
4331         Likewise.
4332         * predict.c (estimate_probability, process_note_prediction,
4333         note_prediction_to_br_prob): Likewise.
4334         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
4335         * recog.c (split_all_insns, peephole2_optimize): Likewise.
4336         * regrename.c (copyprop_hardreg_forward): Likewise.
4337         * resource.c (init_resource_info): Likewise.
4338         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
4339         init_regions, schedule_insns): Likewise.
4340         * ssa-ccp.c (ssa_const_prop): Likewise.
4341         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4342         * ssa.c (compute_dominance_frontiers,
4343         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
4344
4345         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
4346         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
4347         sizes consistently.
4348
4349 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
4350
4351         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
4352         new.
4353         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
4354         hoist_insn_after, hoist_insn_to_edge): New.
4355
4356 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
4357
4358         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
4359         (PROP_FINAL): Include.
4360         * flow.c (life_analysis, update_life_info,
4361         init_propagate_block_info, mark_set_1, mark_used_rgs):
4362         Support SCAN_DEAD_STORE.
4363
4364 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4365
4366         * c-common.c (c_common_init): Set CPP arithmetic precision.
4367         * cppexp.c (cpp_num_part): Move typedef ...
4368         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
4369         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
4370         (sanity_checks): Update.
4371
4372 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
4373
4374         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
4375         (mkheaders): New rule.
4376         (install-mkheaders): New rule.
4377         * configure.in (all_outputs): Add mkheaders.
4378         * configure: Regenerate.
4379         * mkheaders.in: New file.
4380
4381 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
4382
4383         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
4384
4385 2002-05-26  Andreas Jaeger  <aj@suse.de>
4386
4387         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
4388
4389 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4390
4391         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
4392         right_shift): Remove.
4393         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
4394         HIGH_PART): New.
4395         (struct op): Use cpp_num.
4396         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
4397         num_part_mul, num_unary_op, num_binary_op, num_negate,
4398         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
4399         num_div_op, num_lshift, num_rshift, append_digit): New.
4400         (interpret_number, parse_defined, eval_token, reduce): Update
4401         for two-integer arithmetic.
4402         (binary_handler): New typedef.
4403         (optab): Update.
4404         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
4405         (_cpp_parse_expr, reduce): Update to handle two-integers.
4406         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
4407
4408 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4409
4410         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
4411         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
4412         branch insn into account, do not assume 1.
4413         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
4414         over single word insn.  Handle upper half of I/O space too.
4415         * config/avr/avr.md (*sbrx_branch): Use it.
4416         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
4417         (*sbix_branch, *sbix_branch_bit7): Likewise.
4418         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
4419         Use RTL peepholes to optimize register operand sign tests.
4420
4421 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4422
4423         * config/avr/avr.c (avr_asm_only_p): New variable.
4424         (avr_override_options): Set it here if AVR1.
4425         (asm_file_start): Test it here, report an error if set.
4426
4427 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
4428
4429         * alias.c: Fix formatting.
4430         * attribs.c: Likewise.
4431         * bb-reorder.c: Likewise.
4432         * bitmap.c: Likewise.
4433         * bitmap.h: Likewise.
4434         * builtins.c: Likewise.
4435
4436 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
4437
4438         * reload.c (find_valid_class): Accept new argument DEST,
4439         choose class accordingly.
4440         (push_reload): Update callers.
4441
4442 2002-05-26  Andreas Jaeger  <aj@suse.de>
4443
4444         * combine.c (combine_instructions): Do not indent #if for
4445         traditional C.
4446
4447 2002-05-25  Richard Henderson  <rth@redhat.com>
4448
4449         * c-pragma.c (apply_pragma_weak): Convert value identifier to
4450         string for decl_attributes.
4451         (handle_pragma_weak): Call assemble_alias if we're modifying
4452         an existing decl.
4453
4454 2002-05-25  Richard Henderson  <rth@redhat.com>
4455
4456         PR target/6788
4457         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
4458         using rtl instead of fprintf.
4459         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
4460         * config/sparc/sparc-protos.h: Update.
4461
4462 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4463
4464         * Makefile.in (C_COMMON_H): Fix.
4465         Update other targets.
4466         * c-common.c: Don't include c-lex.h.
4467         (builtin_define_with_value): Make static and prototype.
4468         (builtin_define_std): Move from c-lex.h.
4469         * c-common.h (init_c_lex): Move from c-lex.h.
4470         * c-decl.c: Don't include c-lex.h.
4471         (make_pointer_declarator): Move from c-parse.in.
4472         * c-lex.c: Don't include c-lex.h.
4473         * c-lex.h: Remove.
4474         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
4475         (make_pointer_declarator): Move to c-decl.c.
4476         * c-pragma.c: Don't include c-lex.h.
4477         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
4478         * c-tree.h (make_pointer_declarator): New.
4479 doc:
4480         * passes.texi, tm.texi: Update.
4481 objc:
4482         * Make-lang.in: Update and correct.
4483         * objc-act.c: Don't include c-lex.h or cpplib.h.
4484 treelang:
4485         * treetree.c: Don't include c-lex.h.
4486 config:
4487         * darwin-c.c: Don't include c-lex.h.
4488         * c4x/c4x-c.c: Don't include c-lex.h.
4489         * c4x/t-c4x: Update.
4490         * i370/i370-c.c: Don't include c-lex.h.
4491         * i370/t-i370: Update.
4492         * i960/i960-c.c: Don't include c-lex.h.
4493         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
4494         * i960/t-960bare: Update.
4495         * i960/t-vxworks: Update.
4496         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
4497         * rs6000/t-darwin: Update.
4498         * rs6000/t-rs6000-c-rule: Update.
4499         * v850/v850-c.c: Don't include c-lex.h.
4500         * v850/v850.c: Don't include c-lex.h or cpplib.h.
4501
4502
4503 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
4504
4505         * tree.def: Fix typos.
4506         * doc/install.texi: Likewise.
4507
4508 2002-05-25  Richard Henderson  <rth@redhat.com>
4509
4510         * configure.in (HAVE_AS_TLS): Add ia64 test.
4511         * configure: Rebuild.
4512         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
4513         (override_options): Set it.
4514         (TARGET_HAVE_TLS): New.
4515         (sdata_symbolic_operand): Look for 's'.
4516         (tls_symbolic_operand): New.
4517         (ia64_expand_load_address): Abort for tls symbols.
4518         (gen_tls_get_addr): New.
4519         (gen_thread_pointer): New.
4520         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
4521         (rtx_needs_barrier): Add new unspecs.
4522         (ia64_encode_section_info): Handle tls symbols.
4523         (ia64_strip_name_encoding): Strip two encoding chars.
4524         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
4525         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
4526         (TARGET_OPTIONS): Add tls-size.
4527         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
4528         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
4529         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
4530         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
4531         (movsf, movdf): Likewise.
4532         (movdi_symbolic): Use match_scratch.  Don't split if we won't
4533         have a scratch availiable.
4534         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
4535         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
4536         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
4537         * config/ia64/ia64-protos.h: Update.
4538         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
4539         sdata_symbolic_operand.
4540         (ASM_OUTPUT_LABELREF): Strip two characters.
4541
4542 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
4543
4544         * combine.c (simplify_set): Remove an unnecessary subreg.
4545
4546 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4547
4548         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
4549
4550         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
4551
4552 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
4553
4554         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
4555
4556 2002-05-25  Roger Sayle  <roger@eyesopen.com>
4557
4558         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
4559         (cond (compare x y) 0) into the equivalent (cond x y).
4560
4561 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
4562
4563         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
4564
4565 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
4566
4567         * config.gcc: Remove all stanzas for previously obsoleted
4568         systems.  Where necessary, add explicit error stanzas to
4569         prevent removed systems from being misidentified as something
4570         else.  Begin a fresh obsoletions list, with the systems that
4571         were reprieved last round.
4572         * doc/install.texi: Remove all mention of dead targets.
4573         * fixinc/mkfixinc.sh: Likewise.
4574
4575         * config/arm/arm.h: Bit 31 of target_flags is no longer
4576         reserved.
4577
4578         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
4579         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
4580         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
4581         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
4582         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
4583         config/alpha/osf12.h, config/alpha/osf2or3.h,
4584         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
4585         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
4586         config/clipper/clipper-protos.h, config/clipper/clipper.c,
4587         config/clipper/clipper.h, config/clipper/clipper.md,
4588         config/clipper/clix.h, config/convex/convex-protos.h,
4589         config/convex/convex.c, config/convex/convex.h,
4590         config/convex/convex.md, config/convex/fixinc.convex,
4591         config/convex/proto.h, config/elxsi/elxsi-protos.h,
4592         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
4593         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
4594         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
4595         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
4596         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
4597         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
4598         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
4599         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
4600         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
4601         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
4602         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
4603         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
4604         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
4605         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
4606         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
4607         config/m68k/altos3068.h, config/m68k/apollo68.h,
4608         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
4609         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
4610         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
4611         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
4612         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
4613         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
4614         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
4615         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
4616         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
4617         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
4618         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
4619         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
4620         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
4621         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
4622         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
4623         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
4624         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
4625         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
4626         config/mips/dec-osf1.h, config/mips/elflorion.h,
4627         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
4628         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
4629         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
4630         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
4631         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
4632         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
4633         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
4634         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
4635         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
4636         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
4637         config/ns32k/sequent.h, config/ns32k/tek6000.h,
4638         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
4639         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
4640         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
4641         config/sparc/rtems.h, config/we32k/we32k-protos.h,
4642         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
4643         Delete file.
4644
4645 2002-05-24  Richard Henderson  <rth@redhat.com>
4646
4647         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
4648         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
4649         * config/i386/i386.c (tls_model_chars): Add leading space.
4650         (tls_symbolic_operand): Don't bias by 1.
4651         (legitimize_address): Don't unbias by 1.
4652
4653 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4654
4655         * lcm.c (optimize_mode_switching): Change bb used as indices
4656         to bb->index.
4657
4658 2002-05-24  Richard Henderson  <rth@redhat.com>
4659
4660         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
4661         of update_life_info_in_dirty_blocks.
4662
4663 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
4664
4665         PR other/6782
4666         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
4667
4668 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4669
4670         PR preprocessor/6780
4671         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
4672
4673 2002-05-24  Jim Blandy  <jimb@redhat.com>
4674
4675         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
4676         entry with a type code of zero, marking the end of the compilation
4677         unit's macro info.
4678
4679 2002-05-24  Richard Henderson  <rth@redhat.com>
4680
4681         * varasm.c (asm_output_bss): Always output one byte.
4682         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
4683
4684 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4685
4686         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
4687         namespace.
4688
4689 2002-05-24  Andreas Jaeger  <aj@suse.de>
4690
4691         * ggc-page.c (alloc_page): Cast variables of type size_t to
4692         unsigned long, adjust printf format string.
4693         (ggc_alloc): Likewise.
4694         (ggc_print_statistics): Likewise.
4695         (ggc_print_statistics): Correct printf format string for SCALE to
4696         use unsigned long.
4697
4698 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
4699
4700         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
4701
4702 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
4703             Zack Weinberg     <zack@codesourcery.com>
4704
4705         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
4706         quoted strings.
4707         * dwarf2out.c (lookup_filename): Properly quote filename in .file
4708         directive in assembly file.
4709         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
4710         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
4711         * config/pj/pj.h (ASM_FILE_START): Likewise.
4712         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
4713         * config/avr/avr.c (asm_file_end): Likewise.
4714         * toplev.c (output_quoted_string): Handle possibly signed plain
4715         char.
4716         * toplev.h (output_clean_symbol_name): Declare
4717         * toplev.c (output_clean_symbol_name): Define.
4718         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
4719         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
4720
4721 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
4722
4723         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
4724
4725 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
4726
4727         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
4728         of size of unsigned.
4729
4730 2002-05-23  Richard Henderson  <rth@redhat.com>
4731
4732         * configure.in (HAVE_AS_TLS): New test.
4733         * config.in, configure: Rebuild.
4734         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
4735         (ix86_tls_dialect_string, ix86_tls_dialect): New.
4736         (override_options): Set it.
4737         (tls_model_chars, tls_symbolic_operand): New.
4738         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
4739         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
4740         (local_exec_symbolic_operand): New.
4741         (get_pic_label_name): Merge into output_set_got.
4742         (ix86_asm_file_end): Emit pic_label_name if defined.
4743         (legitimate_constant_p, constant_address_p): New.
4744         (legitimate_pic_operand_p): New.
4745         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
4746         (legitimate_address_p): Likewise.
4747         (ix86_encode_section_info): Rename from i386_; handle tls decls.
4748         (ix86_strip_name_encoding): New.
4749         (get_thread_pointer): New.
4750         (legitimize_address): Handle tls symbols.
4751         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
4752         Remove UNSPEC_PLT.
4753         (struct machine_function): Add some_ld_name.
4754         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
4755         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
4756         (output_addr_const_extra): New.
4757         (maybe_get_pool_constant): New.
4758         (ix86_split_to_parts): Use it.
4759         (ix86_expand_move): Handle tls symbols.
4760         (ix86_tls_get_addr): New.
4761         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
4762         (TARGET_OPTIONS): Add tls-dialect.
4763         (CONSTANT_ADDRESS_P): Use new out-of-line function.
4764         (LEGITIMATE_CONSTANT_P): Likewise.
4765         (LEGITIMATE_PIC_OPERAND_P): Likewise.
4766         (TARGET_STRIP_NAME_ENCODING): New.
4767         (ASM_OUTPUT_LABELREF): New.
4768         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
4769         (OUTPUT_ADDR_CONST_EXTRA): New.
4770         (PREDICATE_CODES): Update.
4771         (ix86_tls_dialect, ix86_tls_dialect_string): New.
4772         * config/i386/i386.md: Regroup and renumber unspec constants.
4773         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
4774         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
4775         (tls_global_dynamic, tls_local_dynamic_base): New.
4776         (tls_local_dynamic_once): New.
4777         * config/i386/i386-protos.h: Update.
4778
4779 2002-05-23  Richard Henderson  <rth@redhat.com>
4780
4781         * genemit.c (gen_insn): Print file:lineno comment before function.
4782         (main): likewise.
4783         * gensupport.c (struct queue_elem): Add filename member.
4784         (queue_pattern): Initialize it; update all callers.
4785         (process_include): Don't free filename.
4786         (read_md_rtx): Set read_rtx_filename.
4787
4788 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
4789
4790         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
4791
4792 2002-05-23  Richard Henderson  <rth@redhat.com>
4793
4794         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
4795
4796 2002-05-23  Richard Henderson  <rth@redhat.com>
4797
4798         * doc/extend.texi (C++98 Thread-Local Edits): Update with
4799         commentary from Mark.
4800
4801 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4802
4803         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
4804         Use FOR_EACH_BB macros to iterate over basic block chain.
4805         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
4806         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
4807         Likewise.
4808         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
4809         find_unreachable_blocks, create_edge_list, verify_edge_list,
4810         remove_fake_edges, add_noreturn_fake_exit_edges,
4811         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
4812         Likewise.
4813         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4814         find_sub_basic_blocks): Likewise.
4815         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
4816         Likewise.
4817         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
4818         Likewise.
4819         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
4820         Likewise.
4821         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
4822         commit_edge_insertions, commit_edge_insertions_watch_calls,
4823         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
4824         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
4825         * conflict.c (conflict_graph_compute): Likewise.
4826         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4827         df_modified_p, df_refs_unlink, df_dump): Likewise.
4828         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
4829         * final.c (compute_alignments): Likewise.
4830         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
4831         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
4832         count_or_remove_death_notes): Likewise.
4833         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
4834         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
4835         classic_gcse, compute_transp, cprop, compute_pre_data,
4836         compute_transpout, invalidate_nonnull_info,
4837         delete_null_pointer_checks_1, delete_null_pointer_checks,
4838         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
4839         compute_store_table, build_store_vectors, store_motion): Likewise.
4840         * global.c (global_conflicts, mark_elimination): Likewise.
4841         * graph.c (print_rtl_graph_with_bb): Likewise.
4842         * haifa-sched.c (sched_init): Likewise.
4843         * ifcvt.c (if_convert): Likewise.
4844         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
4845         compute_available, compute_nearerout, compute_rev_insert_delete,
4846         optimize_mode_switching): Likewise.
4847         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
4848         * predict.c (estimate_probability, note_prediction_to_br_prob,
4849         propagate_freq, counts_to_freqs, expensive_function_p,
4850         estimate_bb_frequencies): Likewise.
4851         * profile.c (instrument_edges, get_exec_counts,
4852         compute_branch_probabilities, compute_checksum, branch_prob,
4853         find_spanning_tree): Likewise.
4854         * recog.c (split_all_insns, peephole2_optimize): Likewise.
4855         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
4856         Likewise.
4857         * regclass.c (scan_one_insn, regclass): Likewise.
4858         * regmove.c (mark_flags_life_zones, regmove_optimize,
4859         record_stack_memrefs): Likewise.
4860         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
4861         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
4862         * resource.c (find_basic_block): Likewise.
4863         * sched-ebb.c (schedule_ebbs): Likewise.
4864         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
4865         find_single_block_region, find_rgns, schedule_insns)
4866         * sibcall.c (optimize_sibling_and_tail_recursive_call)
4867         * ssa-ccp.c (optimize_unexecutable_edges,
4868         ssa_ccp_df_delete_unreachable_insns): Likewise.
4869         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4870         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
4871         rename_block, convert_to_ssa, compute_conservative_reg_partition,
4872         compute_coalesced_reg_partition, rename_equivalent_regs,
4873         convert_from_ssa): Likewise.
4874         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
4875         process_for_unwind_directive): Likewise.
4876
4877         * df.c (FOR_ALL_BBS): Removed.
4878         * gcse.c (struct null_pointer_info): Type of current_block field
4879         changed.
4880         (struct reg_avail_info): Type of last_bb field changed.
4881         * config/ia64/ia64.c (block_num): Removed.
4882         (need_copy_state): Type changed.
4883         (last_block): New.
4884
4885 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4886
4887         * cppinit.c (mark_named_operators): Split out from init_builtins.
4888         (cpp_finish_options): Call it from here instead.
4889
4890 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4891
4892         * builtin-attrs.def: Update copyright years.
4893         (ATTR_NONNULL): New attribute identifier.
4894         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
4895         attribute tree lists.
4896         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
4897         format operand.
4898         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
4899         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
4900         attribute lists.  Chain the appropriate nonnull attribute.
4901         * c-format.c (check_format_arg): Remove null format string
4902         warning.
4903         * testsuite/gcc.dg/format/null-1.c: New test.
4904
4905 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4906
4907         * Makefile.in (ADAC): Define.
4908         (SYSLIBS): Define.
4909         (.SUFFIXES): Move before language makefile fragments.
4910         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
4911
4912 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
4913
4914         * varasm.c (make_decl_rtl): Don't allow weak variables to be
4915         placed in common.
4916
4917 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4918
4919         * cfg.c (dump_flow_info): Print results of
4920         maybe_hot/probably_never_executed predicates.
4921         * toplev.c (open_dump_file): Print function frequency.
4922
4923 2002-05-23  David S. Miller  <davem@redhat.com>
4924
4925         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
4926         regsets.
4927
4928 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4929
4930         * c-common.c (warn_nonnull): Declare.
4931         (c_common_attribute_table): Add "nonnull" attribute.
4932         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
4933         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
4934         check_function_arguments_recurse): New functions.
4935         * c-common.h (warn_nonnull): Declare extern.
4936         (check_function_arguments, check_function_arguments_recurse): New
4937         prototypes.
4938         * c-decl.c (c_decode_option): Add -Wnonnull option.
4939         * c-format.c (set_Wformat): Set warn_nonnull if enabling
4940         format checking.
4941         (format_check_context): New structure.
4942         (check_format_info_recurse): Remove recursion and rename to...
4943         (check_format_arg): ...this.  Update comment.
4944         (check_format_info): Use check_function_arguments_recurse.
4945         * c-typeck.c (build_function_call): Call check_function_arguments
4946         instead of check_function_format.
4947         * doc/extend.texi: Document "nonnull" attribute.
4948         * doc/invoke.texi: Docuemnt -Wnonnull option.
4949         * testsuite/gcc.dg/nonnull-1.c: New test.
4950         * testsuite/gcc.dg/nonnull-2.c: New test.
4951
4952 2002-05-23  David S. Miller  <davem@redhat.com>
4953
4954         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
4955         * cfgcleanup.c (cleanup_cfg): If it is set do not
4956         attempt to delete trivially dead insns.
4957         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
4958         * toplev.c (rest_of_compilation): Document non-trivial aspect
4959         the RTL before optimize_save_area_alloca is run.
4960
4961 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4962
4963         * c-lex.c (indent_level): Remove.
4964         (cb_file_change, c_lex): Remove indent level handling.
4965         * c-lex.h (indent_level): Remove.
4966         * input.h (struct file_stack): Remove indent_level.
4967         * toplev.c (push_srcloc): Remove indent_level handling.
4968
4969 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4970
4971         PR target/6753
4972         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
4973         of x in constraints for clarity.
4974         (sse_mov?fcc split): abort if op2 == op3.
4975         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
4976         sse_movsfcc_const0_4): Add earlyclobber.
4977         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4978         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
4979         Use Y instead of x in constraints.
4980
4981 2002-05-23  Richard Henderson  <rth@redhat.com>
4982
4983         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
4984         (C++98 Thread-Local Edits): New subsection.
4985
4986         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
4987         (ix86_arch): Set type to enum processor_type.
4988
4989         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
4990         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
4991
4992 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4993
4994         * configure.in: Fix as version test for binutils 2.12.1 releases
4995         (without dates).
4996         * configure: Rebuilt.
4997
4998 2002-05-23  Richard Henderson  <rth@redhat.com>
4999
5000         * config/i386/i386.c (get_pic_label_name): New.
5001         (load_pic_register): Remove.
5002         (output_set_got): New.
5003         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
5004         * config/i386/i386.md (UNSPEC_SET_GOT): New.
5005         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
5006         (prologue_set_got, prologue_get_pc): Remove.
5007         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
5008         (builtin_setjmp_receiver): Use gen_set_got.
5009         * config/i386/i386-protos.h: Update.
5010
5011 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
5012
5013         * gcse.c (hash_expr): Do not use alias set for hashing.
5014
5015 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
5016
5017         * dbxout.c (dbxout_class_name_qualifiers): New function.
5018         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
5019
5020 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5021
5022         * cpperror.c (_cpp_begin_message): No special casing
5023         of CPP_FATAL_LIMIT.
5024         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
5025         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
5026         * cpplib.c (do_include_common): Use DL_ERROR.
5027         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
5028         (DL_ICE): Renumber.
5029         * fix-header.c (read_scan_file): Update.
5030
5031 2002-05-22  Richard Henderson  <rth@redhat.com>
5032
5033         * config/i386/i386.c (ix86_expand_call): New function, extracted
5034         from md call patterns.  Add pic_offset_table_rtx to
5035         CALL_INSN_FUNCTION_USAGE when needed.
5036         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
5037         (call_value_pop, call_value, untyped_call): Likewise.
5038         (call_exp, call_value_exp): Remove.
5039         * config/i386/i386-protos.h: Update.
5040
5041 2002-05-22  Richard Henderson  <rth@redhat.com>
5042
5043         * varasm.c (default_section_type_flags): Check for VAR_DECL
5044         before using DECL_THREAD_LOCAL.
5045
5046 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
5047
5048         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
5049         (STARTFILE_SPEC): Delete PE crt0.o.
5050         * config/rs6000/aix51.h: Same.
5051         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
5052         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
5053         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
5054         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
5055         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
5056
5057 2002-05-22  Richard Henderson  <rth@redhat.com>
5058
5059         * varasm.c (default_section_type_flags): Handle tls data and
5060         default sections.
5061         (default_unique_section): Handle tls sections.
5062
5063 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
5064
5065         * configure.in (CROSS): Define NATIVE_CROSS.
5066         * configure: Regenerate.
5067         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
5068         (startfile_prefix_spec): New var.
5069         (static_specs): Add startfile_prefix_spec.
5070         (do_spec_2): Split out from..
5071         (do_spec): ..here.
5072         (main): Process startfile_prefix_spec.
5073         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
5074         dynamic linker.
5075         (STARTFILE_PREFIX_SPEC): Define.
5076         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
5077         absolute paths.
5078
5079 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
5080
5081         * cpperror.c: Fix formatting.
5082         * cppexp.c: Likewise.
5083         * cppfiles.c: Likewise.
5084         * cpphash.c: Likewise.
5085         * cpphash.h: Likewise.
5086         * cppinit.c: Likewise.
5087         * cpplex.c: Likewise.
5088         * cpplib.c: Likewise.
5089         * cppmacro.c: Likewise.
5090         * cppmain.c: Likewise.
5091         * cppspec.c: Likewise.
5092
5093 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
5094
5095         * combine.c (force_to_mode): Use gen_int_mode.
5096         Don't clear CONST_INT bits outside of mode.
5097
5098 2002-05-22  Richard Henderson  <rth@redhat.com>
5099
5100         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
5101         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
5102
5103 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
5104
5105         PR c/6643
5106         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
5107         if DECL_SIZE_UNIT is INTEGER_CST.
5108
5109 2002-05-22  Richard Henderson  <rth@redhat.com>
5110
5111         * flow.c (life_analysis): Delete broken reg_label check.
5112
5113 2002-05-22  Richard Henderson  <rth@redhat.com>
5114
5115         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
5116         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
5117
5118 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5119
5120         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
5121         (embed-bb.c): New rule.
5122         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
5123         * config/sh/embed_bb.c: Delete.
5124
5125 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
5126
5127         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
5128
5129 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
5130
5131         * config/h8300/h8300.md (*andorqi3): New.
5132
5133 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5134
5135         PR preprocessor/6517
5136         * Makefile.in: Update.
5137         * c-common.c (c_common_post_options): Add preprocessor
5138         errors to the error count.
5139         * c-lang.c (c_post_options): Kill.
5140         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
5141         * hooks.h: Add header guards.
5142         * langhooks-def.h: Include hooks.h.
5143         (LANG_HOOKS_POST_OPTIONS): Update.
5144         * langhooks.h (struct lang_hooks): Update post_options.
5145         * toplev.c (parse_options_and_default_flags): Update.
5146 objc:
5147         * objc-lang.c (objc_post_options): Kill.
5148         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
5149
5150 2002-05-21  Bruce Korb  <bkorb@gnu.org>
5151
5152         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
5153         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
5154         * fixinc/fixincl.x: regen.
5155
5156 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
5157
5158         * cfgbuild.c: Fix formatting.
5159         * cfg.c: Likewise.
5160         * cfgcleanup.c: Likewise.
5161         * cfglayout.c: Likewise.
5162         * cfgloop.c: Likewise.
5163         * cfgrtl.c: Likewise.
5164
5165 2002-05-21  Richard Henderson  <rth@redhat.com>
5166
5167         * c-common.h (enum rid): Add RID_THREAD.
5168         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
5169         (grokdeclarator): Grok __thread.
5170         * c-parse.in (reswords): Add __thread.
5171         (rid_to_yy): Add RID_THREAD.
5172
5173         * tree.h (DECL_THREAD_LOCAL): New.
5174         (struct tree_decl): Add thread_local_flag.
5175         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
5176         * tree.c (staticp): TLS variables are not static.
5177
5178         * target-def.h (TARGET_HAVE_TLS): New.
5179         * target.h (have_tls): New.
5180         * output.h (SECTION_TLS): New.
5181         * varasm.c (assemble_variable): TLS variables can't be common for now.
5182         (default_section_type_flags): Handle .tdata and .tbss.
5183         (default_elf_asm_named_section): Handle SECTION_TLS.
5184         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
5185
5186         * flags.h (flag_tls_default): Declare.
5187         * toplev.c (flag_tls_default): Define.
5188         (display_help): Display help for it.
5189         (decode_f_option): Set it.
5190
5191         * doc/extend.texi (Thread-Local): New node describing language-level
5192         thread-local storage.
5193         * doc/invoke.texi (-ftls-model): Document.
5194
5195         * fixinc/inclhack.def (thread_keyword): New.
5196         * fixinc/fixincl.x: Rebuild.
5197
5198 2002-05-21  Jeffrey A Law  <law@redhat.com>
5199
5200         * optabs.c (expand_binop): For double-word integer multiplies,
5201         do not compute intermediate results into something that is
5202         not a register (such as a SUBREG or MEM).
5203
5204         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
5205         (ix86_sched_reorder): Make sure to initialize scheduling
5206         data even when there's only one insn in the ready queue.
5207
5208 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
5209
5210         * genautomata.c (reserv_sets_hash_value): Fix a typo.
5211
5212 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
5213
5214         * genautomata.c (reserv_sets_hash_value): Define hash_value as
5215         set_el_t.  Transform the hash value into unsigned.
5216         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
5217         (transform_3): Add code to process `(A,B)+(D,E)'.
5218
5219 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
5220
5221         * reload1.c (do_output_reload): Run delete_output_reload
5222         only if optimizing.
5223
5224 2002-05-21  Roger Sayle  <roger@eyesopen.com>
5225
5226         PR middle-end/6600
5227         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
5228         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
5229         (can_store_by_pieces): ... and here to limit the largest mode used.
5230         Add a comment to document this function.
5231
5232 2002-05-21  Richard Henderson  <rth@redhat.com>
5233
5234         * flow.c (life_analysis): Fix test for deleted label.
5235
5236 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5237
5238         * doc/tm.texi: Fix typo.
5239
5240 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
5241
5242         * c-common.c (c_common_init): Set options->unsigned_char from
5243         flag_signed_char.
5244         (cb_register_builtins): Define __STRICT_ANSI__ and
5245         __CHAR_UNSIGNED__ here...
5246         * cppinit.c (init_builtins): Not here.
5247         (cpp_create_reader): unsigned_char option defaults to 0, not
5248         !DEFAULT_SIGNED_CHAR.
5249         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
5250         and -funsigned-char.
5251
5252         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
5253         * cpphash.c (_cpp_init_hashtable): Don't set it.
5254         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
5255         directly.  Clarify comment.
5256
5257 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5258
5259         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
5260         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
5261         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
5262         BASIC_BLOCK (n_basic_blocks - 1).
5263         * cfganal.c (can_fallthru, flow_call_edges_add,
5264         flow_preorder_transversal_compute): Too.
5265         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
5266         find_sub_basic_blocks): Too.
5267         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
5268         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
5269         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
5270         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
5271         * combine.c (this_basic_block): Type changed to basic_block.
5272         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
5273         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
5274         get_last_value, distribute_notes, distribute_links): Too.
5275         * final.c (compute_alignments): Too.
5276         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
5277         * function.c (thread_prologue_and_epilogue_insns): Too.
5278         * gcse.c (compute_code_hoist_vbeinout): Too.
5279         * global.c (build_insn_chain): Too.
5280         * ifcvt.c (find_if_block, find_cond_trap): Too.
5281         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
5282         * regmove.c (regmove_optimize): Too.
5283         * resource.c (find_basic_block): Too.
5284         * sched-ebb.c (schedule_ebbs): Too.
5285         * ssa-dce.c (find_control_dependence, find_pdom): Too.
5286
5287 2002-05-21  Andreas Jaeger  <aj@suse.de>
5288
5289         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
5290
5291 2002-05-21  Richard Henderson  <rth@redhat.com>
5292
5293         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
5294         unspec names, not numbers.
5295
5296 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5297
5298         * doc/sourcebuild.texi: Mention snapshot-README and
5299         snapshot-index.html as needing updating for new front ends.
5300
5301 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5302
5303         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
5304         disabling checking, and avoid multiple evaluation of RTX.
5305
5306 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
5307
5308         * bitmap.c (bitmap_find_bit): Return early if we have the correct
5309         element cached.
5310
5311 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
5312
5313         * profile.c (gen_edge_profiler):  Set alias set before the memory is
5314         used.
5315
5316 2002-05-20  David S. Miller  <davem@redhat.com>
5317
5318         * cselib.c (max_value_regs): New.
5319         (cselib_lookup, cselib_invalidate_regno): Initialize it when
5320         adding new entries to the REG_VALUES table and we are dealing with
5321         a hard register.
5322         (clear_table): Initialize it.
5323         (cselib_invalidate_regno): Use it to determine which hard
5324         registers to scan when mode is not VOIDmode.
5325
5326 2002-05-20  Duraid Madina   <duraid@fl.net.au>
5327
5328         * tradcpp.c (fixup_newlines): Use old-style function header.
5329
5330 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
5331
5332         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
5333
5334 2002-05-20  H.J. Lu  (hjl@gnu.org)
5335
5336         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
5337
5338         * config/mips/mips.h (DFMODE_NAN): Defined.
5339         (SFMODE_NAN): Likewise.
5340
5341 2002-05-20  Dale Johannesen  <dalej@apple.com>
5342
5343         * combine.c (cant_combine_insn_p):  Back out my
5344         previous patch.
5345
5346 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
5347
5348         * params.c: Fix formatting.
5349         * params.h: Likewise.
5350         * predict.c: Likewise.
5351         * prefix.c: Likewise.
5352         * print-rtl.c: Likewise.
5353         * print-tree.c: Likewise.
5354         * profile.c: Likewise.
5355
5356 2002-05-20  H.J. Lu  (hjl@gnu.org)
5357
5358         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
5359
5360 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
5361
5362         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
5363         switches straight on to the assembler, do not abbreviate them.
5364         * config/arm/elf.h (ASM_SPEC): As above.
5365         * config/arm/semi.h (ASM_SPEC): As above.
5366         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
5367         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
5368         -mcpu=xscale on to the assembler by default.
5369         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
5370
5371 2002-05-20  Richard Henderson  <rth@redhat.com>
5372
5373         * cse.c (canon_hash): Reorder do_not_record test.  Always
5374         allow pic_offset_table_rtx.
5375
5376 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
5377
5378         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
5379         (expand_binop): Ditto (3 times).
5380
5381 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
5382
5383         * Makefile.in (distclean): Remove QMTest stuff.
5384         (QMTEST_PATH): New variable.
5385         (QMTESTFLAGS): Likewise.
5386         (QMTESTRUNFLAGS): Likewise.
5387         (QMTEST): Likewise.
5388         (QMTEST_GPP_TESTS): Likewise.
5389         (QMTEST_DIR): Likewise.
5390         (QMTEST_DIR/context): New target.
5391         (qmtest-g++): Likeise.
5392         (qmtest-gui): Likewise.
5393         (QMTEST_DIR/gpp-expected.qmr): Likewise.
5394
5395 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
5396
5397         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
5398         an altivec register if TARGET_ALTIVEC.
5399
5400         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
5401         to ALTIVEC_VECTOR_MODE.
5402         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
5403         (rs6000_va_arg): Vectors may go in registers if they are not
5404         altivec vectors.
5405
5406 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
5407
5408         * protoize.c: Fix formatting.
5409
5410 2002-05-19  Richard Henderson  <rth@redhat.com>
5411
5412         * gensupport.c (init_include_reader): Merge into ...
5413         (process_include): ... here.  Simplify composite path creation.
5414         Plug memory leaks.  Fix file/line number tracking.  Do not
5415         process_define_cond_exec.  Return void.
5416         (process_rtx): Don't check process_include return value.
5417
5418 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5419
5420         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
5421         fields.
5422         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
5423         traversing basic block chain.
5424         (create_basic_block_structure, create_basic_block): Declaration changed.
5425         (link_block, unlink_block): Declare.
5426         * cfg.c (entry_exit_blocks): Initialize new fields.
5427         (link_block, unlink_block): New.
5428         (expunge_block_nocompact): Unlink basic block.
5429         (dump_flow_info): Print prev_bb/next_bb fields.
5430         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
5431         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
5432         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
5433         * cfgrtl.c (create_basic_block_structure, create_basic_block,
5434         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
5435         (verify_flow_info): Check that list agrees with numbering.
5436
5437 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5438
5439         * c-common.c (preprocessing_asm): New macro.
5440         * c-lex.h (builtin_define, builtin_assert): Use pfile.
5441 doc:
5442         * tm.texi: Update.
5443 config/alpha:
5444         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
5445         (CPP_SPEC): Simplify.
5446         (TARGET_CPU_CPP_BUILTINS): Update.
5447         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
5448         (CPP_SPEC): Simplify.
5449         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
5450         (TARGET_OS_CPP_BUILTINS): Update.
5451         * osf.h (CPP_XFLOAT_SPEC): Kill.
5452         (TARGET_OS_CPP_BUILTINS): Update.
5453         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
5454         * osf5.h (CPP_XFLOAT_SPEC): Kill.
5455         * vms.h (CPP_SUBTARGET_SPEC): Kill.
5456         (TARGET_OS_CPP_BUILTINS): Update.
5457
5458 2002-05-19  Richard Henderson  <rth@redhat.com>
5459
5460         * varasm.c (default_binds_local_p): Fix typo.
5461
5462 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5463
5464         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
5465         CONST_INT operand to the correct mode after adding 1 to it.
5466
5467 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
5468
5469         * config.gcc (powerpc-wrs-windiss*): New target.
5470
5471 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5472
5473         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
5474         (ashrdi3): Use it.
5475
5476 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
5477
5478         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
5479         alphasort.
5480         * config.in: Regenerated.
5481         * configure: Regenerated.
5482
5483 2002-05-19  Richard Henderson  <rth@redhat.com>
5484
5485         * target-def.h (TARGET_BINDS_LOCAL_P): New.
5486         * target.h (struct gcc_target): Move boolean fields to the end.
5487         Add binds_local_p.
5488         * varasm.c (default_binds_local_p): New.
5489         * output.h: Declare it.
5490
5491         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
5492         * config/cris/cris.c (cris_encode_section_info): Likewise.
5493         * config/i386/i386.c (i386_encode_section_info): Likewise.
5494         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
5495         * config/sh/sh.c (sh_encode_section_info): Likewise.
5496
5497         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
5498         (TARGET_BINDS_LOCAL_P): New.
5499
5500 2002-05-19  Richard Henderson  <rth@redhat.com>
5501
5502         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
5503         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
5504         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
5505
5506         * toplev.c (display_help): Kill -a -ax help.
5507
5508         * config/1750a/1750a.h, config/alpha/alpha.h,
5509         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
5510         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
5511         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
5512         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
5513
5514         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
5515         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
5516
5517         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
5518         (ix86_output_function_block_profiler): Kill.
5519         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
5520         (m68hc11_function_block_profiler): Kill.
5521         * config/m68hc11/m68hc11-protos.h: Update.
5522         * config/m88k/m88k.c (output_block_profiler): Kill.
5523         (output_function_block_profiler): Kill.
5524         * config/m88k/m88k-protos.h: Update.
5525
5526 2002-05-19  Richard Henderson  <rth@redhat.com>
5527
5528         * system.h (STRIP_NAME_ENCODING): Poison it.
5529         * output.h (STRIP_NAME_ENCODING): Remove.
5530         (default_strip_name_encoding): Declare.
5531         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
5532         * target.h (strip_name_encoding): New.
5533         * varasm.c (default_strip_name_encoding): New.
5534
5535         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
5536         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
5537         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
5538         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
5539         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
5540         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
5541         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
5542         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
5543         config/v850/v850.h: Use the hook, not the macro.
5544
5545         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
5546         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
5547         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
5548         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
5549         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
5550         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
5551         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
5552         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
5553         config/v850/v850.c, config/v850/v850.h:
5554         Move STRIP_NAME_ENCODING to out-of-line function and add
5555         TARGET_STRIP_NAME_ENCODING.
5556
5557         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
5558         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
5559         with TARGET_STRIP_NAME_ENCODING referencing existing function;
5560         make function static.
5561
5562         * xcoffout.c: Include target.h
5563         * Makefile.in (xcoffout.o): Update.
5564
5565         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
5566         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
5567         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
5568         reloc argument unused.
5569         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
5570
5571         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
5572         STRIP_NAME_ENCODING docs.
5573
5574 2002-05-19  Andreas Jaeger  <aj@suse.de>
5575
5576         * gengenrtl.c: Add prototype for excluded_rtx.
5577
5578         * real.h: Add prototype for exact_real_truncate.
5579
5580 2002-05-18  Richard Henderson  <rth@redhat.com>
5581
5582         * system.h (ENCODE_SECTION_INFO): Poison it.
5583         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
5584         * target.h (encode_section_info): New.
5585         * varasm.c (make_decl_rtl, output_constant_def): Use it.
5586         * hooks.c (hook_tree_int_void): New.
5587         * hooks.h: Declare it.
5588
5589         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
5590         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
5591         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
5592         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
5593         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
5594         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
5595         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
5596         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
5597         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
5598         config/mcore/mcore-protos.h, config/mcore/mcore.c,
5599         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
5600         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
5601         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
5602         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
5603         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
5604         referencing existing function.  Make function static.
5605
5606         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
5607         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
5608         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
5609         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
5610         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
5611         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
5612         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
5613         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
5614         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
5615         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
5616         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
5617         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
5618         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
5619         Move ENCODE_SECTION_INFO to out-of-line function and add
5620         TARGET_ENCODE_SECTION_INFO.
5621
5622         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
5623         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5624
5625         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
5626         from SUBTARGET_*
5627         (switch_to_section): Replace in_rdata case with in_readonly_data.
5628
5629         * config/h8300/h8300.c (h8300_encode_label): Make static.
5630         * config/h8300/h8300-protos.h: Update.
5631
5632         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
5633         from rs6000_encode_section_info; make static.
5634         (rs6000_xcoff_encode_section_info): New.
5635
5636         * config/v850/v850.c (v850_encode_data_area): Make static.
5637         * config/v850/v850-protos.h: Update.
5638
5639         * config/vax/vax.c: Include flags.h.
5640         (vms_select_section): Fix typo.
5641
5642         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
5643         ENCODE_SECTION_INFO docs.
5644
5645 2002-05-18  Richard Henderson  <rth@redhat.com>
5646
5647         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
5648         REGISTER_TARGET_PRAGMAS.
5649         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
5650
5651         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
5652
5653 2002-05-18  Richard Henderson  <rth@redhat.com>
5654
5655         * system.h (SELECT_RTX_SECTION): Poison.
5656         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
5657         * target.h (select_rtx_section): New.
5658         * varasm.c (output_constant_pool): Use it.
5659         (default_select_rtx_section, default_elf_select_rtx_section): New.
5660         * output.h: Declare them.
5661
5662         * config/darwin.h (SELECT_RTX_SECTION): Move ...
5663         * config/darwin.c (machopic_select_rtx_section): ... here.
5664         * config/darwin-protos.h: Update.
5665
5666         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
5667         * config/nextstep.c (machopic_select_rtx_section): ... here.
5668         (nextstep_select_section): Rename variable to avoid macro clash.
5669         * config/nextstep-protos.h: Update.
5670
5671         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
5672         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
5673         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
5674         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
5675         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
5676         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
5677         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
5678         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
5679         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
5680         (SELECT_RTX_SECTION): Remove.
5681
5682         * config/darwin.h, config/elfos.h, config/nextstep.h,
5683         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
5684         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
5685         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
5686         config/sparc/lynx.h, config/xtensa/xtensa.c
5687         (TARGET_ASM_SELECT_RTX_SECTION): New.
5688
5689         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
5690         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
5691         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
5692         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
5693         (ia64_aix_select_rtx_section): New.
5694         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
5695         redefining.
5696         * config/mips/mips.c (mips_select_rtx_section): Make static.
5697         Support ELF SHF_MERGE features.
5698         * config/mips/mips-protos.h: Update.
5699         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
5700         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
5701         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
5702         make static, fall back to default_elf_select_rtx_section.
5703         * config/rs6000/rs6000-protos.h: Update.
5704         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
5705         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
5706         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
5707         * config/romp/romp.c (romp_select_rtx_section): New.
5708         * config/s390/s390.c (s390_select_rtx_section): New.
5709         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
5710         declarations before target macro definition.
5711         (xtensa_emit_call): Use static buffer.
5712         (xtensa_select_rtx_section): New.
5713         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
5714         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
5715         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
5716
5717         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
5718         SELECT_RTX_SECTION docs.
5719
5720 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
5721
5722         * i386.md (movsi/movdi): Fix template.
5723         (sse2 patterns): Set attributes consistently.
5724
5725         * i386.md (pushqi2, ashrqi_*): Fix constraint.
5726
5727 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
5728
5729         * optabs.c (complex_part_zero_p): New.
5730         * (expand_cmplxdiv_straight): Use it.
5731         * (expand_cmplxdiv_wide): Ditto.
5732         * (expand_binop): Ditto.
5733
5734 2002-05-18  Richard Henderson  <rth@redhat.com>
5735
5736         * final.c (HAVE_READONLY_DATA_SECTION): New.
5737         (shorten_branches): Use it instead of ifdefs.
5738         * varasm.c (enum in_section): Add in_readonly_data.
5739         (text_section, data_section): Tidy.
5740         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
5741
5742         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
5743         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
5744         (READONLY_DATA_SECTION): Don't undef.
5745
5746         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
5747         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
5748         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
5749
5750         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
5751         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
5752         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
5753         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
5754
5755         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
5756         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
5757         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5758         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
5759         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
5760         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
5761         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
5762         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
5763         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
5764
5765         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
5766         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
5767         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
5768         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
5769         config/pa/pa64-hpux.h, config/sparc/litecoff.h
5770         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
5771
5772         * config/elfos.h, config/netware.h, config/svr3.h,
5773         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5774         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5775         config/h8300/h8300.h, config/i386/i386-interix.h,
5776         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5777         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
5778
5779         * config/elfos.h, config/netware.h, config/svr3.h,
5780         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5781         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
5782         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5783         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
5784
5785         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
5786         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
5787         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
5788         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
5789         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
5790         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
5791         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
5792         config/rs6000/sysv4.h, config/v850/v850.h
5793         (EXTRA_SECTIONS): Remove in_const/in_rdata.
5794         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
5795
5796         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
5797         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
5798         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
5799         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
5800         * config/alpha/alpha.c (alpha_start_function): Likewise.
5801         (alpha_write_linkage): Likewise.
5802         * config/m32r/m32r.c (m32r_select_section): Likewise.
5803         * config/m88k/m88k.c (m88k_select_section): Likewise.
5804         * config/mips/mips.c (mips_select_rtx_section): Likewise.
5805         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
5806         (rs6000_elf_select_section): Likewise.
5807         * config/v850/v850.c (v850_select_section): Likewise.
5808
5809         * config/1750a/1750a.h, config/i860/sysv3.h
5810         (READONLY_DATA_SECTION_ASM_OP): New.
5811         READONLY_DATA_SECTION_ASM_OP.
5812         * config/i386/interix.c, config/i386/winnt.c
5813         (i386_pe_unique_section): Always use .rdata prefix.
5814         * config/pa/som.h (readonly_data): Always switch to read-only section.
5815         (READONLY_DATA_SECTION): Predicate on flag_pic.
5816         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
5817         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
5818         (READONLY_DATA_SECTION): Update.
5819
5820 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
5821
5822         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
5823         is used without -Wformat.
5824         * c-common.h (warn_format_zero_length): Declare extern.
5825         * c-decl.c (warn_options): Add "format-zero-length".
5826         * c-format.c (warn_format_zero_length): Declare.
5827         (set_Wformat): Set warn_format_zero_length for -Wformat.
5828         (check_format_info): Only warn about zero-length formats if
5829         warn_format_zero_length is true.  Include the format type
5830         name in the warning message.
5831         * doc/invoke.texi: Document -Wformat-zero-length.
5832         * testsuite/gcc.dg/format/zero-length-1.c: New test.
5833
5834 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
5835
5836         * timevar.c: Fix formatting.
5837         * tlink.c: Likewise.
5838         * toplev.c: Likewise.
5839         * tree-dump.c: Likewise.
5840         * tree-inline.c: Likewise.
5841
5842 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5843
5844         * cppinit.c (cpp_post_options): If preprocessed, turn off
5845         traditional.  If traditional, turn off column numbers.
5846         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
5847         * cpptrad.c (handle_newline): Update line_base.
5848         (skip_comment): Handle -Wcomment.
5849
5850 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
5851
5852         * cppinit.c (struct builtin): Remove unused fields.
5853         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
5854         (operator_array): New - was second half of builtin_array.
5855         (init_builtins): Simplify loop over builtin_array/operator_array.
5856
5857 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5858
5859         * defaults.h (UNIQUE_SECTION): Remove.
5860         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
5861
5862 2002-05-17  Richard Henderson  <rth@redhat.com>
5863
5864         * expr.c (init_expr_once): Don't use start/end_sequence.
5865         Use rtx_alloc instead of emit_insn.
5866         * toplev.c (lang_dependent_init): Run init_expr_once here ...
5867         (lang_independent_init): ... not here.
5868
5869 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
5870
5871         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
5872
5873 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5874
5875         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
5876         for fixed registers, possibly used for global register variables.
5877         (initial_elimination_offset, avr_output_function_prologue,
5878         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
5879
5880 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5881
5882         * Makefile.in: Update for cpptrad.c.
5883         * cpphash.h (struct cpp_buffer): New members for buffer
5884         overlays.
5885         (struct cpp_reader): New members for traditional output.
5886         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
5887         * cppinit.c (cpp_create_reader): Set trad_line.
5888         (cpp_destroy): Free trad_out_base if used.
5889         (cpp_read_main_file): Overlay an empty buffer if traditional.
5890         (cpp_finish_options): Don't do builtins.
5891         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
5892         (cpp_handle_option): Handle it.
5893         * cpplex.c (continue_after_nul): New.
5894         (_cpp_lex_direct): Use handle_nul.
5895         * cpplib.h (struct cpp_options): New traditional option.
5896         * cpptrad.c: New file.
5897
5898 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5899
5900         * c-common.c (c_common_init_options): Use C89 for Objective-C,
5901         and set the options flag.
5902         * cppinit.c (lang_flags): Remove objc.
5903         (lang_defaults): Remove OBJC and OBJCXX.
5904         (set_lang): Update.
5905         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
5906         (cpp_handle_option): Remove -+ and -lang-objc++.
5907         For ObjC, just set a flag.
5908         (print_help): Update.
5909         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
5910
5911 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5912
5913         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
5914         bootstrap with -mips3.
5915
5916 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
5917
5918         * final.c: Fix formatting.
5919         * fix-header.c: Likewise.
5920         * flow.c: Likewise.
5921         * fold-const.c: Likewise.
5922         * function.c: Likewise.
5923
5924 2002-05-17  David S. Miller  <davem@redhat.com>
5925
5926         PR c/6689, PR optimization/6615
5927         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
5928         and make it a pointer to rtx.  Update comments.
5929         (update_equiv_regs): When scanning for equivalences, record
5930         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
5931         it while making the equiv replacements.
5932
5933 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5934
5935         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
5936
5937 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
5938
5939         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
5940         when encoding visibility into SYMBOL_REF_FLAG.
5941
5942 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
5943
5944         * expr.c (force_operand): Fix reversed move.
5945
5946 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
5947
5948         * doc/install.texi (Testing): Mention two common DejaGnu warnings
5949         that can be ignored.
5950
5951 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5952
5953         * doc/install.texi (Final install): Recommend to install into a
5954         "clean" target directory.
5955
5956 2002-05-17  Richard Henderson  <rth@redhat.com>
5957
5958         * config/ia64/ia64.md: Use braced strings instead of quoted strings
5959         for code blocks.  Tidy whitespace.
5960
5961 2002-05-17  Richard Henderson  <rth@redhat.com>
5962
5963         * hooks.c (hook_tree_bool_false): New.
5964         * hooks.h: Declare it.
5965         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
5966         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
5967         * target.h (select_section, unique_section): New.
5968         (in_small_data_p): New.
5969         * varasm.c (resolve_unique_section): Use hooks instead of macros.
5970         (variable_section, output_constant_def_contents): Likewise.
5971         (default_select_section, default_unique_section): New.
5972         (categorize_decl_for_section, default_elf_select_section): New.
5973         * output.h: Declare them.
5974
5975         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
5976         (TARGET_ASM_SELECT_SECTION): New.
5977         (SELECT_SECTION): Move ...
5978         * config/darwin.c (machopic_select_section): ... here.
5979         * config/darwin-protos.h: Update.
5980
5981         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
5982         (SELECT_SECTION): Move ...
5983         * config/nextstep.c (nextstep_select_section): ... here.
5984         * config/nextstep-protos.h: Update.
5985
5986         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
5987         (TARGET_ASM_SELECT_SECTION): New.
5988         * config/svr3.h (SELECT_SECTION): Remove.
5989
5990         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
5991         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
5992         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
5993         (alpha_encode_section_info): Use it.
5994         * config/alpha/alpha-protos.h: Update.
5995         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
5996         (SELECT_SECTION, UNIQUE_SECTION): Remove.
5997         (TARGET_ASM_SELECT_SECTION): New.
5998         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
5999
6000         * config/arm/pe.h (UNIQUE_SECTION): Remove.
6001         (TARGET_ASM_UNIQUE_SECTION): New.
6002
6003         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
6004         (avr_unique_section): Rename from unique_section; make static.
6005         * config/avr/avr-protos.h: Update.
6006         * config/avr/avr.h (UNIQUE_SECTION): Remove.
6007
6008         * config/c4x/c4x.h (SELECT_SECTION): Remove.
6009
6010         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
6011         (TARGET_ASM_UNIQUE_SECTION): New.
6012         * config/i386/i386-interix.h: Likewise.
6013         * config/i386/win32.h: Likewise.
6014         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
6015         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
6016         * config/i386/sco5.h (SELECT_SECTION): Remove.
6017         (TARGET_ASM_SELECT_SECTION): New.
6018         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
6019
6020         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
6021         instead of SELECT_SECTION.
6022         * config/m68k/dpx2.h: Likewise.
6023         * config/rs6000/lynx.h: Likewise.
6024
6025         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
6026         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
6027         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
6028         (ia64_in_small_data_p): New.
6029         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
6030         (ia64_aix_select_section, ia64_aix_unique_section): New.
6031         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
6032         (SELECT_SECTION, UNIQUE_SECTION): Remove.
6033
6034         * config/m32r/m32r.h (SELECT_SECTION): Remove.
6035         (TARGET_ASM_SELECT_SECTION): New.
6036         * config/m32r/m32r.c (m32r_select_section): Take align argument.
6037         * config/m32r/m32r-protos.h: Update.
6038
6039         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
6040         (SELECT_SECTION): Move ...
6041         * config/m88k/m88k.c (m88k_select_section): ... here.
6042
6043         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
6044         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
6045         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
6046         (mcore_unique_section): Make static.
6047         * config/mcore/mcore-protos.h: Update.
6048
6049         * config/mips/elf.h (UNIQUE_SECTION): Remove.
6050         (TARGET_ASM_UNIQUE_SECTION): New.
6051         * config/mips/elf64.h: Likewise.
6052         * config/mips/iris6gld.h: Likewise.
6053         * config/mips/linux.h: Likewise.
6054         * config/mips/mips-protos.h: Update.
6055         * config/mips/mips.c (mips_select_section): Add align argument.
6056         * config/mips/mips.h (SELECT_SECTION): Remove.
6057         (TARGET_ASM_SELECT_SECTION): New.
6058
6059         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
6060         * config/mmix/mmix.c (mmix_select_section): Remove.
6061         (mmix_unique_section): Remove.
6062         * config/mmix/mmix-protos.h: Update.
6063
6064         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
6065         (SELECT_SECTION): Move ...
6066         * config/pa/pa.c (pa_select_section): ... here.
6067         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
6068
6069         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
6070         from rs6000_select_section and make static.
6071         (rs6000_elf_unique_section): Similarly.
6072         (rs6000_xcoff_select_section): From xcoff.h.
6073         (rs6000_xcoff_unique_section): Likewise.
6074         * config/rs6000/rs6000-protos.h: Update.
6075         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
6076         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
6077         * config/rs6000/xcoff.h: Likewise.
6078
6079         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
6080         (SELECT_SECTION): Move ...
6081         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
6082
6083         * config/v850/v850.h (SELECT_SECTION): Move ...
6084         * config/v850/v850.c (v850_select_section): ... here.
6085         (TARGET_ASM_SELECT_SECTION): New.
6086
6087         * config/vax/vms.h (SELECT_SECTION): Move ...
6088         * config/vax/vax.c (vms_select_section): ... here.
6089         (TARGET_ASM_SELECT_SECTION): New.
6090
6091         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
6092         for the target hooks.
6093
6094 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
6095
6096         * config/arm/arm.c (emit_multi_reg_push): Do not set
6097         RTX_FRAME_RELATED_P on the SEQUENCE.
6098
6099 2002-05-16  Richard Henderson  <rth@redhat.com>
6100
6101         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
6102         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
6103
6104 2002-05-16  Richard Henderson  <rth@redhat.com>
6105
6106         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
6107
6108         * config/ia64/ia64.c (saveable_obstack): Do not declare.
6109
6110 2002-05-16  Richard Henderson  <rth@redhat.com>
6111
6112         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
6113         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
6114         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
6115         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
6116         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
6117         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
6118         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
6119         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
6120         Revert "Basic block renumbering removal", and two followup patches.
6121
6122 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
6123
6124         * lcm.c (optimize_mode_switching): Revert previous change.
6125
6126 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6127
6128         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
6129         with only extant block numbers.
6130
6131 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
6132
6133         * lcm.c (optimize_mode_switching): Fix typo.
6134
6135 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6136
6137         * flow.c (calculate_global_regs_live): Queue blocks in program order.
6138
6139 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6140
6141         * doc/install.texi (Configuration): Document PWDCMD.
6142
6143 2002-05-16  Dale Johannesen  <dalej@apple.com>
6144
6145         * combine.c (cant_combine_insn_p):  Reenable combinations
6146         involving hard regs unless CLASS_LIKELY_SPILLED_P.
6147
6148 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6149
6150         * c-common.c (cb_register_builtins): Handle more built-ins
6151         here rather than in gcc.c specs.
6152         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
6153         (cpp_options): Pass -O flags even when only preprocessing.
6154         * toplev.c (set_fast_math_flags): New prototype.
6155         (fast_math_flags_set_p): New.
6156         (set_no_fast_math_flags): Remove.
6157         (decode_f_option): Update.
6158         * toplev.h (set_fast_math_flags): Update.
6159         (fast_math_flags_set_p): New.
6160         (set_no_fast_math_flags): Remove.
6161 config:
6162         * c4x/c4x.c (c4x_override_options): Update.
6163
6164 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
6165
6166         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
6167         Default-define here.
6168         (builtin_define_with_value): Can now wrap the expansion in
6169         quotation marks if such is wanted.
6170         (cb_register_builtins): Update calls to builtin_define_with_value.
6171         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
6172         here.
6173         (c_common_init): Set options->stdc_0_in_system_headers.
6174         * c-lex.h: Update prototype of builtin_define_with_value.
6175         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
6176         and REGISTER_PREFIX.
6177
6178         * cppinit.c (VERS, ULP, C, X): Kill.
6179         (builtin_array): Remove entries for __VERSION__,
6180         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
6181         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
6182         a constant.
6183         (init_builtins): Kill off a bunch of now-dead code.
6184         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
6185         -fno-leading-underscore.
6186         (cpp_handle_option): Remove code to set user_label_prefix.
6187         (cpp_post_options): Likewise.
6188
6189         * cpplib.h (struct cpp_options): Remove user_label_prefix.
6190         (stdc_0_in_system_headers): New.
6191         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
6192         stdc_0_in_system_headers) too to decide the value of __STDC__.
6193
6194         * tradcpp.c (user_label_prefix): Kill.
6195         (main): Remove code handling -f(no-)leading-underscore.
6196         (initialize_builtins): Don't define __REGISTER_PREFIX__
6197         or __USER_LABEL_PREFIX__.
6198         (install_value): Wrap compound statement in dummy loop so the
6199         macro works properly in an if statement.
6200
6201
6202 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
6203
6204         * loop.h (struct loop_info): Add member has_prefetch.
6205         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
6206         (prescan_loop): Initialize has_prefetch.
6207         (struct prefetch_info): Change prefetch_in_loop and
6208         prefetch_before_loop from bit fields to ints.
6209         (emit_prefetch_instructions): Several small fixes.
6210         (check_dbra_loop): Don't reverse loop that uses prefetch.
6211
6212 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6213
6214         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
6215         * configure.in: Likewise.
6216         * fixinc/check.tpl: Likewise.
6217         * fixinc/fixinc.dgux: Likewise.
6218         * fixinc/fixinc.svr4: Likewise.
6219         * fixinc/fixinc.winnt: Likewise.
6220         * fixinc/fixincl.sh: Likewise.
6221         * fixproto: Likewise.
6222         * configure: Regenerate.
6223
6224 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6225
6226         Basic block renumbering removal:
6227         * basic_block.h (struct basic_block_def): Renamed index to sindex,
6228         added prev_bb and next_bb fields.
6229         (n_basic_blocks): Renamed to num_basic_blocks.
6230         (last_basic_block): New, index of last basic block.
6231         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
6232         traversing basic block chain.
6233         (BLOCK_NUM): index -> sindex.
6234         (create_basic_block_structure, create_basic_block): Declaration changed.
6235         (debug_num2bb): Declare.
6236         (expunge_block_nocompact): Declaration removed.
6237         (link_block, unlink_block, compact_blocks): Declare.
6238         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
6239         * cfg.c (entry_exit_blocks): Initialize new fields.
6240         (clear_edges, alloc_block, expunge_block, cached_make_edge,
6241         redirect_edge_pred, dump_flow_info, dump_edge_info,
6242         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
6243         free_aux_for_edges): Modified.
6244         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
6245         (expunge_block_nocompact): Removed.
6246         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
6247         find_unreachable_blocks, create_edge_list, print_edge_list,
6248         verify_edge_list, flow_edge_list_print, remove_fake_successors,
6249         remove_fake_edges, flow_reverse_top_sort_order_compute,
6250         flow_depth_first_order_compute, flow_preorder_transversal_compute,
6251         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
6252         flow_dfs_compute_reverse_execute): Modified.
6253         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
6254         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
6255         Modified.
6256         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
6257         merge_blocks_move_predecessor_nojumps,
6258         merge_blocks_move_successor_nojumps, merge_blocks,
6259         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
6260         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
6261         * cfglayout.c (skip_insns_after_block, label_for_bb,
6262         record_effective_endpoints, scope_to_insns_finalize,
6263         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
6264         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
6265         cfg_layout_duplicate_bb): Modified.
6266         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
6267         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
6268         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
6269         flow_loops_find, flow_loop_outside_edge_p): Modified.
6270         * cfgrtl.c (create_basic_block_structure, create_basic_block,
6271         flow_delete_block, compute_bb_for_insn, split_block,
6272         try_redirect_by_replacing_jump, redirect_edge_and_branch,
6273         force_nonfallthru_and_redirect, tidy_fallthru_edge,
6274         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
6275         commit_edge_insertions, commit_edge_insertions_watch_calls,
6276         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
6277         purge_all_dead_edges): Modified.
6278         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
6279         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
6280         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
6281         Modified.
6282         * conflict.c (conflict_graph_compute): Modified.
6283         * df.c (FOR_ALL_BBS): Removed.
6284         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
6285         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
6286         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
6287         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
6288         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
6289         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
6290         * final.c (compute_alignments, final_scan_insn): Modified.
6291         * flow.c (verify_local_live_at_start, update_life_info,
6292         update_life_info_in_dirty_blocks, free_basic_block_vars,
6293         delete_noop_moves, calculate_global_regs_live,
6294         initialize_uninitialized_subregs, allocate_bb_life_data,
6295         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
6296         mark_used_reg, count_or_remove_death_notes): Modified.
6297         * function.c (thread_prologue_and_epilogue_insns): Modified.
6298         * gcse.c (struct null_pointer_info): Change typo of current_block
6299         to basic_block.
6300         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
6301         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
6302         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
6303         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
6304         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
6305         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
6306         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
6307         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
6308         pre_delete, one_pre_gcse_pass, compute_transpout,
6309         invalidate_nonnull_info, delete_null_pointer_checks_1,
6310         free_code_hoist_mem, compute_code_hoist_vbeinout,
6311         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
6312         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
6313         compute_store_table, build_store_vectors, insert_insn_start_bb,
6314         insert_store, replace_store_insn, free_store_memory, store_motion):
6315         Modified.
6316         * global.c (global_alloc, global_conflicts, mark_elimination,
6317         build_insn_chain): Modified.
6318         * graph.c (print_rtl_graph_with_bb): Modified.
6319         * haifa-sched.c (sched_init): Modified.
6320         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
6321         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
6322         if_convert): Modified.
6323         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
6324         compute_insert_delete, pre_edge_lcm, compute_available,
6325         compute_farthest, compute_nearerout, compute_rev_insert_delete,
6326         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
6327         Modified.
6328         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
6329         * loop.c (loop_dump_aux): Modified.
6330         * predict.c (combine_predictions_for_insn, estimate_probability,
6331         last_basic_block_p, process_note_prediction, process_note_predictions,
6332         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
6333         expensive_function_p, estimate_bb_frequencies,
6334         compute_function_frequency): Modified.
6335         * print-rtl.c (print_rtx): Modified.
6336         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
6337         get_exec_counts, compute_branch_probabilities, compute_checksum,
6338         branch_prob, find_spanning_tree): Modified.
6339         * recog.c (split_all_insns, peephole2_optimize): Modified.
6340         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
6341         convert_regs_1, convert_regs_2, convert_regs): Modified.
6342         * regclass.c (scan_one_insn, regclass): Modified.
6343         * regmove.c (mark_flags_life_zones, regmove_optimize,
6344         combine_stack_adjustments): Modified.
6345         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
6346         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
6347         * reorg.c (dbr_schedule): Modified.
6348         * resource.c (find_basic_block, init_resource_info): Modified.
6349         * sbitmap.c (sbitmap_intersection_of_succs,
6350         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
6351         sbitmap_union_of_preds): Modified.
6352         * sched-deps.c (init_dependency_caches): Modified.
6353         * sched-ebb.c (schedule_ebbs): Modified.
6354         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
6355         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
6356         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
6357         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
6358         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
6359         ssa_const_prop): Modified.
6360         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
6361         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
6362         * ssa.c (remove_phi_alternative, find_evaluations,
6363         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
6364         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
6365         make_regs_equivalent_over_bad_edges,
6366         make_equivalent_phi_alternatives_equival,
6367         compute_conservative_reg_partition,
6368         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
6369         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
6370         Modified.
6371
6372 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
6373
6374         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
6375
6376 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
6377
6378         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
6379         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
6380         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
6381         calling CONSTANT_POOL_ADDRESS_P.
6382         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
6383         to decide whether to define __arm__ or __thumb.
6384         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
6385         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
6386
6387 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6388
6389         * config/arc/arc.h (CPP_PREDEFINES): Remove.
6390         (CPP_SPEC): Update.
6391         (TARGET_CPU_CPP_BUILTINS): New.
6392
6393 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6394
6395         * cpphash.h (cpp_macro): Move here, and make expansion a union.
6396         * cppmacro.c (cpp_macro): Remove.
6397         (enter_macro_context, replace_args, warn_of_redefinition,
6398         _cpp_create_definition, cpp_macro_definition): Update.
6399
6400 2002-05-16  Jason Merrill  <jason@redhat.com>
6401
6402         * config/mips/mips.c (mips_output_external): Don't do sdata
6403         optimization for a variable with DECL_COMDAT set.
6404
6405 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
6406
6407         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
6408         Cleanups for accepting modifiers on pointers.
6409         Fix predicate typos.
6410         Allow long pointers as well as int pointers.
6411
6412 2002-05-15  Richard Henderson  <rth@redhat.com>
6413
6414         * varasm.c (merge_weak): Remove special case for extern and common.
6415
6416 2002-05-15  Matt Hiller  <hiller@redhat.com>
6417
6418         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
6419         XFAILing.
6420         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
6421         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
6422         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
6423         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
6424         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
6425         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
6426
6427 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
6428
6429         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
6430
6431 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
6432
6433         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
6434         ("altivec_mfvscr"): Read from VSCR.
6435
6436         Add vscr sets for the following insns: altivec_vctuxs,
6437         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
6438         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
6439         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
6440         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
6441         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
6442         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
6443         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
6444         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
6445         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
6446         altivec_vsum2sws, altivec_vsumsws.
6447
6448         * config/rs6000/rs6000.h: Add VSCR fixed register.
6449         (CALL_REALLY_USED_REGISTERS): Add vscr.
6450         (CALL_USED_REGISTERS): Same.
6451         (FIXED_REGISTERS): Same.
6452         (REG_ALLOC_ORDER): Same.
6453         (reg_class): Add VSCR_REGS.
6454         (REG_CLASS_NAMES): Same.
6455         (REG_CLASS_CONTENTS): Same.
6456         (VSCR_REGNO): New.
6457         (REGISTER_NAMES): Add vscr.
6458         (DEBUG_REGISTER_NAMES): Same.
6459         (ADDITIONAL_REGISTER_NAMES): Same.
6460         (FIRST_PSEUDO_REGISTER): Increment.
6461         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
6462
6463 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
6464
6465         * fold-const.c (fold): Fix a typo.
6466
6467 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
6468
6469         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
6470         comparison against the highest or lowest integer value before
6471         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
6472         transformation and that of an unsigned comparison against 0
6473         right after.
6474
6475 2002-05-15  Richard Henderson  <rth@redhat.com>
6476
6477         * varasm.c (merge_weak): Error for any weakening after definition.
6478         Adjust weakening after use warning to catch more cases.
6479         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
6480         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
6481
6482 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
6483
6484         * invoke.texi (-malign-double): Re-add lost warning.
6485
6486         * i386-protos.h (x86_output_mi_thunk): Declare.
6487         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
6488         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
6489
6490         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
6491         when flag_asynchronous_unwind_tables is set.
6492
6493         * flags.h (flag_reorder_functions): Declare.
6494         * function.c (prepare_function_start): Initialize frequnecy.
6495         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
6496         * Makefile.in (predict.o): Add dependency on target.h and params.h
6497         * defaults.h (HOT_TEXT_SECTION_NAME,
6498         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
6499         * predict.c (choose_function_section): New function.
6500         (estimate_bb_frequencies): Use it.
6501         * toplev.c (flag_reorder_functions): New global variable.
6502         (lang_independent_options): New.
6503         (parse_options_and_default_flags): Set.
6504         * varasm.c (assemble_start_function): Bypass functdion alignment
6505         for never executed functions.
6506         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
6507         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
6508         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6509         Document.
6510
6511         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
6512
6513         * predict.c: Inlude profile.h
6514         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
6515         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
6516         Use the information about maximal counter in the program.
6517
6518         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
6519
6520         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
6521         probably_never_executed_bb_p): New functions.
6522         * cfgcleanup.c (outgoing_edges_match): Use them.
6523         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
6524         (maybe_hot_bb_p, probably_cold_bb_p,
6525         probably_never_executed_bb_p): New functions.
6526
6527         * function.h (function): Add new field function_frequency.
6528         * predict.c (compute_function_frequency): New function.
6529         (estimate_probability): Call it.
6530
6531 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
6532
6533         PR optimization/5172, optimization/5200
6534         * gcse.c (gcse_main): Disable store_motion.
6535
6536 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
6537
6538         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
6539         (c_common_nodes_and_builtins): Use it.
6540         (builtin_define_with_value): New function.
6541         (cb_register_builtins): Define __SIZE_TYPE__,
6542         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
6543         using builtin_define_with_value.  Use consistent notation when
6544         defining __GXX_WEAK__.
6545         (WCHAR_TYPE_SIZE): Don't redefine.
6546         (combine_strings): Don't use WCHAR_TYPE_SIZE.
6547
6548         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
6549         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
6550         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
6551         * tradcpp.c (initialize_builtins): Likewise.
6552         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
6553
6554         * c-lex.h (builtin_define_with_value): Prototype.
6555         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
6556         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
6557         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
6558
6559         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
6560         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
6561         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
6562         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
6563         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
6564         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
6565         config/sparc/sol2-bi.h, config/sparc/sparc.h:
6566         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
6567         to __SIZE_TYPE__ etc from all spec strings. When this makes
6568         extra specs empty, delete them.
6569
6570 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6571
6572         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
6573         for PA8000 or generating dwarf2 call frame information.
6574         (output_call): Remove DO_FRAME_NOTES check from return pointer
6575         optimization.
6576         (following_call): Return 0 when scheduling for PA8000 or generating
6577         dwarf2 call frame information.  Revise comment.
6578
6579 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6580
6581 config/alpha:
6582         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
6583         and __IEEE_FP_INEXACT as appropriate.
6584         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
6585         (CPP_SPEC): Remove ieee defines.
6586         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
6587
6588 2002-05-14  Richard Henderson  <rth@redhat.com>
6589
6590         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
6591         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
6592
6593 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6594
6595         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
6596         (CPP_SPEC): Update.
6597         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
6598         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
6599         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
6600         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
6601         (EXTRA_SPECS): Update.
6602         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
6603         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
6604         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
6605         define TARGET_OS_CPP_BUILTINS if necessary.
6606
6607 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6608
6609         * gcc.c (cpp_options): Must pass -m* and -f* options
6610         to the front end even when only preprocessing.
6611         (cc1_options): Remove redundant -lang-c.
6612         * tradcpp.c (main): Ignore -m options.
6613 objc:
6614         * lang-specs.h: Similarly.
6615
6616 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
6617
6618         * genautomata.c (transform_3): Add code for transformation
6619         `(A,B,...)+C -> A+C,B,...'.
6620
6621 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
6622
6623         * final.c (end_final): Do not output profile_arcs constructor, when
6624         no functions are instrumented.
6625
6626 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
6627
6628         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
6629
6630 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6631
6632         * doc/install.texi: Remove special markup originally required for
6633         HTML generation with texi2html.
6634
6635 2002-05-14  Andreas Schwab  <schwab@suse.de>
6636
6637         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
6638         SELECT_SECTION.
6639         (UNIQUE_SECTION): Define to get small data correctly.
6640
6641         * varasm.c (resolve_unique_section): Add third parameter
6642         flag_function_or_data_sections and use it instead of
6643         flag_function_sections.
6644         (assemble_start_function): Pass flag_function_sections.
6645         (asm_emit_uninitialised): Pass flag_data_sections.
6646         (assemble_variable): Likewise.
6647
6648 2002-05-14  Richard Henderson  <rth@redhat.com>
6649
6650         * config/i386/i386.md: Use define_constants for unspec numbers.
6651         * config/i386/i386.c: Likewise.
6652
6653 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6654
6655         * doc/contrib.texi: Update my entry.
6656
6657 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
6658
6659         * fixinc/inclhack.def (winidss_valist): Limit applicability.
6660         * fixinc/fixincl.x: Regenerated.
6661         * fixinc/tests/base/math.h: Update.
6662         * fixinc/tests/base/testing.h: Likewise.
6663
6664 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
6665
6666         * genattr.c (gen_attr): Don't emit a comma after the last
6667         enumerator.
6668
6669 2002-05-13  Richard Henderson  <rth@redhat.com>
6670
6671         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
6672         by non-local gotos.
6673         * recog.c (peephole2_optimize): Likewise.
6674
6675 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
6676
6677         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
6678         input to O_BINARY.
6679
6680 2002-05-13  Jeffrey A Law  (law@redhat.com)
6681
6682         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
6683         Update prototype and callers.
6684         (propagate_one_insn): Stack pointer adjustments kill MEMs on
6685         the mem_set_list which reference the stack pointer, as do
6686         calls to constant functions as they may clobber outgoing
6687         argument space.
6688
6689         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
6690
6691         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
6692         (ia32_multipass_dfa_lookahead): New function.
6693
6694 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6695
6696         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
6697         (translate_options): Remove 'V'.
6698         (process_command): Similarly.
6699 doc:
6700         * invoke.texi: Remove documentation of 'V'.
6701
6702 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
6703
6704         * config/s390/linux.h: Revert 2002-04-22 changes.
6705
6706 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
6707
6708         * config/fr30/fr30.md: Only allow splits of immediate loads
6709         if the destination is a register.
6710
6711 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6712
6713         * Makefile.in (c-common.o, cppinit.o): Update.
6714         * c-common.c: Include except.h.
6715         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
6716         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
6717         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
6718         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
6719         CPP_PREDEFINES): Handle here.
6720 config:
6721         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
6722         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
6723         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
6724         TARGET_OS_CPP_BUILTINS.
6725         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
6726         (CPP_SPEC, EXTRA_SPECS): Update.
6727         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
6728         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
6729         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
6730         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
6731         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
6732 doc:
6733         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
6734         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
6735
6736 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6737
6738         * emit-rtl.c (global_rtl): Update comment.
6739         (const_double_htab, const_double_htab_hash,
6740         const_double_htab_hash, lookup_const_double): New.
6741         (const_int_htab_hash, const_int_htab_eq): Remove const
6742         qualifiers, which cause tons of warnings with RTL checking on.
6743         (gen_rtx_CONST_DOUBLE): Deleted.
6744         (const_double_from_real_value): New function - bears some
6745         resemblance to the former immed_real_const_1.
6746         (immed_double_const): Moved here from varasm.c and
6747         simplified.
6748         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
6749         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
6750         (gen_rtx): Use immed_double_const.
6751         (init_emit_once): Initialize the const_double_htab.  Use
6752         REAL_VALUE_FROM_INT where possible.  Can now use
6753         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
6754         * varasm.c (struct varasm_status): Remove x_const_double_chain.
6755         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
6756         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
6757         (init_varasm_status, mark_varasm_status): Don't touch
6758         x_const_double_chain.
6759
6760         * output.h: Delete prototype for clear_const_double_mem.
6761         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
6762         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
6763         const_double_from_real_value, not immed_real_const_1, and use
6764         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
6765         CONST_DOUBLE_ATOF.
6766         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
6767         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
6768         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
6769         (gen_rtx_REG): Second arg is unsigned.
6770
6771         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
6772         (excluded_rtx): New, return true for CONST_DOUBLE.
6773         (genmacro): Write nothing for excluded codes.
6774         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
6775         * expr.c (expand_expr): Likewise.
6776         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
6777         CONST_DOUBLE_CHAIN.
6778         * toplev.c (rest_of_compilation): Don't call
6779         clear_const_double_mem.
6780
6781         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
6782         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
6783         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
6784         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
6785         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
6786         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
6787         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
6788         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
6789
6790 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6791
6792         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
6793
6794 2002-05-12  Tom Tromey  <tromey@redhat.com>
6795
6796         * tree.h (copy_node): Don't mention TREE_PERMANENT.
6797
6798 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6799
6800         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
6801         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
6802         * gensupport.h: Prototype new routines.
6803         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
6804         use of printf.
6805         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
6806         (next_comma_elt): Use scan_comma_elt.
6807
6808         * config/i386/i386.md: Use new attribute notation to break up
6809         long lines in define_attr forms.
6810
6811 2002-05-12  Richard Henderson  <rth@redhat.com>
6812
6813         * expr.c (compress_float_constant): New.
6814         (emit_move_insn): Use it.
6815         (float_extend_from_mem): New.
6816         (init_expr_once): Initialize it.
6817         * real.c (exact_real_truncate): New.
6818
6819         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
6820         dropped into memory; penalize for size.
6821         (RTX_COSTS): FLOAT_EXTEND is free.
6822         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
6823         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
6824
6825 2002-05-12  Richard Henderson  <rth@redhat.com>
6826
6827         * profile.h (profile_info): Add missing extern to declaration.
6828         * profile.c (profile_info): Define it.
6829
6830 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6831
6832         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
6833         used for DImode and TImode.
6834
6835 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6836
6837         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
6838         fake a newline.
6839
6840 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
6841
6842         * config/rs6000/rs6000.c (rs6000_default_long_calls,
6843         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
6844         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
6845         (rs6000_override_options): Handle -m(no-)longcall.
6846         (init_cumulative_args, output_mi_thunk): Check for both
6847         longcall and shortcall attributes on the function.
6848         (rs6000_attribute_table): Add "shortcall".
6849         (rs6000_handle_longcall_attribute): Update comment.
6850         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
6851         altivec_expand_ternop_builtin): Add default clauses to switches
6852         to silence warnings.
6853
6854         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
6855         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
6856         (TARGET_OPTIONS): Add longcall and no-longcall.
6857
6858         * config/rs6000/rs6000.md (call_nonlocal_sysv,
6859         call_value_nonlocal_sysv): Split by alternatives.  One pair
6860         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
6861         the call cookie.  The other pair accepts only LR/CTR and has
6862         no restriction.
6863
6864         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
6865         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
6866         tmake_file.
6867         * config/rs6000/rs6000-c.c: New file.
6868         * config/rs6000/t-rs6000-c-rule: New file.
6869         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
6870         Prototype rs6000_pragma_longcall.
6871
6872         * doc/extend.texi: Document shortcall attribute.
6873         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
6874
6875 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6876
6877         * reorg.c (dbr_schedule): Remove unnecessary test.
6878
6879 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
6880
6881         * i386.md (testsi to testqi spliters): New.
6882
6883         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
6884
6885         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
6886
6887         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
6888
6889         * basic-block.h: New flag EDGE_CAN_FALLTHRU
6890         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
6891         that can be made fallthru.
6892
6893         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
6894
6895         * cfglayout.c (cleanup_unconditional_jumps): New static function.
6896         (cfg_layout_initialize): Use it.
6897
6898 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6899
6900         * config/avr/avr.c (avr_mcu_types): Update supported devices.
6901         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6902         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6903
6904 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
6905
6906         * dbxout.c: Fix formatting.
6907         * dependence.c: Likewise.
6908         * df.c: Likewise.
6909         * diagnostic.c: Likewise.
6910         * doloop.c: Likewise.
6911         * dominance.c: Likewise.
6912         * doschk.c: Likewise.
6913         * dwarf2asm.c: Likewise.
6914         * dwarf2out.c: Likewise.
6915         * dwarfout.c: Likewise.
6916
6917 2002-05-10  Richard Henderson  <rth@redhat.com>
6918
6919         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
6920         Convert integers constants as needed.  Replace "nwords" field with
6921         "sizeof_bb".
6922         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
6923         * function.h: Fix typo in comment.
6924         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
6925
6926 2002-05-10  Roger Sayle  <roger@eyesopen.com>
6927
6928         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
6929         into the equivalent (signed char)c > 0.
6930
6931 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
6932
6933         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
6934         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
6935         (struct prefetch_info): Fix spelling of member bytes_accessed.
6936         (emit_prefetch_instructions): Make dump messages more regular;
6937         restructure code to add more dump messages; use new macros for
6938         heuristics. (There are no code generation changes in any of this).
6939
6940 2002-05-10  David S. Miller  <davem@redhat.com>
6941
6942         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
6943         (struct rtx_def): Update unchanging flag comment.
6944         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
6945         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
6946         to be handled to INSN too.
6947         (dbr_schedule): Likewise.
6948         * resource.c (next_insn_no_annul): Likewise.
6949
6950         * cse.c (rtx_cost): Remove multiplication by power of 2 special
6951         casing.
6952
6953 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6954
6955         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
6956         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
6957         (possibly) work around broken /bin/sh.
6958
6959 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6960
6961         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
6962         . as N64/N32 libgcc_s.so subdirs.
6963
6964 2002-05-10  David S. Miller  <davem@redhat.com>
6965
6966         * config/sparc/sparc.md: Use define_constants for unspec numbers.
6967
6968         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
6969         more accurately.
6970         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
6971         comment.
6972         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
6973         * doc/rtl.texi: Document these macros more accurately.
6974         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
6975         JUMP_INSNs and CALL_INSNs.
6976         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
6977         or INSN_FROM_TARGET_P if the code is appropriate.
6978
6979 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6980
6981         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
6982         before using SYMBOL_REF_FLAG (addr).
6983
6984         * config/avr/avr-protos.h (avr_io_address_p): Declare.
6985         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
6986         Make non-static.  Update all callers.
6987         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
6988         New insns to clear/set/test a single bit in I/O address space.
6989
6990 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6991
6992         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
6993
6994 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6995
6996         * Makefile.in: Update.
6997         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
6998         builtin_define_std): New.
6999         (c_common_init): Register CPP builtins callback.
7000         * c-common.h (flag_iso, flag_undef): New.
7001         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
7002         * c-lex.c: Don't include target.h.
7003         (cb_register_builtins): Move to c-common.c.
7004         (init_c_lex): Don't register hook here.
7005         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
7006         (cpp_define, cpp_assert): Remove.
7007         * gcc.c (cc1_options): Pass -undef to front end.
7008         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
7009         (TARGET_INITIALIZER): Update.
7010         * target.h (struct cpp_reader): Don't predeclare.
7011         (struct gcc_target): Remove cpp builtin hook.
7012         * tree.c (default_register_cpp_builtins): Remove.
7013 doc:
7014         * tm.texi: Update.
7015
7016 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7017
7018         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
7019
7020 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7021
7022         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
7023         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
7024
7025 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
7026
7027         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
7028         * config/sparc/libgcc-sparc-glibc.ver: New file.
7029         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
7030         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
7031
7032 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
7033
7034         PR target/6429
7035         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
7036         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
7037         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
7038         base multilibs.
7039         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
7040         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
7041         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
7042         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
7043
7044 2002-05-09  Richard Henderson  <rth@redhat.com>
7045
7046         * config/ia64/ia64.md: Use define_constants for unspec numbers.
7047         * config/ia64/ia64.c: Likewise.
7048
7049 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
7050
7051         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
7052         (save_restore_insns): Likewise.
7053         (mips_expand_prologue, mips_expand_epilogue): Update callers.
7054         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
7055
7056 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
7057
7058         * athlon.md, k6.md, pentium.md, ppro.md): New files.
7059         * i386.md: Move scheduling information into new files.
7060
7061         * i386.md (type attribute): Add "rotate" for rotate insns.
7062         (rotate insns): Set type to "rotate".
7063         (various attributes and function units): Treat rotate like shift.
7064         (pent_pair attribute): Only rotates by one bit position are
7065         pairable.
7066         (sbb insns): Explicitly set pent_pair attribute on a couple
7067         that were missing it.
7068
7069 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
7070
7071         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
7072         make sure that buffer starts on odd word address.
7073         (sh_va_arg): Skip odd fp registers when reading a double precision
7074         value.
7075
7076 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7077
7078         * tree.h (preserve_data, object_permanent_p, type_precision):
7079         Remove.
7080
7081 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7082
7083         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
7084         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
7085 doc:
7086         * cpp.texi: Update for removal of obsolete features.
7087
7088 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
7089                           Jeffrey A Law  (law@redhat.com)
7090
7091         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
7092         the DFA interface for Pentium processors.
7093         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
7094         (attr_pent_pair, ix86_pent_find_pair): Remove.
7095         (ix86_sched_reorder_pentium): Remove.
7096         (ix86_sched_reorder): Remove reordering for Pentium.
7097         * i386.md (Pentium scheduling): Rewrite using DFA description.
7098
7099 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
7100
7101         * cfganal.c (can_fallthru): Fix fast path.
7102         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
7103         with edges to the next block.
7104
7105 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
7106                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
7107
7108         * final.c (end_final): Use C trees to output data structures for profiling.
7109
7110         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
7111         (profile.o): New dependency profile.h
7112         (final.o): New dependency profile.h
7113         * profile.h: New file. New global structure profile_info.
7114         * final.h (count_edges_instrumented_now): Declare.
7115         (current_function_cfg_checksum): Declare.
7116         (function_list): New structure.
7117         (functions_head, functions_tail): New static variables.
7118         (end_final): Emits more data, removed some -ax stuff.
7119         (final): Stores function names and chcksums.
7120         * gcov-io.h (__write_gcov_string): New function.
7121         (__read_gcov_string): New function.
7122         * gcov.c (read_profile): New function.
7123         (create_program_flow_graph): Uses read_profile instead of reading
7124         da_file.
7125         (read_files): Removed da_file checking, it's done by read_profile now.
7126         * libgcc2.c (bb_function_info): New structure.
7127         (bb): New field in structure, removed some -ax stuff.
7128         (__bb_exit_func): Changed structure of da_file.
7129         * profile.c (count_edges_instrumented_now): New global variable.
7130         (current_function_cfg_checksum): New global variable.
7131         (max_counter_in_program): New global variable.
7132         (get_exec_counts): New function.
7133         (compute_checksum): New function.
7134         (instrument_edges): Sets count_edges_instrumented_now.
7135         (compute_branch_probabilities): Uses get_exec_counts instead of
7136         reading da_file.
7137         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
7138         (init_branch_prob): Removed da_file checking, done in get_exec_counts
7139         now.
7140         (end_branch_prob): Removed da_file checking, done in get_exec_counts
7141         now.
7142         * gcov.texi: Updated information about gcov file format.
7143
7144 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
7145
7146         * sbitmap.c: Fix formatting.
7147         * scan.c: Likewise.
7148         * scan-decls.c: Likewise.
7149         * sched-deps.c: Likewise.
7150         * sched-ebb.c: Likewise.
7151         * sched-rgn.c: Likewise.
7152         * sched-vis.c: Likewise.
7153         * sdbout.c: Likewise.
7154         * sibcall.c: Likewise.
7155         * simplify-rtx.c: Likewise.
7156         * ssa.c: Likewise.
7157         * ssa-ccp.c: Likewise.
7158         * ssa-dce.c: Likewise.
7159         * stmt.c: Likewise.
7160         * stor-layout.c: Likewise.
7161         * stringpool.c: Likewise.
7162
7163 2002-05-09  David S. Miller  <davem@redhat.com>
7164
7165         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
7166
7167 2002-05-07  David S. Miller  <davem@redhat.com>
7168
7169         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
7170         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
7171         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
7172         library implementation clobbers the output before the inputs
7173         are fully consumed, use stack temporary for the output.
7174
7175 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
7176
7177         * config/netbsd.h (CPP_SPEC): Remove.
7178         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
7179         * config/i386/netbsd.h (CPP_SPEC): Define.
7180         * config/ns32k/netbsd.h (CPP_SPEC): Define.
7181         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
7182         * config/sparc/netbsd.h (CPP_SPEC): Define.
7183         * config/vax/netbsd.h (CPP_SPEC): Define.
7184
7185 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
7186
7187         * read-rtl.c: Fix formatting.
7188         * real.c: Likewise.
7189         * recog.c: Likewise.
7190         * regclass.c: Likewise.
7191         * regmove.c: Likewise.
7192         * reg-stack.c: Likewise.
7193         * reload1.c: Likewise.
7194         * reload.c: Likewise.
7195         * resource.c: Likewise.
7196         * rtlanal.c: Likewise.
7197         * rtl.c: Likewise.
7198         * rtl-error.c: Likewise.
7199
7200 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7201
7202         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
7203         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
7204
7205 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
7206
7207         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
7208         use __SSE2__ macro instead.
7209         * config/i386/xmmintrin.h: Likewise.
7210
7211 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
7212
7213         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
7214         and use it in all invocations of these macros.  Clean up comments.
7215         * rtl.c (rtl_check_failed_flag): Add an argument for the name
7216         of the flag access macro whose check failed.
7217         * doc/rtl.texi (Flags): Document additional flag uses.
7218
7219 2002-05-08  Robert Spier <rspier@pobox.com>
7220             Neil Booth  <neil@daikokuya.demon.co.uk>
7221
7222         PR preprocessor/6521
7223         * cppfiles.c (handle_missing_header): Don't do anything
7224         different for <> includes.
7225 doc:
7226         * cppopts.texi: Update documentation for -MG.
7227
7228 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
7229
7230         * cpplex.c (cpp_interpret_charconst): Truncate as well as
7231         sign-extend.
7232 doc:
7233         * cpp.texi: Clarify multichar charconst valuation.
7234
7235 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
7236
7237         * doc/invoke.texi: Document -mwindiss option.
7238
7239 2002-05-08  Jason Merrill  <jason@redhat.com>
7240
7241         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
7242
7243         * dwarf2out.c (gen_type_die): Abort on broken recursion.
7244
7245         PR c++/6381
7246         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
7247         REAL_CST.
7248
7249 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
7250
7251         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
7252         little-endian multilibs to override arm/thumb multilibs.
7253         Do not build hardware floating point multilibs, nor apcs-26
7254         multilibs for the Thumb.
7255
7256 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
7257
7258         PR c/6569.
7259         * varasm.c (mark_weak): New function.
7260         (merge_weak): Use it.  Do not call declare_weak.
7261         (declare_weak): Use merge_weak.
7262
7263 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
7264
7265         * cse.c (dead_libcall_p): Update counts.
7266         (delete_trivially_dead_insns): Update call of dead_libcall_p.
7267
7268 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
7269
7270         * cfglayout.c (function_tail_eff_head): Rename to ...
7271         (function_footer): ... this one.
7272         (unlink_insn_chain): New functions.
7273         (label_for_bb): Only call block_label and emit debug message.
7274         (record_effective_endpoints): Actually unlink the headers and footers.
7275         (fixup_reorder_cahin): Re-insert the unlinked sequences.
7276         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
7277         * cfglayout.h (struct reorder_block_def): New fields footer/header;
7278         remove eff_head/eff_end.
7279         * rtl.h (set_first_insn): Declare.
7280         * emit-rtl.c (set_first_insn): New function.
7281
7282         * cfglayout.c (fixup_reorder_chain): Dump duplicated
7283         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
7284         cfg_layout_duplicate_bb): New global function.
7285         (duplicate_insn_chain): New static function.
7286         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
7287         cfg_layout_duplicate_bb): Declare.
7288         (struct reorder_block_def): Add "original" field.
7289         * emit-rtl.c (emit_copy_of_insn_after): New function.
7290         * rtl.h (emit_copy_of_insn_after): Declare.
7291
7292         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
7293         (fixup_reorder_chain): properly handle edges to exit block.
7294
7295 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7296                                Jan Hubicka  <jh@suse.cz>
7297
7298         * basic-block.h (note_prediction_to_br_prob): declare.
7299         * c-semantics.c: Inlucde predit.h
7300         (expand_stmt): predict GOTO_STMT as not taken.
7301         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
7302         (cleanup_cfg): Do not free tail_recursion_list.
7303         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
7304         (flow_delete_block): Kill predictions past end of basic block.
7305         * output.h (delete_unreachable_blocks): Declare.
7306         * predict.c (predicted_by_p, process_note_predictions,
7307         process_note_prediction, last_block_p): New function.
7308         (estimate_probability): Bypass loop on PRED_CONTINUE;
7309         do not handle noreturn heuristics; kill PRED_RETURN; add
7310         PRED_EARLY_RETURN.
7311         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
7312         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
7313         * predict.h (IS_TAKEN): New constant.
7314         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
7315         * rtl.c (NOTE_INSN_PREDICTION): New.
7316         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
7317         New macro.
7318         (insn_note): add NOTE_INSN_PREDICTION.
7319         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
7320         CFG; free tail_recursion_label_list.
7321         * stmt.c: Include predict.h;
7322         (return_prediction): New.
7323         (expand_value_return): Use it.
7324         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
7325
7326 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
7327
7328         * config/mips/mips.md: Name the unspecs with define_constant.
7329         (*HILO_delay): Rename to 'hilo_delay' (no star).
7330         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
7331         (reload_outdi, reload_outsi): Likewise.
7332
7333 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
7334
7335         * toplev.c: Fix formatting.
7336
7337 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
7338
7339         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
7340         * configure.in (ac_rtlflag_checking): New.
7341         * doc/install.texi (--enable-checking): Document RTL flag checking.
7342
7343 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7344
7345         * c-common.c (c_common_init): Set options->unsigned_wchar.
7346         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
7347         group target dependencies.
7348         (init_builtins, cpp_handle_option): Update.
7349         * cpplex.c (cpp_interpret_charconst): Update.
7350         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
7351         signed_char to unsigned_char, group target dependencies.
7352         * defaults.h (WCHAR_UNSIGNED): Remove.
7353         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
7354 config:
7355         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
7356         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
7357         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
7358         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
7359         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
7360 doc:
7361         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
7362
7363 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
7364
7365         * fixinc/inclhack.def (windiss_math1): New fix.
7366         (windiss_math2): Likewise.
7367         (windiss_valist): Likewise.
7368         * fixinc/fixincl.x: Regenerated.
7369
7370 2002-05-07  Andreas Jaeger  <aj@suse.de>
7371
7372         * genautomata.c (output_internal_min_issue_delay_func): Add
7373         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
7374         (output_internal_trans_func): Likewise.
7375
7376 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
7377
7378         * pa.c (hppa_profile_hook): Use force_reg to get the address
7379         of the profile hook into an appropriate pseudo register.
7380
7381 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
7382
7383         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
7384         (LINK_START_SPEC): Handle it.
7385         (LINK_OS_SPEC): Likewise.
7386         (CPP_SPEC): Likewise.
7387         (STARTFILE_SPEC): Likewise.
7388         (LIB_SPEC): Likewise.
7389         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
7390         all platforms.
7391         (CRTSAVRES_DEFAULT_SPEC): New macro.
7392         (LIB_WINDISS_SPEC): New macro.
7393         (CPP_OS_WINDISS_SPEC): Likewise.
7394         (STARTFILE_WINDISS_SPEC): Likewise.
7395         (ENDFILE_WINDISS_SPEC): Likewise.
7396         (LINK_START_WINDISS_SPEC): Likewise.
7397         (LINK_OS_WINDISS_SPEC): Likewise.
7398         * config/rs6000/windiss.h: New file.
7399
7400 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
7401
7402         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
7403
7404 2002-05-06  David S. Miller  <davem@redhat.com>
7405
7406         * config/sparc/sparc.md (shift insns): Do not mask off
7407         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
7408         take care of it.
7409
7410 2002-05-06  Richard Henderson  <rth@redhat.com>
7411
7412         PR c++/6212
7413         * expr.c (highest_pow2_factor_for_type): New.
7414         (expand_assignment): Use it.
7415
7416 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
7417
7418         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
7419         unspec_volatile.
7420         ("altivec_mfvscr"): Same.
7421
7422 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
7423
7424         * rtl.h (struct rtx_def): Update comments.
7425         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
7426         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
7427         RTL_FLAG_CHECK macros with list of expected RTL codes.
7428         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
7429         (rtl_check_failed_flag): New.
7430         * reload1.c (reload): Use REG macro before changing rtx to MEM.
7431         (reload_cse_noop_set_p): Check rtx code before using access macro.
7432         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
7433         before using access macro.
7434
7435 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
7436
7437         * doc/rtl.texi (Flags): Update to reflect current usage.
7438
7439 2002-05-06  Roger Sayle  <roger@eyesopen.com>
7440
7441         PR opt/3995
7442         * fold-const.c (sign_bit_p): New function.
7443         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
7444         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
7445         Reapply fold when converting (A & C) == C into (A & C) != 0.
7446         (fold_binary_op_with_conditional_arg): Fix typo in comment.
7447
7448 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7449
7450         * c-common.c (warn_multichar): New.
7451         (c_common_init): Set CPP's warn_multichar.
7452         * c-common.h (warn_multichar): New.
7453         * c-decl.c (warn_multichar): Remove.
7454         * c-lex.c (lex_charconst): Update.
7455         * c-tree.h (warn_multichar): Remove.
7456         * cppexp.c (eval_token): Sign-extend charconst value.
7457         * cppinit.c (cpp_create_reader): Set warn_multichar.
7458         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
7459         each character.  Update prototype.  Sign-extend the result.
7460         * cpplib.h: Fix conditions.
7461         (struct cpp_options): Add new warning flag.
7462         (cpp_interpret_charconst): Update prototype.
7463 doc:
7464         * cpp.texi: Update documentation.
7465
7466 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
7467
7468         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
7469         Fix typo in usage of allof instead of unit.
7470
7471 2002-05-06  Richard Henderson  <rth@redhat.com>
7472
7473         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
7474         and any jump or call for IN.
7475
7476 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
7477
7478         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
7479         -msse2.
7480         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
7481
7482 2002-05-06  Roger Sayle  <roger@eyesopen.com>
7483
7484         * fold-const.c (lshift-double): Cast the high word to an unsigned
7485         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
7486         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
7487         avoid compiler warning.  (fold): Remove redundant code from
7488         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
7489
7490 2002-05-06  Jeff Law  <law@redhat.com>
7491
7492         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
7493         * pa.c (pa_adjust_cost): Remove all true dependency cost
7494         adjustments.  Also remove support for non-DFA scheduling.
7495         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
7496         to adjust true dependency costs.  Update various comments.
7497         (7100lc, 7200, 7300 scheduling): Simplify by combining the
7498         FP ALU & MPY units into a single unit.
7499
7500 2002-05-06  Catherine Moore  <clm@redhat.com>
7501
7502         * config/v850/v850.c (compute_register_save_size): Make sure
7503         to count all of the registers that will be saved.
7504
7505 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
7506
7507         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
7508
7509 2002-05-06  David S. Miller  <davem@redhat.com>
7510
7511         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
7512         allow result to overlap input operands in memory.
7513
7514 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7515
7516 doc:
7517         * cpp.texi: Update multichar charconst docs.
7518
7519 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7520
7521         * cpplex.c (cpp_interpret_charconst): Sign-extend each
7522         character.  Don't ignore excess characters.  Treat
7523         multicharacter character constants as signed.
7524         (cpp_parse_escape): Clarify diagnostic.
7525
7526 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
7527
7528         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
7529         use add instead of shift.
7530         (ashldi3_sp64): Likewise.
7531         (ashlsi3_const1, ashldi3_const1): Remove.
7532         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
7533         * config/sparc/sparc.c (const1_operand): New.
7534
7535 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
7536
7537         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
7538
7539 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
7540
7541         PR target/6561
7542         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
7543
7544 2002-05-05  Richard Henderson  <rth@redhat.com>
7545
7546         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
7547         memory latency adjustments.
7548         (alpha_variable_issue): Remove.
7549         (alpha_use_dfa_pipeline_interface): New.
7550         (alpha_multipass_dfa_lookahead): New.
7551         * config/alpha/alpha.md: Remove define_function_unit scheduling;
7552         include new dfa scheduling.
7553         (attr type): Add none.
7554         (blockage): Use it.
7555         * config/alpha/ev4.md: New.
7556         * config/alpha/ev5.md: New.
7557         * config/alpha/ev6.md: New.
7558
7559 2002-05-05  David S. Miller  <davem@redhat.com>
7560
7561         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
7562
7563 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
7564
7565         * cse.c: Fix formatting.
7566         * emit-rtl.c: Likewise.
7567
7568 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
7569
7570         * genautomata.c (initiate_states): Add additional guard to
7571         initialize `units_array'.
7572
7573 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
7574
7575         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
7576         process_unit_to_form_the_same_automaton_unit_lists,
7577         form_the_same_automaton_unit_lists
7578         check_unit_distributions_to_automata): New prototypes and
7579         functions.
7580         (check_automata): Rename it into `check_automata_insn_issues'.
7581         (unit_decl): New fields `the_same_automaton_unit' and
7582         `the_same_automaton_message_reported_p'.
7583         (unit_decl_t): New typedef.
7584         (the_same_automaton_lists): New gloval variable.
7585         (unit_regexp, unit_set_el, units_array, units_cmp,
7586         output_get_cpu_unit_code_func): Use the typedef.
7587         (evaluate_max_reserv_cycles): Increment
7588         `description->max_insn_reserv_cycles'.
7589         (initiate_states): Don't increment `max_cycles_num'.
7590         (transform_insn_regexps): Move code around transformation of
7591         regexps from `generate'.
7592         (generate): Remove call of `transform_insn_regexps'.
7593         (expand_automata): Call `transform_insn_regexps' and
7594         `check_unit_distributions_to_automata'.  Check errors before
7595         `generate'.
7596
7597         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
7598         automaton `ultrasparc3_1'.
7599
7600 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7601
7602         * c-common.c (c_common_init): Set up CPP arithmetic.
7603         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
7604         something reasonable for the host.
7605         (sanity_checks): Add checks.
7606         (cpp_read_main_file): Call sanity_checks() from here...
7607         (cpp_post_options): ... not here.
7608         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
7609         * cpplib.h (struct cpp_options): New member int_precision.
7610
7611 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7612
7613         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
7614
7615 2002-05-04  David S. Miller  <davem@redhat.com>
7616
7617         * config/sparc/linux.h, config/sparc/linux64.h
7618         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
7619
7620         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
7621         more RTX codes.
7622         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
7623
7624         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
7625         of SETs.
7626
7627 2002-05-05  Tim Josling  <tej@melbpc.org.au>
7628
7629         * treelang; New directory for new sample language treelang.
7630
7631 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7632
7633         * Makefile.in (c-lex.o): Update.
7634         * c-lex.c: Include target.h.
7635         (cb_register_builtins): New.
7636         (init_c_lex): Set builtins callback.
7637         * c-lex.h (cpp_define, cpp_assert): New prototypes.
7638         * cppinit.c (init_builtins): Use callback, including for
7639         GXX_WEAK.
7640         * cpplib.h (struct cpp_callbacks): New member.
7641         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
7642         (TARGET_INITIALIZER): Update.
7643         * target.h (struct gcc_target): New hook.
7644         * tree.c (default_register_cpp_builtins): New.
7645         * tree.h (default_register_cpp_builtins): New.
7646 doc:
7647         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
7648
7649 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7650
7651         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
7652         (cpp_post_options): Move sanity checks to...
7653         (sanity_checks): New.
7654         * cpplex.c (maybe_read_ucs): Fix prototype.
7655         (parse_string, cpp_parse_escape): Cast for %c format specifier.
7656         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
7657         if necessary.
7658
7659 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
7660
7661         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
7662         builtins.  Use V2DI patterns instead of TI for logical operations.
7663         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
7664         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
7665         (ix86_expand_builtins): Change the pattern used for movntdq.
7666         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
7667         sse2_nandv2di3): New patterns.
7668         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
7669         on operands.
7670         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
7671         (cvtdq2pd): Correct mode on operand 1.
7672         (sse2_umulsidi3): Describe without unspec.
7673         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
7674         machine modes.
7675         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
7676         (ashlv2di3): Likewise, from sse2_ashlv2di3.
7677         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
7678         ashlv4si3, ashlv2di3): Use SImode for shift count.
7679         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
7680         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
7681         New patterns.
7682         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
7683         New typedefs.
7684         (__m128i, __m128d): New macros.
7685         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
7686         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
7687         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
7688         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
7689         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
7690         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
7691         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
7692         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
7693         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
7694         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
7695         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
7696         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
7697         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
7698         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
7699         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
7700         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
7701         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
7702         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
7703         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
7704         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
7705         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
7706         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
7707         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
7708         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
7709         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
7710         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
7711         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
7712         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
7713         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
7714         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
7715         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
7716         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
7717         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
7718         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
7719         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
7720         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
7721         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
7722         functions.
7723         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
7724         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
7725
7726 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
7727
7728         * dwarf2out.c: Fix formatting.
7729         * varasm.c: Likewise.
7730
7731 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
7732
7733         PR c/6543
7734         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
7735         clobber and use result as temporary value.
7736
7737 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
7738
7739         * expr.c (force_operand): Use expand_simple_* to handle more
7740         cases.
7741
7742 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7743
7744         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
7745         and sign-extension.
7746         (lex_charconst): Update for change in prototype of
7747         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
7748         appropriately.
7749         * cpphash.h (BITS_PER_CPPCHAR_T): New.
7750         * cppinit.c (cpp_create_reader): Initialize them for no
7751         change in semantics.
7752         (cpp_post_options): Add sanity checks.
7753         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
7754         and truncation issues.  Calculate in type cppchar_t.
7755         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
7756         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
7757         run-time dependent precision correctly.  Return whether the
7758         result is signed or not.
7759         * cpplib.c (dequote_string): Use cppchar_t; update.
7760         * cpplib.h (cppchar_signed_t): New.
7761         struct cpp_options): New precision members.
7762         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
7763         * cppexp.c (eval_token): Update.
7764
7765 2002-05-03  David S. Miller  <davem@redhat.com>
7766
7767         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
7768         * config/sparc/sparc.c (sparc_rtx_costs): New function
7769         implementing RTX_COSTS and CONST_COSTS.
7770         * config/sparc/sparc.h (CONST_COSTS): Delete.
7771         (RTX_COSTS_CASES): Define.
7772         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
7773         the work.
7774
7775         * config/sparc/sparc.md (DFA schedulers): Split out...
7776         * config/sparc/cypress.md, config/sparc/hypersparc.md,
7777         config/sparc/sparclet.md, config/sparc/supersparc.md,
7778         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
7779
7780         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
7781         checks on it, always defined for Sparc.
7782
7783         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
7784         Tweak, and add more detailed comments.
7785
7786 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
7787
7788         * Re-apply patch accidentally reverted with
7789         DFA scheduler merge: remove all rules and variables to slurp
7790         source files out of libiberty and rebuild them with HOST_CC.
7791         ($(HOST_PREFIX_1)varray.o): New rule.
7792         (genattrtab rule): Word wrap.
7793
7794 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7795
7796         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
7797         (CPP_SUBTARGET_SPEC): Define.
7798         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
7799         cpp_subtarget specs.
7800         (CPP_SPEC): Redefine to include %(cpp_subtarget).
7801
7802 2002-05-03  David S. Miller  <davem@redhat.com>
7803
7804         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
7805         * target.h (struct gcc_target): Delete cycle_display member.
7806
7807         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
7808         (rtx_needs_barrier): Delete reference to cycle_display unspec.
7809         (ia64_sched_reorder2): Mention need for cycle display handling
7810         once such notes exist.
7811
7812 2002-05-03  Richard Henderson  <rth@redhat.com>
7813
7814         * real.c (etoasc): Strip most trailing zeros for clarity.
7815         * sched-vis.c: Include real.h.
7816         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
7817         * Makefile.in (sched-vis.o): Add real.h.
7818
7819 2002-05-03  David S. Miller  <davem@redhat.com>
7820
7821         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
7822         no longer needed.
7823
7824 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
7825
7826         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
7827         when we get an out of range literal.
7828         (altivec_expand_ternop_builtin): Same.
7829         (altivec_expand_unop_builtin): Same.
7830         (altivec_expand_builtin): Same, for dss.
7831         (altivec_expand_builtin): Use trees instead of rtl when
7832         determining literal argument validity.
7833
7834 2002-05-03  David S. Miller  <davem@redhat.com>
7835
7836         Delete cycle display scheduling hook.
7837         * config/ia64/ia64.c (ia64_cycle_display,
7838         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
7839         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
7840         and use emit_insn_before instead of ia64_emit_insn_before.
7841         * config/ia64/ia64.md (unspec usage): Delete cycle display.
7842         (cycle_display): Delete insn pattern.
7843         * config/sparc/sparc.md (unspec usage): Delete cycle display.
7844         (cycle_display): Delete insn pattern.
7845         * config/sparc/sparc.c (sparc_cycle_display,
7846         TARGET_SCHED_CYCLE_DISPLAY): Delete.
7847         * doc/md.texi (cycle_display): Don't mention.
7848         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
7849
7850 2002-05-03  Richard Henderson  <rth@redhat.com>
7851
7852         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
7853         * recog.h: Declare them.
7854
7855         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
7856         * config/sparc/sparc.md: Use store_data_bypass_p instead.
7857         * config/sparc/sparc-protos.h: Update.
7858
7859 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7860
7861         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
7862         -D__arch64__.  Add -D_LP64.
7863         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
7864         from sparc.h.
7865         (CPP_ARCH64_SPEC): Likewise.
7866         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
7867         (NO_BUILTIN_SIZE_TYPE): Undef.
7868
7869 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
7870
7871         * genautomata.c (min_issue_delay_pass_states): Change return type
7872         in the prototype.
7873         (min_issue_delay_pass_states): Change the algorithm.
7874         (min_issue_delay): Set up min_insn_issue_delay for the state.
7875         (output_min_issue_delay_table): Interchange the nested loops and
7876         and initiate min_insn_issue_delay for states.
7877
7878 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
7879
7880         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
7881         jump is simplejump.
7882
7883 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
7884
7885         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
7886         sequence.
7887
7888 2002-05-03  Richard Henderson  <rth@redhat.com>
7889
7890         PR opt/6534
7891         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
7892         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
7893         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
7894         code before JUMP, not EARLIEST.
7895
7896 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7897
7898         * c-format.c (check_format_info_main): Don't check for presence of
7899         parameter for * width until after operand number has been read,
7900         and only check for it if format parameters are available.
7901         Fixes PR c/6547.
7902
7903 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7904
7905         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
7906         (LINK_SPEC): Undef before defining.
7907
7908 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7909
7910         PR preprocessor/6489
7911         * tradcpp.c (fixup_newlines): New.
7912         (main, finclude): Use it.
7913
7914 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
7915
7916         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
7917         * config/mips/mips.c (mips_unique_section): Strip encoding from
7918         decl name.
7919
7920 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7921
7922         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
7923         mode.
7924
7925 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7926
7927         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
7928         (Specific): Removed buildstats references.
7929         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
7930         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
7931         Accomodate Solaris versions beyond 8.
7932         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
7933         (Specific, *-*-solaris2.8): Removed, obsolete.
7934
7935 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7936
7937         PR target/6542
7938         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
7939         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
7940         fill leaf_reg_remap with identity.
7941         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
7942
7943 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7944
7945         * config/h8300/crti.asm: Remove trailing spaces.
7946         * config/h8300/h8300.c: Likewise.
7947         * config/h8300/lib1funcs.asm: Likewise.
7948
7949 2002-05-02  Jason Merrill  <jason@redhat.com>
7950
7951         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
7952         * c-decl.c (c_init_decl_processing): Use it.
7953         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
7954         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
7955         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
7956
7957 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7958
7959         * regrename.c: Fix formatting.
7960         * tree.c: Likewise.
7961
7962 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
7963
7964         * i386.md (attribute memory): Handle compares properly.
7965
7966 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
7967
7968         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
7969         to none.
7970
7971 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7972
7973         * function.c: Fix formatting.
7974
7975 2002-05-02  Jan Hubicka  <jh@suse.cz>
7976
7977         * haifa-sched.c (schedule_insn): Print table of instructions and
7978         reservations.
7979         (sched_block): Do not print ready list at verbosity level 1.
7980         * sched-vis.c (print_insn): Make global.
7981         * sched-ebb.c (ebb_print_insn): Rename from...
7982         (print_insn): ... this one.
7983         * sched-int.h (print_insn): Declare
7984
7985 2002-05-02  Richard Henderson  <rth@redhat.com>
7986
7987         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
7988         emitted by cycle_display.
7989
7990 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
7991
7992         * doc/install.texi (*-*-freebsd*): Update to latest status.
7993
7994 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
7995
7996         PR target/6540
7997         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
7998         * config/float-sparc.h: Assume 128-bit long double if
7999         __LONG_DOUBLE_128__ is defined.
8000
8001 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
8002
8003         * genattrtab.c (write_function_unit_info): Add a dummy element
8004         when num_units == 0.
8005
8006 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8007
8008         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
8009         TYPE_MODE (double_type_node) instead of DFmode.
8010
8011 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
8012
8013         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
8014         jumps post reload.
8015         * toplev.c (rest_of_compilation): Revert Richard's patch.
8016
8017 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8018
8019         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
8020
8021 2002-05-02  Catherine Moore  <clm@redhat.com>
8022
8023         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
8024
8025 2002-05-02  Kazu Hirata  <kazu@hxi.com>
8026
8027         * combine.c: Fix comment typos.
8028         * expr.c: Likewise.
8029         * genautomata.c: Likewise.
8030         * stmt.c: Likewise.
8031         * tree.h: Likewise.
8032
8033 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
8034
8035         * doc/install.texi: State GNAT version requirements.
8036
8037 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
8038
8039         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
8040         of the frame pointer or arg pointer register which strict register
8041         checking is not enabled.
8042
8043 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
8044
8045         * gcc.dg/altivec-8.c: New.
8046
8047         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
8048         PRE_INC and PRE_DEC for altivec modes.
8049
8050 2002-05-01  Bruce Korb  <bkorb@gnu.org>
8051
8052         * fixinc/check.tpl(set-writable): make sure the function exists first
8053         * fixinc/inclhack.def(alpha_assert): fix test_text
8054         * fixinc/tests/base/assert.h: add in missing result
8055
8056 2002-05-01  Jeff Law  <law@redhat.com>
8057
8058         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
8059         'T' constraint.
8060
8061 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
8062
8063         * dbxout.c (dbxout_type): Emit size information for range types,
8064         as well, but only when using GDB extensions.
8065
8066 2002-05-01  Richard Henderson  <rth@redhat.com>
8067
8068         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
8069         target-independent gnu binutils date test.
8070
8071 2002-05-01  Richard Henderson  <rth@redhat.com>
8072
8073         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
8074         info before expunging the block.
8075
8076 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
8077
8078         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
8079         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
8080         -M -or -MM is in effect.
8081
8082 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
8083
8084         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
8085         A29k configurations.
8086         * doc/install.texi: Update to match.
8087
8088 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8089
8090         PR bootstrap/6514
8091         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
8092         for duplicates. Always loop over whole list.
8093
8094 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8095
8096         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
8097
8098 2002-05-01      Joel Sherrill <joel@OARcorp.com>
8099
8100         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
8101         support routines.
8102
8103 2002-05-01      Joel Sherrill <joel@OARcorp.com>
8104
8105         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
8106
8107 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
8108
8109         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
8110         (nabs_nopower): Same.
8111         (floatdisf2): New pattern.
8112         (absdi2): Convert to define_insn_and_split.
8113         (nabsdi2): Same.
8114         (trunctfsf2): Same.
8115         (floatditf2): Same.
8116         (floatsitf2): Same.
8117         (fix_trunctfdi2): Same.
8118         (fix_trunctfsi2): Same.
8119
8120 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
8121
8122         * doc/install.texi: Update Texinfo version requirement
8123         documentation.
8124
8125 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
8126
8127         PR target/6512, PR target/5628
8128         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
8129         when memory is not aligned.
8130         (movdf_insn_v9only_vis): Likewise.
8131         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
8132         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
8133         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
8134
8135 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
8136
8137         * gcc.dg/altivec-7.c: New.
8138
8139         * config/rs6000/altivec.h: Cleanup.
8140
8141 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
8142
8143         * doc/invoke.texi (Option Summary): Add -mvrsave=.
8144         (RS/6000 and PowerPC Options): Document -mvrsave=.
8145
8146         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
8147         (rs6000_altivec_vrsave_string): Same.
8148         (rs6000_override_options): Call rs6000_parse_vrsave_option.
8149         (rs6000_parse_vrsave_option): New.
8150         (rs6000_stack_info): Only generate vrsave instructions when
8151         TARGET_ALTIVEC_VRSAVE.
8152
8153         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
8154         (rs6000_altivec_vrsave_string): Define extern.
8155         (rs6000_altivec_vrsave): Same.
8156         (TARGET_ALTIVEC_VRSAVE): New.
8157
8158 2002-04-30  Richard Henderson  <rth@redhat.com>
8159
8160         PR opt/6516
8161         * toplev.c (rest_of_compilation): Don't run cross-jump before
8162         bb-reorder.
8163
8164 2002-04-30  Tom Rix  <trix@redhat.com>
8165
8166         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
8167         check which_alternative.
8168
8169 2002-04-30  Kazu Hirata  <kazu@hxi.com>
8170
8171         * cpplex.c: Fix comment formatting.
8172         * function.c: Likewise.
8173         * integrate.c: Likewise.
8174         * regrename.c: Likewise.
8175         * sibcall.c: Likewise.
8176         * simplify-rtx.c: Likewise.
8177         * tree-inline.c: Likewise.
8178
8179 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8180
8181         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
8182         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
8183         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
8184         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
8185         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
8186         * pa/x-ada: New file.  Define ADA_CFLAGS.
8187
8188 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
8189
8190         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
8191         from MMIX_LAST_REGISTER_FILE_REGNUM.
8192         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
8193         (struct machine_function): New member highest_saved_stack_register
8194         previously static variable in mmix.c.
8195         (MACHINE_DEPENDENT_REORG): Define.
8196         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
8197         (MMIX_OUTPUT_REGNO): New.
8198         (mmix_target_asm_function_prologue): Move calculation of last used
8199         saved-stack-register into...
8200         (mmix_machine_dependent_reorg): New function.  Update to also handle
8201         !TARGET_ABI_GNU.
8202         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
8203         register names, simplify somewhat by new variable regno.
8204         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
8205         register.
8206         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
8207         emitting register names.
8208         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
8209         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
8210         Remove fixed FIXME.
8211         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
8212         Declare.
8213
8214         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
8215
8216 2002-04-30  Richard Henderson  <rth@redhat.com>
8217
8218         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
8219         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
8220         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
8221         emit_tfmode_cvt): New.
8222         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
8223         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
8224         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
8225         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
8226         * config/sparc/sparc-protos.h: Update.
8227
8228 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
8229
8230         * install.texi (Final install): Add to the list of info to include
8231         in a report of a successful bootstrap, and add link to 3.1 list.
8232
8233 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
8234
8235         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
8236         (mode): Add vector modes
8237         (i387): Kill attribute.
8238         (unit): New attribute.
8239         (length_immediate): Grok new types.
8240         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
8241         (modrm): Use "unit".
8242         (memory): Handle MMX/SSE properly.
8243         (scheduling descriptions): Kill uses of fop1.
8244         (sse, mmx, fp patterns): Set type and mode properly.
8245
8246 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
8247
8248         * pa.c (override_options): Default to PA8000 scheduling.
8249         * doc/invoke.texi (HP-PA options): Mention newly added 7300
8250         scheduling parameter.
8251
8252         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
8253         handling of double precision multiplies.
8254
8255         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
8256         fpdiv and fpsqrt instructions.
8257         (7200 & 7300 scheduling): Fix typo in handling of
8258         store-load and store-store penalties.
8259
8260 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8261
8262         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
8263         mips.  Add two missing commas.
8264
8265 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
8266
8267         * doc/contrib.texi (Contributors): Update Paolo Carlini's
8268         and Benjamin Kosnik's entries.
8269
8270 2002-04-29  David S. Miller  <davem@redhat.com>
8271
8272         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
8273         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
8274         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
8275         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
8276
8277 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8278
8279         * combine.c (find_split_point): Use gen_int_mode.
8280
8281 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
8282
8283         Merging code from dfa-branch:
8284
8285         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
8286
8287         * genautomata.c (output_reserv_sets): Fix typo.
8288
8289         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
8290
8291         * genautomata.c (output_reserv_sets): Remove
8292         next_cycle_output_flag.
8293
8294         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
8295
8296         * sched-rgn.c (init_ready_list): Make the DFA code handle
8297         USE/CLOBBER insns in the same way as the traditional
8298         scheduler.
8299         (new_ready): Similarly..
8300
8301         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
8302
8303         * haifa-sched.c (schedule_block): Change the DFA state only after
8304         issuing insn.
8305
8306         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
8307
8308         * pa.c (hppa_use_dfa_pipeline_interface): New function.
8309         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
8310         (override_options): Add PA7300 scheduling support.
8311         (pa_adjust_cost): Update various comments.  Properly
8312         handle anti and output dependencies when using the
8313         DFA scheduler.
8314         (pa_issue_rate): Add PA7300 scheduling support.
8315         (pa_can_combine_p): Call extract_insn before calling
8316         constrain_operands (taken from mainline tree).
8317         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
8318         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
8319         descriptions using DFA descriptions.  Add PA7300
8320         scheduling support.
8321
8322         2002-03-30  David S. Miller  <davem@redhat.com>
8323
8324         Add UltraSPARC-III DFA scheduling support.
8325         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
8326         Update FP conditional move on register insn patterns to use it, as
8327         appropriate.
8328         (define_attr cpu): Add ultrasparc3.
8329         (define_attr us3load_type): New, update integer load patterns to
8330         set it, as appropriate.
8331         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
8332         (rest): Add UltraSPARC3 scheduling description.
8333         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
8334         (PROCESSOR_ULTRASPARC3): New.
8335         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
8336         ({ASM,CPP}_CPU_SPEC): Likewise.
8337         (REGISTER_MOVE_COST): Likewise.
8338         (RTX_COSTS): Likewise.
8339         * config/sparc/sparc.c (sparc_override_options,
8340         sparc_initialize_trampoline, sparc64_initialize_trampoline,
8341         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
8342         sparc_issue_rate): Likewise.
8343         * config/sparc/sol2.h: Likewise.
8344         * config/sparc/sol2-sld-64.h: Likewise.
8345         * config/sparc/linux64.h: Likewise.
8346
8347         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
8348
8349         * doc/md.texi: Add comments about usage the latency time for the
8350         different dependencies and about case when two or more conditions
8351         in different define_insn_reservations returns TRUE for an insn.
8352
8353         * doc/md.texi: Add reference for automaton based pipeline
8354         description.
8355
8356         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
8357
8358         * doc/passes.texi: Add missed information about genattrtab.
8359
8360         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
8361
8362         * genautomata.c (output_automata_list_transition_code): Check
8363         automata_list on NULL.
8364
8365         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
8366
8367         * genautomata.c (output_insn_code_cases,
8368         output_automata_list_min_issue_delay_code,
8369         output_automata_list_transition_code,
8370         output_automata_list_state_alts_code): Comment the functions.
8371
8372         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
8373
8374         * genautomata.c (automata_list_el_t): New typedef.
8375         (get_free_automata_list_el,free_automata_list_el,
8376         free_automata_list, automata_list_hash, automata_list_eq_p,
8377         initiate_automata_lists, automata_list_start, automata_list_add,
8378         automata_list_finish, finish_automata_lists,
8379         output_insn_code_cases, output_automata_list_min_issue_delay_code,
8380         output_automata_list_transition_code,
8381         output_automata_list_state_alts_code, add_automaton_state,
8382         form_important_insn_automata_lists): New functions and prototypes.
8383         (insn_reserv_decl): Add members important_automata_list and
8384         processed_p.
8385         (ainsn): Add members important_p.
8386         (automata_list_el): New structure.
8387         (first_free_automata_list_el, current_automata_list,
8388         automata_list_table): New global variables.
8389         (create_ainsns): Initiate member important_p.
8390         (output_internal_min_issue_delay_func): Generate the switch and
8391         call output_insn_code_cases.
8392         (output_internal_trans_func, output_internal_state_alts_func):
8393         Ditto.
8394         (generate): Call initiate_automata_lists.
8395         (automaton_states): New global variable.
8396         (expand_automata): Call form_important_insn_automata_lists.
8397         (write_automata): Call finish_automata_lists.
8398
8399         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
8400
8401         * genautomata.c (add_excls, add_presence_absence): Check that
8402         cpu units in the sets belong the same automaton.
8403
8404         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
8405         about that cpu units in the sets belong the same automaton.
8406
8407         * doc/md.texi: Ditto.
8408
8409         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
8410                     Nitin Gupta  <niting@noida.hcltech.com>
8411
8412         * config/sh/sh.c (sh_use_dfa_interface): New function.
8413
8414         (sh_issue_rate): New Function.
8415         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
8416         TARGET_SCHED_ISSUE_RATE: define.
8417
8418         * config/sh/sh.md: Add DFA based pipeline description for SH4.
8419
8420         (define_attr insn_class): New attribute used for DFA
8421          scheduling.
8422         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
8423         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
8424          cmpeqdi_t): Likewise.
8425
8426         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
8427          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
8428          ex_group.
8429         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
8430
8431         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
8432
8433         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
8434         break.
8435
8436         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
8437
8438         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
8439         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
8440         necessary.
8441         (output_dfa_start_func): Initiate new variable insn_codes_length,
8442         (write_automata): Output definition of the new variable.
8443
8444         2001-10-02  David S. Miller  <davem@redhat.com>
8445
8446         * haifa-sched.c (advance_one_cycle): New function.
8447         (schedule_block): Use it.
8448         (queue_to_ready): Use it, and also make sure to advance the DFA
8449         state on all stall cycles, not just those where insn_queue links
8450         are found.
8451
8452         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
8453
8454         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
8455         non-zero if the highest-priority instruction could be scheduled.
8456         (choose_ready): Remove last argument from max_issue call.
8457
8458         2001-09-28  David S. Miller  <davem@redhat.com>
8459
8460         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
8461         ultrasparc and 3 for other multi-issue sparcs.
8462
8463         2001-09-27  David S. Miller  <davem@redhat.com>
8464
8465         * config/sparc/sparc.md (cycle_display): New pattern.
8466         * config/sparc/sparc.c (sparc_cycle_display): New.
8467         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
8468
8469         2001-09-25  David S. Miller  <davem@redhat.com>
8470
8471         Convert all of Sparc scheduling to DFA
8472         * config/sparc/sparc.md: Kill all define_function_unit
8473         directives and replace with DFA equivalent.
8474         * config/sparc/sparc.c (ultrasparc_adjust_cost,
8475         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
8476         ultra_fpmode_conflict_exists, ultra_find_type,
8477         ultra_build_types_avail, ultra_flush_pipeline,
8478         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
8479         ultrasparc_variable_issue, ultrasparc_sched_init,
8480         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
8481         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
8482         ultra_cur_hist, ultra_cycles_elapsed): Kill.
8483         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
8484         ultrasparc_store_bypass_p): New.
8485         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
8486         Declare.
8487
8488         2001-09-24  David S. Miller  <davem@redhat.com>
8489
8490         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
8491         ready->vec[foo] not ready[foo].
8492
8493         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
8494
8495         * doc/md.texi: Correct examples for define_insn_reservations
8496         `mult' and `div'.
8497
8498         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
8499
8500         * genautomata.c (create_automata): Print message about creation of
8501         each automaton.
8502         (generate): Remove printing meease about creation of
8503         automata.
8504
8505         2001-09-05  David S. Miller  <davem@redhat.com>
8506
8507         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
8508         * config/sparc/linux64.h: Likewise.
8509
8510         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
8511
8512         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
8513         schedule_block, sched_init, sched_finish): Add missed calls of
8514         use_dfa_pipeline_interface.
8515
8516         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
8517         Ditto.
8518
8519         * sched-vis.c (get_visual_tbl_length): Ditto.
8520
8521         2001-08-27  Richard Henderson  <rth@redhat.com>
8522
8523         * genattr.c (main): Emit state_t even when not doing scheduling.
8524
8525         2001-08-27  Richard Henderson  <rth@redhat.com>
8526
8527         * genautomata.c (expand_automata): Always create a description.
8528
8529         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
8530
8531         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
8532         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
8533         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
8534         RTL constructions.
8535
8536         * genattr.c (main): New variable num_insn_reservations.  Increase
8537         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
8538         pipeline hazard recognizer interface.
8539
8540         * genattrtab.h: New file.
8541
8542         * genattrtab.c: Include genattrtab.h.
8543         (attr_printf, check_attr_test, make_internal_attr,
8544         make_numeric_value): Move protypes into genattrtab.h.  Define them
8545         as external.
8546         (num_dfa_decls): New global variable.
8547         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
8548         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
8549         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
8550         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
8551
8552         * genautomata.c: New file.
8553
8554         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
8555
8556         * sched-int.h: (curr_state): Add the external definition for
8557         automaton pipeline interface.
8558         (haifa_insn_data): Add comments for members blockage and units.
8559
8560         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8561         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
8562         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
8563         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
8564         TARGET_SCHED_DFA_POST_CYCLE_INSN,
8565         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8566         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
8567         macros.
8568         (TARGET_SCHED): Use the new macros.
8569
8570         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
8571         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
8572         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
8573         dfa_bubble): New members in gcc_target.sched.
8574
8575         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
8576         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
8577         (insn_queue): Redefine it as pointer to array.
8578         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
8579         INSN_QUEUE_SIZE.
8580         (max_insn_queue_index_macro_value): New variable.
8581         (curr_state, dfa_state_size, ready_try): New varaibles for
8582         automaton interface.
8583         (ready_element, ready_remove, max_issue): New function prototypes
8584         for automaton interface.
8585         (choose_ready): New function prototype.
8586         (insn_unit, blockage_range): Add comments.
8587         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
8588         FUNCTION_UNITS_SIZE == 0.
8589         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
8590         actual_hazard, potential_hazard): Add comments.
8591         (insn_cost): Use cost -1 as undefined value.  Remove
8592         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
8593         pipeline interface.
8594         (ready_element, ready_remove): New functions for automaton
8595         interface.
8596         (schedule_insn): Add new code for automaton pipeline interface.
8597         (queue_to_ready): Add new code for automaton pipeline interface.
8598         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
8599         (debug_ready_list): Print newline when the queue is empty.
8600         (max_issue): New function for automaton pipeline interface.
8601         (choose_ready): New function.
8602         (schedule_block): Add new code for automaton pipeline interface.
8603         Print ready list before scheduling each insn.
8604         (sched_init): Add new code for automaton pipeline interface.
8605         Initiate insn cost by -1.
8606         (sched_finish): Free the current automaton state and finalize
8607         automaton pipeline interface.
8608
8609         * sched-rgn.c: Include target.h.
8610         (init_ready_list, new_ready, debug_dependencies): Add new code for
8611         automaton pipeline interface.
8612
8613         * sched-vis.c: Include target.h.
8614         (get_visual_tbl_length): Add code for automaton interface.
8615         (target_units, print_block_visualization):  Add comments.
8616
8617         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
8618         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
8619         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
8620         (getruntime.o, genautomata.o): New entries.
8621         (genattrtab.o): Add new dependency file genattrtab.h.
8622         (genattrtab): Add new dependencies.  Link it with `libm.a'.
8623         (getruntime.o, hashtab.o): New entries for canadian cross.
8624
8625         * doc/md.texi: Description of automaton based model.
8626
8627         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
8628         Add comments.
8629         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8630         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
8631         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
8632         TARGET_SCHED_DFA_POST_CYCLE_INSN,
8633         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
8634         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8635         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
8636         hook descriptions.
8637         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
8638         MAX_DFA_ISSUE_RATE): New macro descriptions.
8639
8640         * doc/contrib.texi: Add dfa based scheduler contribution.
8641
8642         * doc/gcc.texi: Add more information about genattrtab.
8643
8644 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8645
8646         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
8647         adjust_address_nv call.
8648
8649 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
8650
8651         * doc/install.texi (Testing): Provide additional information, and
8652         a stronger encouragement, for running the testsuites.
8653
8654 2002-04-29  DJ Delorie  <dj@redhat.com>
8655
8656         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
8657         given in upper case.
8658
8659 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8660
8661         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
8662         Solaris 2 <widec.h> if missing.
8663         * fixinc/fixincl.x: Regenerate.
8664         * fixinc/tests/base/widec.h: New file.
8665
8666 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
8667
8668         * toplev.c (f_options): Add "profile" switch so that
8669         -fno-profile can be used to disable -p.
8670
8671 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
8672
8673         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
8674         UV2DImode.
8675         * tree.c (build_common_tree_nodes_2): Likewise.
8676         * tree.h (enum tree_index): Likewise.
8677         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
8678
8679         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
8680         entries.
8681         (init_mmx_sse_builtins): Initialize SSE2 builtins.
8682         (ix86_expand_builtin): Add support for SSE2 builtins.
8683         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
8684         (VALID_SSE_REG_MODE): Use it.
8685         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
8686         (enum ix86_builtins): Add SSE2 builtins.
8687         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
8688         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
8689         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
8690         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
8691         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
8692         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
8693         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
8694         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
8695         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
8696         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
8697         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
8698         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
8699         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
8700         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
8701         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
8702         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
8703         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
8704         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
8705         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
8706         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
8707         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
8708         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
8709         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
8710         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
8711         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
8712         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
8713         lfence_insn): New patterns.
8714         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
8715         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
8716
8717 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
8718
8719         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
8720
8721 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8722
8723         * doc/contrib.texi (Contributors): Add Paolo Carlini and
8724         Janis Johnson.
8725         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
8726         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
8727         and CPU instead of cpu.
8728
8729 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
8730
8731         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
8732         variables.
8733         (lang_independent_options): Add -fif-conversion, -fif-conversion2
8734         (rest_of_compilation): Do if conversion only when asked for.
8735         (parse_options_and_default_flags): Set new variables to 1 for -O1
8736         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
8737
8738 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
8739
8740         * i386.c (dbx64_register_map): Fix typo.
8741
8742 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
8743
8744         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
8745         real_one_half, real_bb_freq_max): New static variables.
8746         (debug_profile_bbauxs): Kill.
8747         (process_note_predictions): Kill unused variable.
8748         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
8749         volatile double.
8750         (propagate_freq): Use REAL_ARITHMETICS.
8751         (estimate_bb_frequencies): Likevise; init new static variables.
8752         * Makefile.in (predict.o): Add dependency on real.h
8753
8754 2002-04-28  David S. Miller  <davem@redhat.com>
8755
8756         PR target/6500
8757         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
8758         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
8759         several {reads,writes} instead.
8760         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
8761         Define.
8762
8763 2002-04-27  David S. Miller  <davem@redhat.com>
8764
8765         PR target/6494
8766         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
8767         of the stack bias.
8768
8769         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
8770         including signal.h and sys/ucontext.h, not needed.
8771
8772 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
8773
8774         * varasm.c (output_constant_def): Correct test for not calling
8775         ENCODE_SECTION_INFO for INTEGER_CST.
8776
8777 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8778
8779         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
8780         keep most cases as function eval_token.
8781         (eval_token): New function.
8782         (_cpp_parse_expr): Read token here for improved diagnostics.
8783         Don't use op_as_text.  Detect bad ':' here.
8784         (reduce): Don't detect bad ':' here.
8785         (op_as_text): Remove.
8786         * cpphash.h (_cpp_test_assertion): Change prototype.
8787         * cpplib.c (_cpp_test_assertion): Change prototype.
8788
8789 2002-04-28  Richard Henderson  <rth@redhat.com>
8790
8791         PR c/5154
8792         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
8793         (ggc_mark_rtx_children): New.
8794
8795 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8796
8797         PR target/6496
8798         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
8799         after call peepholes for UltraSPARC.
8800         (call + jump 64-bit peepholes): Remove.
8801
8802 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8803
8804         PR c/6497
8805         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
8806         result as temporary value.
8807
8808 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8809
8810         PR c++/6396
8811         * toplev.c (rest_of_compilation): Only run regrename and copy
8812         propagation if optimizing.
8813
8814 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8815
8816         PR optimization/6475
8817         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
8818         register of REGNO_DECL (i).
8819         * Makefile.in (reload1.o): Add $(TREE_H).
8820
8821 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8822
8823         * cppexp.c (lex): Update to use state.skip_eval.
8824         (struct op): Remove prio and flags members.
8825         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
8826         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
8827         (LEFT_ASSOC): New macro.
8828         (optab): New table of operator priorities and flags.
8829         (SHIFT): Update.
8830         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
8831         malloc-ed parser stack.
8832         (reduce): New; reduce the operator stack.
8833         (_cpp_expand_op_stack): Expand the operator stack as necessary.
8834         * cpphash.h (struct op): Predeclare.
8835         (struct cpp_reader): New members op_stack, op_limit.
8836         (struct lexer_state): New member skip_eval.
8837         (_cpp_parse_expr): Update.
8838         (_cpp_expand_op_stack): New.
8839         * cpplib.c (do_if): Update.
8840         * cppinit.c (cpp_create_reader): Create op stack.
8841         (cpp_destroy): And destroy it.
8842         * cpplib.h (CPP_LAST_CPP_OP): Correct.
8843         (TTYPE_TABLE): Correct.
8844
8845 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8846
8847         PR c/6343
8848         * c-decl.c (duplicate_decls): Call merge_weak.
8849         * c-pragma.c (apply_pragma_weak): Warn about misuse.
8850         * output.h (merge_weak): Prototype merge_weak.
8851         * varasm.c (merge_weak): New function.
8852         (declare_weak): Make sure we don't give an error on VAR_DECLs.
8853         Mark RTL with SYMBOL_REF_WEAK.
8854
8855 2002-04-27  Kurt Garloff <garloff@suse.de>
8856
8857         * tree-inline.c (inlinable_function_p): Improve heuristics
8858         by using a smoother function to cut down allowable inlinable size.
8859         * param.def: Add parameters max-inline-insns-single,
8860         max-inline-slope, min-inline-insns that determine the exact
8861         shape of the above function.
8862         * param.h: Likewise.
8863
8864 2002-04-26  Richard Henderson  <rth@redhat.com>
8865
8866         * c-parse.in (malloced_yyss, malloced_yyvs): New.
8867         (yyoverflow): Re-add.  Set them.
8868         (free_parser_stacks): New.
8869         * c-common.h: Declare it.
8870         * c-lex.c (c_common_parse_file): Call it.
8871
8872 2002-04-26  Richard Henderson  <rth@redhat.com>
8873
8874         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
8875         for fallthru search.
8876
8877 2002-04-26  Eric Christopher  <echristo@redhat.com>
8878
8879         PR optimization/3700
8880         * config/mips/mips.c (mips_issue_rate): Define.  New function.
8881         (TARGET_SCHED_ISSUE_RATE): Use.
8882
8883 2002-04-25  David S. Miller  <davem@redhat.com>
8884
8885         PR target/6422
8886         * reorg.c (optimize_skip): Do not allow exception causing
8887         instructions to be considered for delay slots.
8888         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
8889         (relax_delay_slots): Do not try to consider exception causing
8890         instructions as redundant.
8891
8892 2002-04-26  Richard Henderson  <rth@redhat.com>
8893
8894         PR c/5225
8895         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
8896
8897 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
8898
8899         PR bootstrap/6445
8900         * config/i386/i386.md (untyped_call): Return the value in a float
8901         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
8902         TARGET_80387.
8903
8904 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
8905
8906         * tree.c (tree_int_cst_lt): Compare constants whose types differ
8907         in unsigned-ness correctly.
8908
8909 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8910
8911         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
8912         portable runtime model.
8913
8914 2002-04-26  Richard Henderson  <rth@redhat.com>
8915
8916         * c-parse.in (yyoverflow): Revert.
8917
8918 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
8919             Richard Henderson  <rth@redhat.com>
8920
8921         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
8922         result as temporary value.
8923
8924 2002-04-26  Richard Henderson  <rth@redhat.com>
8925
8926         PR c/3581
8927         * c-common.c (fix_string_type): Split out of ...
8928         (combine_strings): ... here.  Take a varray, not a tree list.
8929         (c_expand_builtin_printf): Use fix_string_type.
8930         * c-common.h: Update decls.
8931         * c-parse.in (string): Remove.  Update all uses to use STRING
8932         instead, and not call combine_strings.
8933         (yylexstring): New.
8934         (_yylex): Use it.
8935         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
8936         (build_asm_stmt): Likewise.
8937         * objc/objc-act.c (my_build_string): Use fix_string_type.
8938         (build_objc_string_object): Build varray for combine_strings.
8939
8940 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
8941
8942         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
8943         x86-64.
8944
8945 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8946
8947         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
8948         (HAVE_NO_R_OPERAND): Remove.
8949         (HAVE_VALUE): Remove.
8950         (op_to_prio): Update.
8951         (UNARY): Don't alter flags.
8952         (_cpp_parse_expr): want_value used to indicate whether
8953         a number or unary operator is expected next.  Distinguish
8954         unary and binary +/-.
8955         (op_as_text): Update for unary operators.
8956
8957 2002-04-25  Richard Henderson  <rth@redhat.com>
8958
8959         PR c/2161
8960         * c-parse.in (yyoverflow): New.
8961
8962 2002-04-25  Richard Henderson  <rth@redhat.com>
8963
8964         PR c/2098
8965         * c-common.c (shorten_compare): Simplfy conditions leading to
8966         the generation of a warning.
8967
8968 2002-04-25  Richard Henderson  <rth@redhat.com>
8969
8970         PR c/2035
8971         * expmed.c (extract_bit_field): Fall through to generic code rather
8972         than aborting on subreg special case.
8973
8974 2002-04-25  David S. Miller  <davem@redhat.com>
8975
8976         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
8977         for DECL being NULL.
8978
8979 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
8980
8981         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
8982
8983 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
8984
8985         * c-decl.c (grokdeclarator): Remove outdated ??? note
8986         on invalid declaration of flexible array members.
8987
8988 2002-04-25  Richard Henderson  <rth@redhat.com>
8989
8990         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
8991
8992 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
8993
8994         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
8995         needed by the compiler, even if they are used as global regs.
8996
8997 2002-04-25  Matt Hiller  <hiller@redhat.com>
8998
8999         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
9000         functions.
9001         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
9002         of the corresponding functions.
9003         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
9004         New prototypes.
9005
9006 2002-04-25  Matt Hiller  <hiller@redhat.com>
9007
9008         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
9009
9010         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
9011         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
9012         registers, adjust comment accordingly.
9013         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
9014         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
9015         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
9016         for coprocessor registers.
9017         (ADDITIONAL_REGISTER_NAMES): Include
9018         ALL_COP_ADDITIONAL_REGISTER_NAMES.
9019
9020         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
9021         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
9022         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
9023         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
9024         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
9025
9026         (mips_char_to_class): Adjust comment to include coprocessor
9027         constraint letters.
9028
9029         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
9030         New functions.
9031         (mips_reg_names, mips_regno_to_class): Include coprocessor
9032         information.
9033         (mips_sw_reg_names): Ditto, make non-static.
9034         (mips_move_1word): Handle moves to and from coprocessor registers.
9035         (mips_move_2words): Handle moves to and from coprocessor
9036         registers.
9037         (mips_class_max_nregs, mips_register_move_cost): Handle
9038         coprocessor register classes.
9039         (override_options): Initialize mips_char_to_class and
9040         mips_hard_regno_mode_ok properly for coprocessor registers.
9041
9042         * config/mips/mips.md (movdi_internal, movdi_internal2,
9043         movsi_internal1, movsi_internal2): Add constraint-sets for
9044         coprocessor registers.
9045         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
9046         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
9047         isn't mips.
9048         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
9049         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
9050         isn't mips.
9051         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
9052         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
9053         isn't mips.
9054         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
9055         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
9056         isn't mips.
9057
9058         * doc/tm.texi: Document feature.
9059
9060 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
9061
9062         * integrate.c (function_attribute_inlinable_p): Simplify.
9063         Check the table pointer is not NULL.
9064
9065 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
9066
9067         * doc/c-tree.texi: Fix typo in introduction.
9068
9069 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
9070
9071         * c-common.h (c_common_parse_file): Update.
9072         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
9073         * c-lex.c (YYDEBUG): Get from c-lex.h.
9074         (c_common_parse_file): Update.
9075         * c-lex.h (YYDEBUG, yydebug): New.
9076         * c-parse.in (YYDEBUG): Get from c-lex.h.
9077         (c_set_yydebug): Remove.
9078         * c-tree.h (c_set_yydebug): Remove.
9079         * langhooks-def.h (lhd_do_nothing_i): New.
9080         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
9081         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
9082         * langhooks.c  (lhd_do_nothing_i): New.
9083         (lhd_set_yydebug): Remove.
9084         * langhooks.h (struct lang_hooks): Update.
9085         * toplev.c (set_yydebug): New.
9086         (compile_file): Update call to parse_file hook.
9087         (decode_d_option): Update.
9088 objc:
9089         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
9090
9091 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
9092
9093         * loop.c (load_mems): Don't change the interface of called functions.
9094
9095         * calls.c (expand_call): Take current_function_pretend_args_size
9096         into account when setting argblock for sibcalls.
9097
9098 2002-04-24  Matt Hiller  <hiller@redhat.com>
9099
9100         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
9101         * c-lex.c: Ditto.
9102
9103         * cpplex.c (skip_line_comment): Process comment one multibyte
9104         character at a time rather than one char at a time, if
9105         appropriate.
9106         (parse_string): Process string one multibyte character at a time
9107         rather than one char at a time, if appropriate.
9108         * c-lex.c (lex_string): Lex and copy multibyte strings
9109         appropriately.
9110         * cpplib.h (cppchar_t): Change to unsigned.
9111
9112 2002-04-24  Richard Henderson  <rth@redhat.com>
9113
9114         PR c/3467
9115         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
9116         for c99.
9117
9118 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
9119
9120         * sh.c (sh_va_arg): If argument was passed by reference,
9121         dereference the pointer.
9122
9123         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
9124
9125         * sh.md (divsi3_i4_media): Use match_operand for input values
9126         rather than hard registers.
9127         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
9128         unnecessarily through hard registers.  Keep copies of pseudo
9129         registers outside of the libcall sequence.
9130
9131         * sh.md (casesi_shift_media): Add modes.
9132
9133         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
9134         values in memory.
9135
9136 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
9137
9138         * attribs.c (c_common_attribute_table): Move table and handlers
9139         to c-common.c.
9140         (format_attribute_table, lang_attribute_table,
9141         lang_attribute_common): Remove.
9142         (init_attributes): Replace NULL pointers with pointers to the
9143         empty table.
9144         (handle_packed_attribute, handle_nocommon_attribute,
9145         handle_common_attribute, handle_noreturn_attribute,
9146         handle_noinline_attribute, handle_always_inline_attribute,
9147         handle_used_attribute, handle_unused_attribute,
9148         handle_const_attribute, handle_transparent_union_attribute,
9149         handle_constructor_attribute, handle_destructor_attribute,
9150         handle_mode_attribute, handle_section_attribute,
9151         handle_aligned_attribute, handle_weak_attribute,
9152         handle_alias_attribute, handle_visibility_attribute,
9153         handle_no_instrument_function_attribute, handle_malloc_attribute,
9154         handle_no_limit_stack_attribute, handle_pure_attribute,
9155         handle_deprecated_attribute, handle_vector_size_attribute,
9156         vector_size_helper): Move to c-common.c.
9157         * c-common.c (c_common_attribute_table,
9158         handle_packed_attribute, handle_nocommon_attribute,
9159         handle_common_attribute, handle_noreturn_attribute,
9160         handle_noinline_attribute, handle_always_inline_attribute,
9161         handle_used_attribute, handle_unused_attribute,
9162         handle_const_attribute, handle_transparent_union_attribute,
9163         handle_constructor_attribute, handle_destructor_attribute,
9164         handle_mode_attribute, handle_section_attribute,
9165         handle_aligned_attribute, handle_weak_attribute,
9166         handle_alias_attribute, handle_visibility_attribute,
9167         handle_no_instrument_function_attribute, handle_malloc_attribute,
9168         handle_no_limit_stack_attribute, handle_pure_attribute,
9169         handle_deprecated_attribute, handle_vector_size_attribute,
9170         vector_size_helper): Move from attribs.c.
9171         * c-common.h (c_common_attribute_table,
9172         c_common_format_attribute_table): New.
9173         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
9174         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
9175         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
9176         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
9177         (LANG_HOOKS_INITIALIZER): Update.
9178         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
9179         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
9180         * target.h: Update comment.
9181         * tree.c (default_target_attribute_table): Remove.
9182         * tree.h (default_target_attribute_table, format_attribute_table,
9183         lang_attribute_table, lang_attribute_common): Remove.
9184 objc:
9185         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
9186         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
9187
9188 2002-04-24  Jason Merrill  <jason@redhat.com>
9189
9190         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
9191         * dwarf2out.c (dwarf_attr_name): Support it.
9192         (gen_array_type_die): Emit it.
9193         (lookup_type_die): No special handling for VECTOR_TYPE.
9194         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
9195
9196 2002-04-24  Richard Henderson  <rth@redhat.com>
9197
9198         * config/mips/mips.md (movdi_usd): Renumber.
9199
9200 2002-04-24  David S. Miller  <davem@redhat.com>
9201
9202         PR target/6420
9203         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
9204         32-bit Sparc and current_function_returns_struct is true.
9205
9206 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
9207
9208         * loop.c (canonicalize_condition): Use gen_int_mode.
9209
9210 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
9211
9212         * config/rs6000/altivec.h: Cleanup file.  Add non individual
9213         variants.
9214         (vec_vaddubm): New.
9215         (vec_vadduhm): New.
9216         (vec_vadduwm): New.
9217         (vec_vaddfp): New.
9218         (vec_vaddcuw): New.
9219         (vec_vaddubs): New.
9220         (vec_vaddsbs): New.
9221         (vec_vadduhs): New.
9222         (vec_vadduws): New.
9223         (vec_vaddsws): New.
9224         (vec_vand): New.
9225         (vec_vandc): New.
9226         (vec_vavgub): New.
9227         (vec_vavgsb): New.
9228         (vec_vavguh): New.
9229         (vec_vavgsh): New.
9230         (vec_vavguw): New.
9231         (vec_vavgsw): New.
9232         (vec_vrfip): New.
9233         (vec_vcmpbfp): New.
9234         (vec_vcmpequb): New.
9235         (vec_vcmpequh): New.
9236         (vec_vcmpequw): New.
9237         (vec_vcmpeqfp): New.
9238         (vec_vcmpgefp): New.
9239         (vec_vcmpgtub): New.
9240         (vec_vcmpgtsb): New.
9241         (vec_vcmpgtuh): New.
9242         (vec_vcmpgtsh): New.
9243         (vec_vcmpgtuw): New.
9244         (vec_vcmpgtsw): New.
9245         (vec_vcmpgtfp): New.
9246         (vec_vcmpgefp): New.
9247         (vec_vcfux): New.
9248         (vec_vcfsx): New.
9249         (vec_vctsxs): New.
9250         (vec_vctuxs): New.
9251         (vec_vexptefp): New.
9252         (vec_vrfim): New.
9253         (vec_lvx): New.
9254         (vec_lvebx): New.
9255         (vec_lvehx): New.
9256         (vec_lde): Add vector float variant.
9257         (vec_lvewx): New.
9258         (vec_lvxl): New.
9259         (vec_vlogefp): New.
9260         (vec_vmaddfp): New.
9261         (vec_vmhaddshs): New.
9262         (vec_vmaxub): New.
9263         (vec_vmaxsb): New.
9264         (vec_vmaxuh): New.
9265         (vec_vmaxsh): New.
9266         (vec_vmaxuw): New.
9267         (vec_vmaxsw): New.
9268         (vec_vmaxsw): New.
9269         (vec_vmaxfp): New.
9270         (vec_vmrghb): New.
9271         (vec_vmrghh): New.
9272         (vec_vmrghw): New.
9273         (vec_vmrglb): New.
9274         (vec_vmrglh): New.
9275         (vec_vmrglw): New.
9276         (vec_vminub): New.
9277         (vec_vminsb): New.
9278         (vec_vminuh): New.
9279         (vec_vminsh): New.
9280         (vec_vminuw): New.
9281         (vec_vminsw): New.
9282         (vec_vminfp): New.
9283         (vec_vmladduhm): New.
9284         (vec_vmhraddshs): New.
9285         (vec_msumubm): New.
9286         (vec_vmsummbm): New.
9287         (vec_vmsumuhm): New.
9288         (vec_vmsumshm): New.
9289         (vec_vmsumuhs): New.
9290         (vec_vmsumshs): New.
9291         (vec_vmuleub): New.
9292         (vec_vmulesb): New.
9293         (vec_vmuleuh): New.
9294         (vec_vmulesh): New.
9295         (vec_vmuloub): New.
9296         (vec_mulosb): New.
9297         (vec_vmulouh): New.
9298         (vec_vmulosh): New.
9299         (vec_vnmsubfp): New.
9300         (vec_vnor): New.
9301         (vec_vor): New.
9302         (vec_vpkuhum): New.
9303         (vec_vpkuwum): New.
9304         (vec_vpkpx): New.
9305         (vec_vpkuhus): New.
9306         (vec_vpkshss): New.
9307         (vec_vpkuwus): New.
9308         (vec_vpkswss): New.
9309         (vec_vpkshus): New.
9310         (vec_vpkswus): New.
9311         (vec_vperm): New.
9312         (vec_vrefp): New.
9313         (vec_vrlb): New.
9314         (vec_vrlh): New.
9315         (vec_vrlw): New.
9316         (vec_vrfin): New.
9317         (vec_vrsqrtefp): New.
9318         (vec_vsel): New.
9319         (vec_vslb): New.
9320         (vec_vslh): New.
9321         (vec_vslw): New.
9322         (vec_vsldoi): New.
9323         (vec_vsl): New.
9324         (vec_vslo): New.
9325         (vec_vspltb): New.
9326         (vec_vsplth): New.
9327         (vec_vspltw): New.
9328         (vec_vspltisb): New.
9329         (vec_vspltish): New.
9330         (vec_vspltisw): New.
9331         (vec_vsrb): New.
9332         (vec_vsrh): New.
9333         (vec_vsrw): New.
9334         (vec_vsrab): New.
9335         (vec_vsrah): New.
9336         (vec_vsraw): New.
9337         (vec_vsr): New.
9338         (vec_vsro): New.
9339         (vec_stvx): New.
9340         (vec_stvebx): New.
9341         (vec_stvehx): New.
9342         (vec_stvewx): New.
9343         (vec_stvxl): New.
9344         (vec_vsububm): New.
9345         (vec_vsubuhm): New.
9346         (vec_vsubuwm): New.
9347         (vec_vsubfp): New.
9348         (vec_vsubcuw): New.
9349         (vec_vsububs): New.
9350         (vec_vsubsbs): New.
9351         (vec_vsubuhs): New.
9352         (vec_vsubshs): New.
9353         (vec_vsubuws): New.
9354         (vec_vsubsws): New.
9355         (vec_vsum4ubs): New.
9356         (vec_vsum4sbs): New.
9357         (vec_vsum4shs): New.
9358         (vec_vsum2sws): New.
9359         (vec_vsumsws): New.
9360         (vec_vrfiz): New.
9361         (vec_vupkhsb): New.
9362         (vec_vupkhpx): New.
9363         (vec_vupkhsh): New.
9364         (vec_vupklsb): New.
9365         (vec_vupklpx): New.
9366         (vec_vupklsh): New.
9367         (vec_vxor): New.
9368
9369 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
9370
9371         PR c/5430
9372         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
9373         added literals from substracted literals.
9374         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
9375         (fold) [associate]: Preserve MINUS_EXPR if needed.
9376
9377 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
9378
9379         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
9380         are obsoleted.
9381
9382 2002-04-23  Tom Tromey  <tromey@redhat.com>
9383
9384         * gcc.c: Added --resource.  For PR java/6314.
9385
9386 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
9387
9388         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
9389         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
9390         these libraries.
9391
9392 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
9393
9394         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
9395
9396 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
9397
9398         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
9399         workaround.
9400         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
9401         (ix86_expand_clrstr): Fix typo.
9402         * loop.c (gen_load_of_final_value): New.
9403         (loop_givs_rescan, strength_reduce, check_dbra_loop):
9404         Use it.
9405
9406 2002-04-23  Roger Sayle  <roger@eyesopen.com>
9407
9408         * builtins.c (builtin_memset_gen_str): New function.
9409         (expand_builtin_memset): Optimize the case of constant length, but
9410         unknown value.
9411
9412 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
9413
9414         * config/rs6000/altivec.h (vec_step): Remove extraneous
9415         parentheses.
9416         (vec_ctu): Cast return.
9417
9418 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
9419
9420         PR target/6413
9421         * function.h: (struct function): Add profile_label_no field.
9422         (current_function_profile_label_no): Define.
9423         * function.c: (profile_label_no): New static var.
9424         (expand_function_start): Increment it, and copy to
9425         current_function_profile_label_no.
9426         * output.h (profile_label_no): Delete.
9427         * final.c (profile_label_no): Delete.
9428         (profile_function): Use current_function_profile_label_no.
9429         (final_end_function): Don't increment profile_label_no here.
9430         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
9431         profile_label_no with current_function_profile_label_no.
9432         * config/pa/pa.c (current_function_number): Delete.
9433         (pa_output_function_prologue): Don't output profile label here.
9434         (hppa_profile_hook): Use label_no param rather than
9435         current_function_number.
9436         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
9437         * config/pa/pa.h: .. here.
9438         (FUNCTION_PROFILER): Output profile label here.
9439
9440 2002-04-22  Eric Christopher  <echristo@redhat.com>
9441
9442         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
9443         patch of 2002-04-09 due to binutils issues.
9444         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
9445
9446 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
9447
9448         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
9449         constraint to 'o' for m=r and r=m alternatives.
9450         ("*movv8hi_internal1"): Same.
9451         ("*movv16qi_internal1"): Same.
9452         ("*movv4sf_internal1"): Same.
9453
9454 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
9455
9456         * rtl.h (RTX_FLAG): New macro.
9457         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
9458         * final.c (alter_subreg): Use macro to access rtx flag.
9459         * integrate.c (copy_rtx_and_substitute): Use new access macro.
9460         * print-rtl.c (print_rtx): Use new access macro.
9461
9462         * cse.c (insert): Check rtx code before accessing flag.
9463
9464         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
9465         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
9466         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
9467         convert_const_symbol_ref, make_canonical, make_alternative_compare,
9468         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
9469         simplify_test_exp, optimize_attrs, simplify_by_exploding,
9470         find_and_mark_used_attributes, unmark_used_attributes,
9471         add_values_to_cover, simplify_with_current_value,
9472         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
9473         copy_rtx_unchanging, main): Use new access macros.
9474
9475 2002-04-22  Tom Rix  <trix@redhat.com>
9476
9477         * expmed.c (init_expmed): Generate shifted constant once.
9478
9479 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
9480
9481         * c-lex.c (lex_charconst): Call convert to get constant in
9482         proper type; don't just smash the type field.
9483         Fixes PR c/6300.
9484
9485         * config.gcc: Add list of obsolete configurations.  Disallow
9486         building these without --enable-obsolete.
9487         * doc/install.texi: Document --enable-obsolete and obsoletion
9488         policy.  Mention obsoletion of individual targets in
9489         appropriate places.
9490
9491 2002-04-22  Richard Henderson  <rth@redhat.com>
9492
9493         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
9494
9495 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
9496
9497         PR f/6138.
9498         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
9499         (walk_fixup_memory_subreg): Likewise.
9500         (fixup_var_refs_insn): Adjust accordingly.
9501         (fixup_var_refs_1): Likewise.
9502
9503 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
9504
9505         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
9506         LIBPATH_ARCH64_SPEC): Define.
9507         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
9508         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
9509         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
9510         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
9511
9512 2002-04-22      Joel Sherrill <joel@OARcorp.com>
9513
9514         * gthr-rtems.h: Correct prototypes to remove warnings.
9515
9516 2002-04-22  Richard Henderson  <rth@redhat.com>
9517
9518         PR c/6344
9519         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
9520
9521         * gcse.c (free_insn_expr_list_list): New.
9522         (clear_modify_mem_tables): Use it.  Fix bit set usage.
9523         (canon_list_insert): Use EXPR_LISTs for expressions.
9524         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
9525
9526 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
9527
9528         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
9529         file change and include code to _cpp_pop_buffer.
9530         * cpphash.h (struct pending_option): Predeclare.
9531         (struct cpp_reader): New member next_include_file.
9532         (_cpp_pop_file_buffer): Update.
9533         (_cpp_push_next_buffer): Update, rename.
9534         * cppinit.c (cpp_destroy): Free include chain and pending here.
9535         (cpp_finish_options): Simplify.
9536         (_cpp_push_next_buffer): Rename and clean up.
9537         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
9538         Clarify.
9539         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
9540
9541 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
9542
9543         * config/rs6000/altivec.h (vec_xor): Add variant for both args
9544         being vector signed int.
9545         (vec_andc): Same.
9546         (vec_xor): Add variant for both args being vector signed char.
9547         Remove redundant variant.
9548         (vec_andc): Same.
9549
9550 2002-04-21  David S. Miller  <davem@redhat.com>
9551
9552         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
9553         compare mode in output RTL.
9554
9555 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
9556
9557         * config/rs6000/rs6000.c (rs6000_override_options): Correct
9558         style and formatting of previous patch.
9559
9560 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
9561
9562         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
9563         flag_pic for ABI_AIX.
9564
9565 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
9566
9567         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
9568         * cppfiles.c (read_include_file): Similarly.
9569         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
9570         uxstrdup ustrchr, ufputs): Similarly.
9571         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
9572         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
9573         cpp_ideq, parse_identifier, parse_number): Similarly.
9574         * cpplib.c (struct directive, dequote_string, D, run_directive,
9575         cpp_push_buffer): Similarly.
9576         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
9577         _cpp_create_definition, check_trad_stringification,
9578         cpp_macro_definition): Similarly.
9579
9580 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
9581
9582         * cppmacro.c (funlike_invocation_p): Don't step back
9583         over CPP_EOF.
9584
9585 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
9586
9587         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
9588         labelno.
9589
9590 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9591
9592         * doc/invoke.texi: Remove Chill references.
9593         * doc/gcc.texi: Update last modified date.
9594
9595 2002-04-20  Kazu Hirata  <kazu@hxi.com>
9596
9597         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
9598         push and pop.  Replace add.l with add.w.
9599
9600 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9601
9602         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
9603         multiply instructions for H8/300H case.
9604
9605 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9606
9607         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
9608         Bum three instructions from each routine.
9609
9610 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9611
9612         * Makefile.in: Update.
9613         * decl.c (push_c_function_context, pop_c_function_context,
9614         mark_c_function_context): Rename for consistency.
9615         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
9616         * c-tree.h (push_c_function_context, pop_c_function_context,
9617         mark_c_function_context): Rename for consistency.
9618         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9619         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
9620         * function.c (init_lang_status, save_lang_status,
9621         restore_lang_status, mark_lang_status, free_lang_status):
9622         Move to langhooks.h.
9623         (push_function_context_to, pop_function_context_from,
9624         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
9625         Update.
9626         * function.h (init_lang_status, save_lang_status,
9627         restore_lang_status, mark_lang_status, free_lang_status):
9628         Move to langhooks.h.
9629         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
9630         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
9631         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
9632         LANG_HOOKS_FUNCTION_INITIALIZER): New.
9633         (LANG_HOOKS_INITIALIZER): Update.
9634         (lhd_do_nothing_f): New.
9635         * langhooks.h (struct lang_hooks_for_functions): New.
9636         (struct lang_hooks): New hooks.
9637         * langhooks.c (lhd_do_nothing_f): New.
9638 objc:
9639         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9640         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
9641
9642 2002-04-19  David S. Miller  <davem@redhat.com>
9643
9644         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
9645         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
9646
9647 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
9648
9649         PR optimization/3756
9650         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
9651         x = ((int) y < 0) ? cst1 : cst2.
9652
9653 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
9654
9655         PR c/6358
9656         * function.c: Reapply patch for c/6358.
9657         (expand_function_end): Copy decl_rtl's mode, not
9658         current_function_return_rtx mode.
9659
9660 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
9661
9662         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
9663         targets.
9664
9665 2002-04-19  Tom Tromey  <tromey@redhat.com>
9666
9667         * doc/install.texi (Specific): Update status of Solaris 2.8.
9668         For PR libgcj/6158.
9669
9670 2002-04-19  Andreas Schwab  <schwab@suse.de>
9671
9672         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
9673         (PUT_REAL): Restore old definition.
9674
9675 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
9676             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9677
9678         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
9679         binutils 2.11.2 and higher generate smaller binaries than Sun's
9680         native tools.
9681
9682 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
9683
9684         PR c++/6352
9685         * toplev.c (rest_of_compilation): Do not defer functions for which
9686         TREE_SYMBOL_REFERENCED has already been set.
9687
9688 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
9689
9690         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
9691         alternative.
9692
9693 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9694
9695         * builtins.c: Include langhooks.h.
9696         (lang_type_promotes_to): Remove.
9697         (expand_builtin_va_arg): Use new hook.
9698         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
9699         (simple_type_promotes_to): Move to c-typeck.c.
9700         * c-common.h (simple_type_promotes_to): Remove.
9701         * c-decl.c (duplicate_decls, grokdeclarator): Update.
9702         * c-format.c: Include langhooks.h.
9703         (check_format_types): Update.
9704         * c-tree.h (c_type_promotes_to): New.
9705         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
9706         (type_lists_compatible_p): Update.
9707         * langhooks-def.h (lhd_type_promotes_to): New.
9708         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
9709         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
9710         * langhooks.c (lhd_type_promotes_to): New.
9711         * langhooks.h (struct lang_hooks_for_types): New hook.
9712         * tree.h (lang_type_promotes_to): Remove.
9713 objc:
9714         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
9715
9716 2002-04-18  Richard Henderson  <rth@redhat.com>
9717
9718         * function.c: Revert patch for c/6358.
9719
9720 2002-04-18  Richard Henderson  <rth@redhat.com>
9721
9722         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
9723         blocks.  Handle multiple references to the TRAP block.  Handle
9724         non-adjacent THEN and OTHER blocks.
9725
9726 2002-04-18  Richard Henderson  <rth@redhat.com>
9727
9728         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
9729         crash with no type for by-mode libcalls.
9730
9731         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
9732
9733 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
9734
9735         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
9736         __xtensa_nonlocal_goto): Use a syscall instructions to flush
9737         the register windows.
9738
9739 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9740
9741         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
9742         appropriate.  Document need for extended precision even when
9743         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
9744         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
9745         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
9746         instead of relying on later syntax error when REAL_WIDTH > 5.
9747         * real.c: Define NE based only on whether or not we have a
9748         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
9749         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
9750         define GET_REAL and PUT_REAL as simple memcpy operations; no
9751         need to byteswap or round.
9752         Use #error instead of #ifdef-ing out the entire file, for
9753         prompt error detection.
9754
9755         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
9756
9757 2002-04-18  David S. Miller  <davem@redhat.com>
9758
9759         * config/sparc/sparc.h (BRANCH_COST): Define.
9760
9761         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
9762         does it.
9763
9764 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
9765
9766         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
9767         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
9768         propagate_block calls after relaxation loop using new variable
9769         stabilized_prop_flags.
9770
9771 2002-04-18  Richard Henderson  <rth@redhat.com>
9772
9773         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
9774         (ia64_va_arg): Expect variable sized types by reference.
9775         * config/ia64/ia64-protos.h: Update.
9776         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
9777         ia64_function_arg_pass_by_reference.
9778
9779 2002-04-18  Richard Henderson  <rth@redhat.com>
9780
9781         * ifcvt.c: Include except.h.
9782         (block_has_only_trap): Break out from find_cond_trap.
9783         (find_cond_trap): Use it.  Always delete the trap block.
9784         (merge_if_block): Allow then block null.  Be less simplistic about
9785         what insns can end a block.
9786         * Makefile.in (ifcvt.o): Depend on except.h.
9787
9788         * config/ia64/ia64.md (trap, conditional_trap): New.
9789
9790 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9791
9792         PR c/6358
9793         * function.c (assign_parms): Assign hard current_function_return_rtx
9794         register here...
9795         (expand_function_end): ...not here.
9796
9797 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9798
9799         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9800         * c-tree.h (c_incomplete_type_error): New.
9801         * c-typeck.c (require_complete_type, build_component_ref): Update.
9802         (incomplete_type_error): Rename.
9803         * langhooks-def.h (lhd_incomplete_type_error): New.
9804         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
9805         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
9806         * langhooks.c (lhd_incomplete_type_error): New.
9807         * langhooks.h (struct lang_hooks_for_types): New hook.
9808         * tree.c (size_in_bytes): Use new hook.
9809         * tree.h (incomplete_type_error): Remove.
9810 objc:
9811         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9812
9813 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9814
9815         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
9816         TARGET_FLOAT_FORMAT blocks.
9817
9818 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9819
9820         * doc/install.texi (Downloading the source): Do not mention Chill
9821         any longer, but mention Ada.
9822         (Configuration): Do not mention Chill any longer.
9823
9824 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
9825
9826         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
9827
9828 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
9829
9830         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
9831         in last patch.
9832
9833 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9834
9835         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
9836         instead of unsigned_type.
9837
9838 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
9839
9840         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
9841         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
9842         later.
9843
9844 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
9845
9846         * attribs.c (vector_type_node_list): New static variable.
9847         (handle_vector_size_attribute): Use it to avoid generating a
9848         new type node each time we are called.
9849
9850         * combine.c (subst): Avoid trying to make a vector mode subreg of
9851         an integer constant.
9852         (gen_lowpart_for_combine): Likewise.
9853
9854 2002-04-18  Roger Sayle  <roger@eyesopen.com>
9855             Jakub Jelinek  <jakub@redhat.com>
9856
9857         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
9858         for integer constant c (if x has unsigned type or sign bit is not
9859         set in c).  This folds the zero/sign extension into the bit-wise and
9860         operation.
9861
9862 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9863
9864         PR middle-end/6205
9865         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
9866         otherwise xorps.
9867
9868 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
9869
9870         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
9871
9872 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
9873
9874         * gcc.c (read_specs): Detect and fail if an attempt is made to
9875         rename a spec string to an already existing string.
9876
9877 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9878
9879         * config/s390/s390.c (legitimize_pic_address): Do not generate
9880         illegal address constant without CONST.
9881
9882 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9883
9884         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
9885         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9886
9887 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9888
9889         PR optimization/6305
9890         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
9891         to make sure previous reloads are taken into account.  Generate
9892         better code if one operand is an in-range immediate constant.
9893
9894 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
9895
9896         * doc/install.texi (Building): libgcj requires GNU make.
9897
9898 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
9899
9900         PR bootstrap/6315
9901         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
9902         even if hard quad and register is not floating.
9903         (movtf reg<-mem split): Disallow splitting if hard quad and
9904         register is floating.
9905         (movtf mem<-reg split): Likewise.
9906         * config/sparc/sparc.c (fp_register_operand): New predicate.
9907         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
9908
9909 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
9910
9911         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
9912         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
9913         (unprotoize.o): Ditto.  Build from protoize.c.  Define
9914         UNPROTOIZE on command line.
9915         * protoize.c: Include cppdefault.h.  Delete include_defaults.
9916         (in_system_include_dir): Use cpp_include_defaults (defined in
9917         cppdefault.o).
9918         * unprotoize.c: Delete file.
9919
9920 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
9921
9922         * config/rs6000/altivec.h (vec_ld): Add array variants.
9923         (vec_lde): Same.
9924         (vec_ldl): Same.
9925
9926 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
9927             Aldy Hernandez <aldyh@redhat.com>
9928
9929         * config/rs6000/altivec.h: Define __ALTIVEC__.
9930         (bool): New.
9931         (__pixel): New.
9932         (pixel): New.
9933         (vec_cfux): New.
9934         (vec_vmaddfp): New.
9935         (vec_vsldoi): New.
9936         Add parentheses to all macro arguments.
9937
9938 2002-04-16  Richard Henderson  <rth@redhat.com>
9939
9940         PR c++/6320
9941         * except.c (remove_eh_handler): Insert inner regions at beginning
9942         of sibling chain.  Refactor expressions.
9943
9944 2002-04-16  Richard Henderson  <rth@redhat.com>
9945
9946         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
9947         * config/sparc/sol2-gas-bi.h: New file.
9948         * config.gcc (sparc*-solaris): Add it as needed.
9949         * configure.in (AS_SPARC64_FLAG): Remove check.
9950         * config.in, configure: Regenerate.
9951
9952         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
9953
9954 2002-04-16  Richard Henderson  <rth@redhat.com>
9955
9956         * config/mips/mips.c (override_options): Don't override N32 for
9957         a 64-bit ISA.
9958
9959         PR 6202
9960         * config/mips/mips.md (can_delay): Split out of existing define_delays.
9961         (HILO_delay): Set can_delay false.
9962
9963 2002-04-16  Dale Johannesen <dalej@apple.com>
9964
9965         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
9966         instruction addresses.
9967         (rs6000_output_function_epilogue): Likewise.
9968
9969 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
9970
9971         * c-parse.in (poplevel, compstmt_start,
9972         compstmt_primary_start): Add ending ';', in accordance
9973         with POSIX.
9974
9975 2002-04-16  Richard Henderson  <rth@redhat.com>
9976
9977         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
9978         Adjust tm_file order to get TARGET_DEFAULT set properly.
9979         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
9980         * doc/install.texi (sparc-solaris): Update.
9981
9982 2002-04-16  Dale Johannesen <dalej@apple.com>
9983
9984         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
9985         comparison operands do not match each other or if modes of
9986         conditions do not match result.
9987
9988 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
9989
9990         PR target/6305
9991         * config/s390/s390.md (mulsidi3): Set both subregs of the
9992         multiword register.
9993
9994 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
9995
9996         * config/rs6000/altivec.h (vec_addc): Type check.
9997
9998 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
9999
10000         PR middle-end/6279
10001         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
10002
10003         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
10004
10005 2002-04-15  Richard Henderson  <rth@redhat.com>
10006
10007         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
10008         call_really_used_regs too.
10009
10010 2002-04-15  Richard Henderson  <rth@redhat.com>
10011
10012         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
10013
10014 2002-04-15  David S. Miller  <davem@redhat.com>
10015
10016         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
10017         as being CLOBBERed.
10018
10019 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
10020
10021         PR c/6290
10022         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
10023         CONST_VECTOR is { 0, ... 0 }.
10024
10025 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
10026
10027         * doc/install.texi (Installing GCC: Configuration): Clarify
10028         the only supported ways to configure gcc.
10029
10030 2002-04-15  Roland McGrath  <roland@frob.com>
10031
10032         * config.gcc (alpha*-*-gnu*): New target configuration.
10033         * config/alpha/gnu.h: New file for it.
10034         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
10035
10036 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
10037
10038         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
10039         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
10040         * tree.h (expand_start_stmt_expr): Update prototype.
10041         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
10042         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
10043         on the STMT_EXPR created for the inline function.
10044
10045 2002-04-15  Richard Henderson  <rth@redhat.com>
10046
10047         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
10048         config/i386/linux-aout.h, config/i386/linux-oldld.h,
10049         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
10050         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
10051         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
10052         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
10053         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
10054         Define __gnu_linux__, not gnu_linux.
10055         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
10056
10057 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
10058
10059         Remove Chill front end.
10060         * gcc.c (default_compilers): Remove Chill entries.
10061         * ch: Remove directory.
10062         * doc/frontends.texi: Remove information about Chill.
10063         * doc/sourcebuild.texi: Likewise.
10064         * doc/standards.texi: Likewise.
10065
10066 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
10067
10068         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
10069         (LONGLONG_STANDALONE): Define.
10070
10071 2002-04-15  David S. Miller  <davem@redhat.com>
10072
10073         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
10074         Call emit_library_call with LCT_NORMAL.
10075         (sparc_initialize_trampoline): Use LCT_foo instead of
10076         magic constant in emit_library_call invocations.
10077         (sparc64_initialize_trampoline): Likewise.
10078         (sparc_profile_hook): Likewise.
10079         * config/sparc/sparc.md: Likewise.
10080
10081         * config/sparc/sparc.c (sparc_extra_constraint_check):
10082         Fix type of argument 'c'.
10083         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
10084         Likewise.
10085
10086 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10087
10088         * diagnostic.h (output_buffer_state): Redefine.
10089         (output_format_decoder): New macro.
10090         (output_prefixing_rule): Likewise.
10091         (output_line_cutoff): Likewise.
10092         (diagnostic_format_decoder): Adjust.
10093         (diagnostic_prefixing_rule): Likewise.
10094         (diagnostic_line_cutoff): Likewise.
10095         (diagnostic_state): Likewise.
10096         (diagnostic_kind_count): Likewise.
10097         (diagnostic_buffer): Now a macro.
10098
10099         * diagnostic.c (diagnostic_buffer): Remove definition.
10100         (output_is_line_wrapping): Adjust.
10101         (set_real_maximum_length): Likewise.
10102         (output_set_maximum_length): Likewise.
10103         (init_output_buffer): Likewise.
10104         (lhd_print_error_function): Likewise.
10105         (output_do_verbatim): Likewise.
10106
10107 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
10108
10109         * cpperror.c (print_location): Don't print include chain
10110         if line == 0.
10111         (cpp_begin_message): Update to use DL_ macros.
10112         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
10113         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
10114         cpp_notice, cpp_notice_from_errno): Remove.
10115         (cpp_error, cpp_error_with_line): Update to take a diagnostic
10116         level.
10117         (cpp_errno): New.
10118         * cppexp.c (CPP_ICE): Remove.
10119         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
10120         lex, integer_overflow, _cpp_parse_expr): Update.
10121         * cppfiles.c (read_include_file, find_include_file,
10122         handle_missing_header, _cpp_read_file, remap_filename): Update.
10123         * cpphash.h (enum error_type): Remove.
10124         (_cpp_begin_message): Update.
10125         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
10126         cpp_handle_option, cpp_post_options): Update.
10127         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
10128         skip_whitespace, parse_identifier, parse_slow, parse_string,
10129         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
10130         cpp_interpret_charconst): Update.
10131         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
10132         lex_macro_node, do_undef, glue_header_name, parse_include,
10133         do_include_common, read_flag, do_line, do_linemarker, do_ident,
10134         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
10135         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
10136         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
10137         _cpp_pop_buffer, do_diagnostic): Update.
10138         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
10139         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
10140         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
10141         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
10142         cpp_notice, cpp_notice_from_errno): Remove.
10143         (cpp_error, cpp_error_with_line): Update to take a diagnostic
10144         level.
10145         (cpp_errno): New.
10146         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
10147         collect_args, enter_macro_context, save_parameter, parse_params,
10148         _cpp_create_definition, check_trad_stringification,
10149         cpp_macro_definition): Update.
10150         * cppmain.c (cpp_preprocess_file): Update.
10151         * fix-header.c (read_scan_file): Update.
10152
10153 2002-04-14  Andreas Schwab  <schwab@suse.de>
10154
10155         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
10156
10157 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
10158
10159         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
10160
10161 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
10162
10163         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
10164         not gnu_hurd.
10165
10166 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
10167
10168         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
10169
10170 2002-04-13      Joel Sherrill <joel@OARcorp.com>
10171
10172         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
10173         sparc-elf and sparc-rtems targets.
10174
10175 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
10176
10177         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
10178         defined, and __gnu_hurd__ wherever __GNU__ is defined.
10179         * arm/linux-elf.h: Likewise.
10180         * cris/aout.h: Likewise.
10181         * cris/linux.h: Likewise.
10182         * i370/linux.h: Likewise.
10183         * i386/gnu.h: Likewise.
10184         * i386/linux-aout.h: Likewise.
10185         * i386/linux-oldld.h: Likewise.
10186         * i386/linux.h: Likewise.
10187         * i386/linux64.h: Likewise.
10188         * ia64/linux.h: Likewise.
10189         * m68k/linux-aout.h: Likewise.
10190         * m68k/linux.h: Likewise.
10191         * mips/linux.h: Likewise.
10192         * pa/pa-linux.h: Likewise.
10193         * pj/linux.h: Likewise.
10194         * rs6000/sysv4.h: Likewise.
10195         * s390/linux.h: Likewise.
10196         * sh/linux.h: Likewise.
10197         * sparc/linux-aout.h: Likewise.
10198         * sparc/linux.h: Likewise.
10199         * sparc/linux64.h: Likewise.
10200         * xtensa/linux.h: Likewise.
10201
10202 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
10203
10204         * stmt.c (check_unique_operand_names): Expect operand names to
10205         be strings rather than identifiers.  Use simple_cst_equal to
10206         compare them.
10207         (resolve_operand_name_1): Make same identifier to string change here.
10208         * c-parse.in (asm_operand): Convert a named operand into a string.
10209         * cp/parse.y (asm_operand): Likewise.
10210
10211 2002-04-13  Andreas Schwab  <schwab@suse.de>
10212
10213         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
10214
10215 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
10216
10217         Revert these changes:
10218
10219         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
10220
10221         PR c++/5571
10222         * stor-layout.c (layout_decl): Reset the RTL for the decl.
10223
10224 2002-04-12  Richard Henderson  <rth@redhat.com>
10225
10226         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
10227         (sparc*-*-solaris): Clean up header files.
10228         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
10229         and plan on generating 64-bit code.
10230         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
10231         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
10232         * config/sparc/sol2-sld-64.h: Rename ...
10233         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
10234         for AS_SPARC64_FLAG not defined.
10235         * config/sparc/sol2-gld-bi.h: New.
10236         * config/sparc/sol2-sld.h: Remove.
10237         * config/sparc/sol26-sld.h: New.
10238         * config/sparc/sol2.h: Tidy comments.
10239         * doc/install.texi: Document sparc-solaris configury changes.
10240
10241 2002-04-12  Richard Henderson  <rth@redhat.com>
10242
10243         * recog.c (offsettable_address_p): Match the logic in adjust_address.
10244
10245         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
10246         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
10247
10248 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10249
10250         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
10251
10252 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
10253
10254         * pa.c (pa_can_combine_p): Call extract_insn before calling
10255         constrain_operands.
10256
10257 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
10258
10259         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
10260         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
10261         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
10262         (CPP_PREDEFINES): Handle __declspec.
10263         * config/i386/t-interix (USER_H): Remove.
10264
10265 2002-04-12  DJ Delorie  <dj@redhat.com>
10266
10267         * integrate.c (compare_blocks): Make comparisons safe for when
10268         sizeof(int) < sizeof(char *).
10269         (find_block): Likewise.
10270
10271 2002-04-12  Jan Hubicka  <jh@suse.cz>
10272             David Edelsohn  <edelsohn@gnu.org>
10273
10274         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
10275         registers.
10276         (symbol_ref_operand): New.
10277         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
10278         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
10279
10280 2002-04-12  Andreas Schwab  <schwab@suse.de>
10281
10282         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
10283         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
10284         overrides the definition in config/svr4.h.
10285
10286 2002-04-12      Eric Norum <eric.norum@usask.ca>
10287
10288         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
10289         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
10290         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
10291         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
10292         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
10293         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
10294         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
10295         definitions to config/rtems.h and make the targets more similar.
10296
10297 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10298
10299         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
10300         POINTERS_EXTEND_UNSIGNED.
10301         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
10302         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
10303
10304         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
10305         not specified.
10306
10307 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
10308
10309         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
10310         depends on TARGET_SHMEDIA, not TARGET_SH5.
10311
10312 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
10313
10314         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
10315         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
10316
10317 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
10318
10319         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
10320         no r0 clobber.
10321
10322 2002-04-12  Andreas Schwab  <schwab@suse.de>
10323
10324         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
10325
10326 2002-04-12  Richard Henderson  <rth@redhat.com>
10327
10328         PR bootstrap/4191
10329         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
10330
10331         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
10332         modes spanning multiple hard regs.
10333
10334         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
10335
10336 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10337
10338         * pa.c (pa_output_function_prologue): Don't accumulate the total
10339         number of code bytes when using TARGET_64BIT, or gas, SOM and not
10340         the portable runtime.
10341         (output_deferred_plabels): Handle 64bit plabels.
10342         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
10343         generating pic code using the GAS assembler for object formats that
10344         are not SOM (ie., ELF32 and ELF64).
10345         (output_millicode_call): Check attribute type if attribute length is 28.
10346         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
10347         dbr_sequence_length once.
10348         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
10349         dbr_sequence_length once.
10350         * pa.h (TARGET_SOM): Define if not defined.
10351         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
10352         with GAS and not SOM.
10353         (jump, call_internal_reg, call_value_internal_reg): Likewise.
10354         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
10355
10356 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
10357
10358         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
10359         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
10360         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
10361         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
10362         elfos.h and dbxelf.h values are fine now.
10363         * config/i386/freebsd.h, config/alpha/freebsd.h
10364         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
10365
10366 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
10367
10368         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
10369         or set Acpu or Amachine.  Reformat.
10370         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
10371         define.
10372         (LINK_SPEC): Do not need to undef.
10373         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
10374         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
10375         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
10376         define.
10377         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
10378         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
10379         (LINK_SPEC): Do not need to undef.
10380         (DONT_USE_BUILTIN_SETJMP): Do not define.
10381         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
10382         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
10383         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
10384         Remove trailing spaces.
10385         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
10386         __ELF__, or set Acpu or Amachine.  Reformat.
10387         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
10388         define.
10389
10390 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
10391
10392         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
10393         all other *-*-freebsd* targets.
10394
10395 2002-04-11  Richard Henderson  <rth@redhat.com>
10396
10397         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
10398
10399 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
10400
10401         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
10402         Include {cpu}/{cpu}.h thru tm_file.
10403         (alpha*-*-linux*ecoff): Remove target.
10404         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
10405         (LINK_SPEC): Remove, is not OS independent.
10406         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
10407         (LINK_SPEC): Do not need to #undef any longer.
10408         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
10409         any longer.
10410         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
10411         __ELF__.
10412         (LINK_SPEC): Moved here from alpha/elf.h.
10413         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
10414         SUB_CPP_PREDEFINES.
10415         * config/alpha/linux-ecoff.h: Remove.
10416         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
10417         (CPP_SPEC): Define _POSIX_SOURCE as needed.
10418         (CPP_SUBTARGET_SPEC): Do not define.
10419         (LINK_SPEC): Do not need to #undef any longer.
10420         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
10421         * config/alpha/vms.h: Likewise.
10422
10423 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
10424
10425         * doc/extend.texi: Remove old claim that typedefs cannot have
10426         an alignment attribute.
10427
10428 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
10429
10430         PR optimization/6177
10431         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
10432         bitpos is 0 and bitsize CONCAT size.
10433
10434 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
10435
10436         PR c/6223
10437         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
10438
10439 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
10440
10441         * config/alpha/freebsd.h: Minor reformatting.
10442         (CPP_SPEC): Define ELF and add cpp_subtarget.
10443         (ASM_SPEC): No longer needed.
10444
10445 2002-04-11  Richard Henderson  <rth@redhat.com>
10446
10447         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
10448         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
10449         (dimode mem/zero splitter): New.
10450
10451 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
10452
10453         * config/cris/cris.c (cris_override_options): Tweak error message
10454         for PIC not implemented.
10455
10456         * config/cris/cris.h: Tweak comments related to parameter-passing.
10457
10458         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
10459
10460 2002-04-10  Richard Henderson  <rth@redhat.com>
10461
10462         * except.c (add_ehl_entry): Allow duplicates after landing pad
10463         creation.
10464
10465 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
10466
10467         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
10468
10469 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
10470
10471         * c-decl.c (c_init_decl_processing): Move generation of
10472         decls for g77_integer_type_node and friends from here ...
10473         * c-common.c (c_common_nodes_and_builtins): ... to here.
10474
10475 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
10476
10477         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
10478         is only used as frame pointer when frame_pointer_needed is true.
10479
10480 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
10481
10482         PR target/817
10483         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
10484         for the fact that the pool entry uses two words.
10485         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
10486         1k bytes.
10487         (movdf_soft_insn): Similarly.
10488         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
10489         for the fact that the pool entry uses three words.
10490
10491 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
10492
10493         * config/mips/mips.c (mips_va_arg): When using the struct version
10494         of the EABI va_list, allow arguments in the register save area to
10495         take up less room than a stack argument.
10496
10497 2002-04-10  Richard Henderson  <rth@redhat.com>
10498
10499         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
10500         if EXPAND_INITIALIZER.
10501
10502 2002-04-09  Richard Henderson  <rth@redhat.com>
10503
10504         * config/alpha/alpha.md (movdi_er_maybe_g): New.
10505         * config/alpha/alpha.c (alpha_expand_mov): Use it.
10506
10507 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
10508
10509         PR optimization/6233
10510         * rtlanal.c (pure_call_p): New function.
10511         * rtl.h (pure_call_p): Declare.
10512         * loop.c (prescan_loop): Use it to set has_nonconst_call.
10513         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
10514
10515 2002-04-09  Eric Christopher  <echristo@redhat.com>
10516
10517         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
10518         information to .comm directive.
10519
10520 2002-04-09  Richard Henderson  <rth@redhat.com>
10521
10522         PR c/5078
10523         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
10524
10525 2002-04-09  Richard Henderson  <rth@redhat.com>
10526
10527         * basic-block.h (flow_delete_block_noexpunge): Declare.
10528         (expunge_block_nocompact): Declare.
10529         * cfg.c (expunge_block_nocompact): Split out from ...
10530         (expunge_block): ... here.
10531         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
10532         (flow_delete_block_noexpunge): Split out from ...
10533         (flow_delete_block): ... here.
10534         * cfgcleanup.c (delete_unreachable_blocks): Compact while
10535         removing dead blocks.
10536         * except.c (exception_handler_labels): Remove.
10537         (exception_handler_label_map): New.
10538         (struct eh_region): Add aka member.
10539         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
10540         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
10541         (for_each_eh_label, for_each_eh_label_1): New.
10542         (init_eh): Register exception_handler_label_map.
10543         (free_eh_status): Use free_region.
10544         (find_exception_handler_labels): Use the map, not the list.
10545         (remove_exception_handler_label): Likewise.
10546         (maybe_remove_eh_handler): Likewise.
10547         (remove_eh_handler): Use the region aka bitmap.
10548         * except.h (exception_handler_labels): Remove.
10549         (for_each_eh_label): Declare.
10550         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
10551         * loop.c (invalidate_loops_containing_label): New.
10552         (find_and_verify_loops): Use it.  Use for_each_eh_label.
10553         * sched-rgn.c (is_cfg_nonregular): Use
10554         current_function_has_exception_handlers.
10555
10556 2002-04-09  Richard Henderson  <rth@redhat.com>
10557
10558         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
10559         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
10560         Do not return changed status.
10561         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
10562         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
10563         New functions that do return changed status.
10564         * sbitmap.h: Update decls.
10565         * gcse.c, lcm.c: Use _cg functions as needed.
10566
10567 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
10568
10569         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
10570         (sh64-*-elf*, sh-*-rtemself*): Likewise.
10571         * config/sh/embed_bb.c: New file.
10572         * config/sh/embed-elf.h: New file.
10573         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
10574         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
10575         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
10576         __PTRDIFF_TYPE__ .
10577         (SUBTARGET_CPP_PTR_SPEC): Don't define.
10578         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
10579         Add subtarget_asm_endian_spec.
10580         (ASM_SPEC): Use subtarget_asm_endian_spec.
10581         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
10582         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
10583         (WCHAR_UNSIGNED): Define.
10584         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
10585         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
10586         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
10587         Fix value.
10588         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
10589         (sh_adjust_cost): Likewise.
10590         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
10591         __PTRDIFF_TYPE__ .
10592         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
10593         (WCHAR_TYPE_SIZE): Likewise.
10594         (ASM_SPEC): Use subtarget_asm_endian_spec.
10595         (SH_ELF_WCHAR_TYPE): #undef/ #define.
10596         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
10597         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
10598         (MAX_WCHAR_TYPE_SIZE): Don't #define .
10599         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
10600         (USER_LABEL_PREFIX): Don't #undef /#define .
10601         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
10602         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
10603         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
10604         (ASM_SPEC): Likewise.
10605         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
10606         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
10607         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
10608         (LIB2FUNCS_EXTRA): Define.
10609         * t-sh64 (LIB2FUNCS_EXTRA): Define.
10610         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
10611         (LIB1ASMFUNCS_CACHE): Define.
10612         (LIB2FUNCS_EXTRA): Redefine empty.
10613
10614 2002-04-08  Richard Henderson  <rth@redhat.com>
10615
10616         * reorg.c (get_branch_condition): Use reversed_comparison_code.
10617
10618 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10619
10620         * config/m68hc11/larith.asm (__map_data_section): Fix condition
10621         and optimize for size.
10622         (__do_global_ctors): Fix pointer comparison.
10623         (__do_global_dtors): Likewise.
10624
10625 2002-04-09  David S. Miller  <davem@redhat.com>
10626
10627         * config/sparc/sparc.c (sparc_extra_constraint_check): New
10628         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
10629         allow reloading pseudos.
10630         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
10631         * config/sparc/sparc-protos.h: Declare it.
10632
10633         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
10634         unsigned comparison warning.
10635         (output_restore_regs): Mark leaf_function as unused.
10636
10637 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10638
10639         * expr.c (is_aligning_offset): New function.
10640         (expand_expr, case COMPONENT_EXPR): Call it.
10641
10642 2002-04-08  David S. Miller  <davem@redhat.com>
10643
10644         PR target/6082
10645         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
10646
10647         Make init_priority work on Sparc when using GNU ld.
10648         * config/sparc/linux.h, config/sparc/linux64.h,
10649         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
10650         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
10651         * config/sparc/sol2-gld.h: New file to do the same.
10652         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
10653         sparc/sol2-gld.h to tm_file.
10654
10655         PR optimization/4328
10656         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
10657         * doc/md.texi: Document it.
10658         * config/sparc/sparc.md (movdi_insn_sp64_novis,
10659         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
10660         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
10661         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
10662         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
10663
10664 2002-04-08  Andreas Jaeger  <aj@suse.de>
10665
10666         * stmt.c (expand_asm_operands): Revert last patch from Richard
10667         Henderson.
10668
10669 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10670
10671         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
10672         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
10673
10674 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10675
10676         * doc/contrib.texi (Contributors): Add David O'Brien.
10677
10678 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
10679
10680         * configure.in (auto-build.h): Use target_alias and build_alias
10681         when running configure.
10682         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
10683         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
10684         * configure: Regenerate.
10685
10686 2002-04-07  David S. Miller  <davem@redhat.com>
10687
10688         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
10689
10690 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10691
10692         PR 5933
10693         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
10694         generating 32-bit pic code.
10695
10696 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
10697
10698         * cppinit.c (cpp_create_reader): Initialize
10699         discard_comments_in_macro_exp.
10700         (COMMAND_LINE_OPTIONS): Add "-CC" option.
10701         (cpp_handle_option): Handle "-CC" option.
10702         * cpplex.c (save_comment): If saving a C++ comment in
10703         a directive, convert it to a C comment.
10704         (_cpp_lex_direct): Pass second comment start character to
10705         save_comment to indicate comment type.
10706         * cpplib.c (_cpp_handle_directive): If processing
10707         a "#define" directive and discard_comments_in_macro_exp
10708         is false,  re-enable saving of comments.
10709         (lex_macro_node): If discard_comments_in_macro_exp is false,
10710         discard any comments before the macro identifier.
10711         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
10712         member.
10713         * cppmacro.c (cpp_get_token): If expanding a macro while
10714         processing a directive, discard any comments we might encounter.
10715         (parse_params): If discard_comments_in_macro_exp is false,
10716         ignore comments in the macro parameter list.
10717         * gcc.c (cpp_unique_options): Add "-CC" option.
10718         (option_map): Map "--comments-in-macros" to "-CC".
10719         * doc/cppopts.texi: Document "-CC" option.
10720         * f/lang-specs.h: Add "-CC" option.
10721         * testsuite/gcc.dg/cpp/maccom1.c: New test.
10722         * testsuite/gcc.dg/cpp/maccom2.c: New test.
10723         * testsuite/gcc.dg/cpp/maccom3.c: New test.
10724         * testsuite/gcc.dg/cpp/maccom4.c: New test.
10725         * testsuite/gcc.dg/cpp/maccom5.c: New test.
10726         * testsuite/gcc.dg/cpp/maccom6.c: New test.
10727
10728 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10729
10730         PR middle-end/6180
10731         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
10732
10733 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
10734
10735         PR c++/5571
10736         * stor-layout.c (layout_decl): Reset the RTL for the decl.
10737
10738         PR opt/5120
10739         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
10740         RTX_UNCHANGING_P for the functions arguments when a tail call
10741         is made.
10742
10743 2002-04-06  Jason Merrill  <jason@redhat.com>
10744
10745         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
10746         (parse_options_and_default_flags): Set them appropriately.
10747         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
10748
10749 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
10750
10751         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
10752         here.
10753
10754         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
10755         semicolon.
10756
10757         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
10758         types come in by-reference.  Fix typo in comment.
10759
10760 2002-04-05  David S. Miller  <davem@redhat.com>
10761
10762         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
10763         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
10764         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
10765         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
10766
10767 2002-04-05  David S. Miller  <davem@redhat.com>
10768
10769         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
10770         are not going to emit return instructions, emit at least a nop
10771         for the sake of sane backtraces.
10772
10773 2002-04-05  Richard Henderson  <rth@redhat.com>
10774
10775         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
10776
10777 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
10778
10779         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
10780
10781 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
10782
10783         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
10784         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
10785         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
10786
10787 2002-04-05  Andreas Schwab  <schwab@suse.de>
10788
10789         * c-convert.c: Include c-common.h.
10790         * Makefile.in (c-convert.o): Updated.
10791
10792 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10793
10794         * mklibgcc.in: Use separate libgcc.map for each multilib.
10795         * Makefile.in (distclean): Don't remove libgcc.map here.
10796
10797 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10798
10799         * Makefile.in (s-mlib): Handle --disable-multilib by separate
10800         genmultilib invocation.
10801
10802 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
10803
10804         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
10805         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
10806         to num_gprs for symmetry.
10807         * config/mips/mips.c: Adjust accordingly.
10808
10809 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10810
10811         * c-common.c (truthvalue_conversion): Rename, update.
10812         * c-common.h (c_common_truthvalue_conversion): New.
10813         * c-convert.c (convert): Update.
10814         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10815         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
10816         * c-typeck.c (build_binary_op, build_unary_op,
10817         build_conditional_expr): Update.
10818         * fold-const.c (constant_boolean_node, fold): Use langhook.
10819         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
10820         * langhooks.h (struct lang_hooks): New hook.
10821         * stmt.c (expand_decl_cleanup): Use langhook.
10822         * tree.h (truthvalue_conversion): Remove.
10823 objc:
10824         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10825
10826 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
10827
10828         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
10829         Add rules to make null object file.
10830
10831 2002-04-04  Jim Blandy  <jimb@redhat.com>
10832
10833         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
10834         macro formal parameter names.
10835
10836 2002-04-04  David S. Miller  <davem@redhat.com>
10837
10838         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
10839
10840 2002-04-04  Richard Henderson  <rth@redhat.com>
10841
10842         PR middle-end/5099
10843         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
10844         Support copies into and out of memory.  Don't accept allows_reg
10845         and allows_mem as gospel.
10846
10847 2002-04-04  Richard Henderson  <rth@redhat.com>
10848
10849         PR opt/6165
10850         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
10851         (write_dependence_p): Likewise.
10852
10853 2002-04-04  Richard Henderson  <rth@redhat.com>
10854
10855         * predict.c (estimate_bb_frequencies): Do frequency calculation
10856         with a volatile temporary.
10857
10858 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
10859
10860         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
10861
10862 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10863
10864         PR c++/6119
10865         * final.c (final_start_function): Don't bump profile_label_no here...
10866         (final_end_function): ...but here.
10867
10868 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10869
10870         * config/sparc/sparc.md (pic): New attribute.
10871         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
10872         into stack slots.
10873         (split after do_builtin_setjmp_setup): New.
10874
10875 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10876
10877         PR fortran/6106
10878         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
10879         change.
10880
10881 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10882
10883         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
10884         UNITS_PER_WORD for zero sized aggregates.
10885
10886 2002-04-03  David S. Miller  <davem@redhat.com>
10887
10888         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
10889         one-character spec for this, just use %(link_gcc_c_sequence).
10890
10891 2002-04-03  David S. Miller  <davem@redhat.com>
10892
10893         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
10894         handling.
10895
10896 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10897
10898         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
10899         (DWARF_FRAME_RETURN_COLUMN): Move.
10900         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10901         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
10902         * pa.c (except.h, predict.h): Include.
10903         (FRP): Delete.
10904         (store_reg_modify, set_reg_plus_d): Revise prototypes.
10905         (output_ascii): Add cast.
10906         (store_reg_modify): Revise to add frame notes.
10907         (set_reg_plus_d): Likewise.
10908         (compute_frame_size): Include space for eh data registers in frame if
10909         the current function calls eh_return.
10910         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
10911         function calls eh_return.  Save eh data registers if the current
10912         function calls eh_return.  Fix code to add frame notes.  Emit
10913         blockage to prevent insns with frame notes being scheduled in the
10914         delay slot of calls.
10915         (hppa_expand_epilogue): Restore eh data registers and do final stack
10916         adjustment if the current function calls eh_return.  Don't add frame
10917         notes.
10918         (output_call): Revise for change in length of call insn.  Don't do
10919         return pointer adjustment for an unconditional jump in the delay slot
10920         of a call when using frame notes.
10921         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
10922         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
10923         (ARG_POINTER_CFA_OFFSET): Define.
10924         * pa.md (return_external_pic): New pattern.
10925         (prologue): Correct formatting.  Use return_external_pic if current
10926         function calls eh_return.
10927         (call_internal_symref, call_value_internal_symref,
10928         sibcall_internal_symref, sibcall_value_internal_symref): Change default
10929         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
10930         respectively.
10931         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
10932
10933         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
10934         list of targets to check using "nop" insn.
10935         * configure: Rebuilt.
10936
10937 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
10938
10939         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
10940
10941 2002-04-03  David S. Miller  <davem@redhat.com>
10942
10943         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
10944         library sequence passed to the linker.
10945         (LINK_COMMAND_SPEC): Use it.
10946         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
10947         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
10948         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10949
10950 2002-04-03  Jason Merrill  <jason@redhat.com>
10951
10952         * except.c (struct eh_status): Remove protect_list.
10953         (begin_protect_partials, end_protect_partials): Remove.
10954         (add_partial_entry): Remove.
10955         * except.h: Remove prototypes.
10956
10957         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
10958         expand_decl_cleanup_eh.
10959
10960         PR c++/5636
10961         * tree.h (CLEANUP_EH_ONLY): New macro.
10962         * stmt.c (expand_decl_cleanup_eh): New fn.
10963         (expand_cleanups): Check CLEANUP_EH_ONLY.
10964         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
10965         Use expand_decl_cleanup_eh.
10966         (expand_stmt): Adjust.
10967         * c-common.h: Adjust prototype.
10968
10969 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
10970
10971         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
10972         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
10973         (cris_target_asm_function_epilogue): Ditto.
10974         (cris_initial_frame_pointer_offset): Ditto.
10975         (cris_simple_epilogue): Ditto.
10976         (cris_expand_builtin_va_arg): Variable-size types come in
10977         by-reference.
10978
10979 2002-04-03  David S. Miller  <davem@redhat.com>
10980
10981         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
10982         little-endian.
10983         (set_fast_math): Correct 'fsr' type.
10984
10985 2002-04-03  Richard Henderson  <rth@redhat.com>
10986
10987         PR opt/3569
10988         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
10989         * toplev.c (check_global_declarations): Use it.
10990         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
10991         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10992         (LANG_HOOKS_DECLS): Add it.
10993         * langhooks.c (lhd_warn_unused_global_decl): New.
10994         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10995         * c-objc-common.c (c_warn_unused_global_decl): New.
10996         * c-tree.h (c_warn_unused_global_decl): Declare.
10997         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10998
10999 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
11000
11001         * langhooks-def.h (lhd_set_decl_assembler_name,
11002         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
11003         (LANG_HOOKS_INITIALIZER): Update.
11004         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
11005         * langhooks.h (struct lang_hooks): New hook.
11006         * tree.c (set_decl_assembler_name): Move to langhooks.c.
11007         (lang_set_decl_assembler_name): Remove.
11008         (init_obstacks): Don't set hook.
11009         (decl_assembler_name): New function.
11010         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
11011         (decl_assembler_name): New.
11012         (lang_set_decl_assembler_name): Remove.
11013
11014 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
11015
11016         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
11017         works properly with .hidden symbols.
11018         * configure: Rebuilt.
11019         * config.in: Rebuilt.
11020         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
11021         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
11022         properly with .hidden symbols.
11023
11024 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR middle-end/6102
11027         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
11028         USE argument.
11029
11030 2002-04-03  Richard Henderson  <rth@redhat.com>
11031
11032         PR opt/4120
11033         * sched-rgn.c (sets_likely_spilled): New.
11034         (sets_likely_spilled_1): New.
11035         (add_branch_dependences): Use it.
11036
11037 2002-04-02  Richard Henderson  <rth@redhat.com>
11038
11039         PR opt/4311
11040         * loop.h (LOOP_FIRST_PASS): New.
11041         * loop.c (strength_reduce): Mind it when deciding to unroll.
11042         * toplev.c (rest_of_compilation): Set it.
11043
11044 2002-04-02  David S. Miller  <davem@redhat.com>
11045
11046         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
11047         mems_ok_for_ldd_peep when the order of the loads being examined
11048         is reversed.
11049         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
11050         existing comment to increase comprehension of this situation.
11051
11052 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
11053
11054         * config/sh/sh.md: Don't use union real_extract.
11055
11056 2002-04-02  Richard Henderson  <rth@redhat.com>
11057
11058         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
11059
11060 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
11061
11062         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
11063         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
11064         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
11065         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
11066         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
11067         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
11068         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
11069         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
11070         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
11071         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
11072         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
11073         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
11074         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
11075         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
11076         Include as many configury headers via tm_file as possible.  This
11077         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
11078         * config/openbsd-oldgas.h: New file.
11079         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
11080         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
11081         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
11082         config/i386/i386-coff.h, config/i386/i386-interix.h,
11083         config/i386/iscdbx.h, config/i386/linux-aout.h,
11084         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
11085         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
11086         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
11087         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
11088         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
11089         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
11090         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
11091         config/i386/vxi386.h: Do not directly include configury headers.
11092         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
11093         Directly include configury headers that are no longer automatically
11094         included by the above headers.
11095         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
11096         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
11097         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
11098         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
11099         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
11100         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
11101         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
11102         (TARGET_VERSION): Define.
11103         * config/i386/beos-elf.h, config/i386/freebsd.h,
11104         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
11105         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
11106         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
11107         config/i386/sco5.h, config/i386/sysv4.h
11108         (TARGET_VERSION): Do not need to protect.
11109         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
11110         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
11111         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
11112         config/i386/i386-interix.h, config/i386/linux-aout.h,
11113         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
11114         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
11115         (YES_UNDERSCORES): Do not define - not needed.
11116         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
11117         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
11118         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
11119         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
11120         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
11121         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
11122         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
11123         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
11124
11125 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
11126             Richard Henderson  <rth@redhat.com>
11127
11128         PR c/5484
11129         * function.c (assign_temp): Accept either type or decl argument.
11130         Detect variables whose size is too large to fit into an integer.
11131         * stmt.c (expand_decl): Pass the decl, not the type.
11132
11133 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
11134
11135         * protoize.c: Match include directory usage with cppdefault.c.
11136
11137 2002-04-03  Jeffrey A Law  (law@redhat.com)
11138             Hans-Peter Nilsson  <hp@bitrange.com>
11139
11140         * combine.c (simplify_comparison): Avoid narrowing a comparison
11141         with a paradoxical subreg when doing so would drop signficant bits.
11142
11143 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
11144
11145         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
11146         if POINTERS_EXTEND_UNSIGNED is defined.
11147
11148 2002-04-02  Richard Henderson  <rth@redhat.com>
11149
11150         PR opt/3967
11151         * local-alloc.c (contains_replace_regs): LO_SUM may contain
11152         replace regs.
11153
11154 2002-04-02  Richard Henderson  <rth@redhat.com>
11155
11156         * doc/standards.texi: Document required freestanding libc entry points.
11157
11158 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
11159
11160         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
11161         associated splitter.  Remove MQ constraint.
11162         (ctrdi_internal4): Correct CCmode clobber.
11163
11164 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11165
11166         * milli64.S ($$dyncall): New function.
11167         * t-linux (LIB1ASMFUNCS): Revise module list.
11168         (LIB1ASMSRC): Use pa/milli64.S.
11169
11170 2002-04-02  Richard Henderson  <rth@redhat.com>
11171
11172         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
11173         rename solaris_sys_varargs_h.
11174
11175 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11176
11177         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
11178         the same mode as its component.
11179
11180 2002-04-02  Richard Henderson  <rth@redhat.com>
11181
11182         PR opt/190
11183         * final.c (this_is_asm_operands): Export.
11184         * output.h (this_is_asm_operands): Declare.
11185         * config/i386/i386.c (print_operand): Error odd asm operands.
11186
11187 2002-04-02  Richard Henderson  <rth@redhat.com>
11188
11189         PR opt/420
11190         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
11191
11192 2002-04-01  Richard Henderson  <rth@redhat.com>
11193
11194         PR target/1538
11195         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
11196         * fixinc/fixincl.x: Rebuild.
11197
11198 2002-04-01  Richard Henderson  <rth@redhat.com>
11199
11200         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
11201         (atomic_alloc, atomic_free): New.
11202         (SIZE, MASK_FOR, PTR_IN): New.
11203         (emergency_reg_state, emergency_reg_state_free): New.
11204         (emergency_labeled_state, emergency_labeled_state_free): New.
11205         (reg_state_alloced, labeled_state_alloced): New.
11206         (alloc_reg_state, free_reg_state): New.
11207         (alloc_label_state, free_label_state, free_label_states): New.
11208         (push, pop, dup_state_stack, free_state_stack): Use them.
11209         (desc_label_state): Likewise.
11210         (uw_frame_state_for): Free label states and state stack.
11211         (uw_update_reg_address): Eliminate warnings.
11212
11213 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
11214
11215         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
11216         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
11217
11218 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
11219
11220         * c-decl.c (grokdeclarator): Update.
11221         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
11222         * c-tree.h (c_mark_addressable): New.
11223         * c-typeck.c (default_function_array_conversion, build_unary_op,
11224         build_array_ref, convert_for_assignment): Update.
11225         (mark_addressable): Rename.
11226         * calls.c (try_to_integrate, expand_call): Use langhook.
11227         * expr.c (expand_expr): Use langhook.
11228         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
11229         * langhooks.h (struct lang_hooks): New hook.
11230         * stmt.c (expand_asm_operands): Use langhook.
11231         * tree.h (mark_addressable): Remove.
11232 objc:
11233         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
11234
11235 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
11236
11237         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
11238         in previous change.
11239
11240 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
11241
11242         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
11243         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
11244
11245 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
11246
11247         * c-common.c (unsigned_conversion_warning, convert_and_check,
11248         unsigned_type, signed_type, shorten_compare,
11249         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
11250         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
11251         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
11252         New.
11253         * c-decl.c (grokdeclarator): Update.
11254         * c-format.c (check_format_types): Update.
11255         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
11256         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
11257         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
11258         * convert.c (convert_to_integer): Use new hooks.
11259         * expmed.c (make_tree): Use new hooks.
11260         * expr.c (store_expr): Use new hooks.
11261         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
11262         all_ones_mask_p, unextend, fold): Use new hooks.
11263         * langhooks.h (struct lang_hooks_for_types): New hooks.
11264         * tree.h (signed_or_unsigned_type, signed_type,
11265         unsigned_type): Remove.
11266 objc:
11267         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
11268         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
11269
11270 2002-03-31  Richard Henderson  <rth@redhat.com>
11271
11272         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
11273         (desc_frgr_mem): Fix reference to f16-f31.
11274
11275 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11276
11277         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
11278         RTVEC_ELT): Const-ify.
11279         * varray.h (VARRAY_CHECK): Const-ify.
11280         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
11281         ggc_mark_rtvec, ggc_mark): Const-ify.
11282
11283 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
11284
11285         * diagnostic.c: Include langhooks-def.h.
11286         * Makefile.in (diagnostic.o): Update.
11287
11288 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
11289
11290         * c-common.c (c_unsafe_for_reeval): Rename.
11291         * c-common.h (c_unsafe_for_reeval): Rename.
11292         * c-decl.c (finish_incomplete_decl): Rename.
11293         (c_init_decl_processing): Don't set langhook.
11294         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
11295         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
11296         * c-objc-common.c (c_objc_common_init): Don't set langhook.
11297         * c-tree.h (finish_incomplete_decl): Rename.
11298         * langhooks-def.h (lhd_unsafe_for_reeval): New.
11299         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
11300         (LANG_HOOKS_INITIALIZER): Update.
11301         * langhooks.c (lhd_unsafe_For_reeval): New.
11302         * langhooks.h (struct langhooks): New hooks.
11303         * toplev.c (incomplete_decl_finalize_hook): Remove.
11304         (wrapup_global_declarations): Update.
11305         * tree.c (lang_unsafe_for_reeval): Remove.
11306         (unsafe_for_reeval): Update.
11307         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
11308         Remove.
11309 objc:
11310         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
11311         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
11312
11313 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
11314
11315         * diagnostic.c (print_error_function): Remove.
11316         (default_print_error_function): Rename.
11317         (report_error_function): Update.
11318         * diagnostic.h (print_error_function): Remove.
11319         (default_print_error_function): Remove.
11320         * langhooks-def.h (struct diagnostic_context): Predeclare.
11321         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
11322         (LANG_HOOKS_INITIALIZER): Update.
11323         * langhooks.h (struct diagnostic context): Predeclare.
11324         (struct lang_hooks): New hook.
11325
11326 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11327
11328         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
11329         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
11330         !flag_pic.
11331         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
11332         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
11333         of PIC_OFFSET_TABLE_REGNUM thruout.
11334         * config/rs6000/rs6000.md: Likewise.
11335         * config/rs6000/darwin.h: Likewise.
11336
11337 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11338
11339         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
11340         unsigned HOST_WIDE_INT, not unsigned int.
11341
11342 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
11343
11344         PR middle-end/6096, middle-end/6098, middle-end/6099
11345         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
11346         CODE_LABELs.
11347         (fill_slots_from_thread): Likewise.
11348
11349 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
11350
11351         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
11352         floating fields in float regs.
11353         (function_arg_record_value_2): Likewise.
11354
11355 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
11356
11357         * config/mmix/mmix.md (define_constants): Remove misleading
11358         FIXME.  Add MMIX_fp_rO_OFFSET.
11359         ("nonlocal_goto_receiver"): Don't have stack-frame address of
11360         saved rO as part of the pattern.  Remove FIXME.
11361         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
11362         here, at output-time.
11363
11364 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
11365
11366         PR middle-end/6100
11367         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
11368         REG_BR_PRED.
11369         (output_v9branch): Likewise.
11370
11371 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
11372
11373         * gcc.c: Revert previous patch for now.
11374         * config/i386/djgpp.h: Likewise.
11375
11376 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
11377
11378         * config/mmix/crti.asm (_init): Register _fini with atexit.
11379         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
11380
11381 2002-03-31  Richard Henderson  <rth@redhat.com>
11382
11383         PR target/3997
11384         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
11385         (ASM_OUTPUT_DEF_FROM_DECLS): New.
11386
11387 2002-03-31  Richard Henderson  <rth@redhat.com>
11388
11389         * libgcc2.c (__bb_exit_func): Make static.
11390
11391         * config/alpha/alpha.md (trap): New.
11392
11393 2002-03-31  Richard Henderson  <rth@redhat.com>
11394
11395         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
11396         promoted argument types; build trap.
11397         (expand_builtin_trap): New.
11398         (expand_builtin): Use it.
11399         * stmt.c (expand_nl_goto_receivers): Likewise.
11400         * expr.h (expand_builtin_trap): Declare.
11401         * libfuncs.h (LTI_abort, abort_libfunc): New.
11402         * optabs.c (init_optabs): Init abort_libfunc.
11403
11404 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
11405
11406         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
11407         (LINK_COMMAND_SPEC): ... from here.
11408         (init_gcc_specs): Duplicate it here too, omitting
11409         shared_name in the second copy.
11410         (init_spec): Test for duplicate
11411         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
11412
11413 2002-03-30  David S. Miller  <davem@redhat.com>
11414
11415         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11416         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
11417
11418 2002-03-30  Roger Sayle <roger@eyesopen.com>
11419             Richard Henderson  <rth@redhat.com>
11420
11421         * regmove.c (combine_stack_adjustments_for_block): Avoid
11422         emitting a stack adjustment of zero bytes.  Let delete_insn
11423         update bb->head.
11424
11425 2002-03-30  Richard Henderson  <rth@redhat.com>
11426
11427         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
11428         (sparc_emitting_epilogue): New.
11429         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
11430         * config/sparc/sparc-protos.h: Update.
11431         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
11432         (TARGET_SWITCHES): Update.
11433         * config/sparc/sparc.md (return): Remove.
11434         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
11435         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
11436         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
11437         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
11438         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
11439         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
11440         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
11441         Remove MASK_EPILOGUE.
11442         * doc/invoke.texi: Update.
11443
11444 2002-03-30  Daniel Berlin  <dan@dberlin.org>
11445
11446         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
11447         CPP will start the file for us.
11448
11449 2002-03-30  Richard Henderson  <rth@redhat.com>
11450
11451         PR target/5446
11452         * config/ia64/ia64.c (group_barrier_needed_p): Special case
11453         prologue_allocate_stack.
11454         (ia64_single_set): Use insn codes for recognition of special
11455         cases, not rtl matching.
11456         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
11457
11458 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
11459
11460         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
11461
11462 2002-03-30  Richard Henderson  <rth@redhat.com>
11463
11464         PR target/6032
11465         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
11466         or -fomit-frame-pointer with profiling.
11467         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
11468         (FUNCTION_PROFILER): Do nothing.
11469         (PROFILE_HOOK): New.
11470         * config/sparc/sparc.c (sparc_override_options): Don't check
11471         code models for profiling.
11472         (sparc_function_profiler): Remove.
11473         (sparc_profile_hook): New.
11474         * config/sparc/sparc-protos.h: Update.
11475
11476 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR optimization/6086
11479         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
11480         of SUBREG of volatile MEM or because the MEM was mode dependent,
11481         return CLOBBER instead of unmodified SUBREG.
11482
11483 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11484
11485         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
11486         when not optimizing.
11487
11488         * toplev.c (rest_of_compilation): Cann mark_constant_function
11489         only when optimizing.
11490
11491         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
11492         are NULL.
11493
11494         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
11495         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
11496         (try_optimize_cfg): clear all AUX fields.
11497
11498         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11499         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11500         (ix86_address_cost): Be prepared for SUBREGed registers.
11501         (legitimate_address_p): Accept SUBREGed registers.
11502
11503 2002-03-29  Richard Henderson  <rth@redhat.com>
11504
11505         PR target/5672
11506         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
11507
11508 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11509
11510         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
11511         for aggregate and TFmode types.
11512
11513 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
11514
11515         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
11516
11517 2002-03-29  Richard Henderson  <rth@redhat.com>
11518
11519         PR target/5886
11520         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
11521         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
11522
11523 2002-03-29  Richard Henderson  <rth@redhat.com>
11524
11525         PR target/6041
11526         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
11527         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
11528         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
11529         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
11530         conditional.
11531         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
11532
11533 2002-03-29  Dale Johannesen <dalej@apple.com>
11534
11535         * loop.c (combine_movables): Do allow combination of pseudos.
11536
11537 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
11538
11539         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
11540         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
11541         No functional change except ...
11542         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
11543         * doc/install.texi (*-*-freebsd*): Document port configuration.
11544
11545 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11546
11547         * Makefile.in (convert.o, calls.o, expmed.o): Update.
11548         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
11549         Use new hooks.
11550         * builtin-types.def (BT_PTRMODE): Update.
11551         * c-common.c (type_for_size): Rename c_common_type_for_size.
11552         (type_for_mode): Similarly.
11553         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
11554         Use new hook.
11555         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
11556         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
11557         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
11558         Redefine.
11559         * c-typeck.c (common_type, comptypes, default_conversion):
11560         Use new hooks.
11561         * calls.c: Include langhooks.h.
11562         (emit_library_call_value_1): Use new hooks.  Avoid redundant
11563         calls.
11564         * convert.c: Include langhooks.h
11565         (convert_to_pointer, convert_to_integer): Use new hooks.
11566         * except.c (init_eh): Similarly.
11567         * expmed.c: Include langhooks.h.
11568         (expand_mult_add): Use new hooks.
11569         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
11570         try_casesi): Similarly.
11571         * fold-const.c (optimize_bit_field_compare, make_range,
11572         decode_field_reference, fold_truthop, fold): Similarly.
11573         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
11574         put_var_into_stack): Similarly.
11575         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
11576         LANG_HOOKS_TYPE_FOR_SIZE): New.
11577         (LANG_HOOKS_TYPES_INITIALIZER): Update.
11578         * langhooks.h (lang_hooks_for_types): New hooks.
11579         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
11580         * tree.c (get_unwidened, get_narrower): Similarly.
11581         * tree.h (type_for_mode, type_for_size): Remove.
11582         * varasm.c (force_const_mem): Use new hooks.
11583         * utils2.c (nonbinary_modular_operation): Update.
11584 objc:
11585         * objc-act.c (handle_impent): Update.
11586         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
11587         Redefine.
11588
11589 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
11590
11591         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
11592         * config/ia64/ia64.c (basereg_operand): New.
11593         * config/ia64/ia64-protos.h (basereg_operand): Declare.
11594         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
11595
11596 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
11597
11598         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
11599         unwind information when frame_pointer_needed.
11600         (mmix_assemble_integer): Tweak wording in comment.
11601
11602 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11603
11604         * Makefile.in (except.o): Update.
11605         * except.c: Include langhooks.h.
11606         (init_eh): Use langhook.
11607         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
11608         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
11609         (LANG_HOOKS_INITIALIZER): Update.
11610         * langhooks.h (lang_hooks_for_types): New.
11611         (struct lang_hooks): Add it.
11612         * tree.c (make_lang_type_fn, make_lang_type): Remove.
11613         * tree.h (make_lang_type_fn, make_lang_type): Remove.
11614 config:
11615         * alpha/alpha.c: Include langhooks.h.
11616         (alpha_build_va_list): Use langhook.
11617         * d30v/d30v.c: Include langhooks.h.
11618         (d30v_build_va_list): Use langhook.
11619         * i386/i386.c: Include langhooks.h.
11620         (ix86_build_va_list): Use langhook.
11621         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
11622         * s390/s390.c: Include langhooks.h.
11623         (s390_build_va_list): Use langhook.
11624         * stormy16/stormy16.c: Include langhooks.h.
11625         (stormy16_build_va_list): Use langhook.
11626
11627 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
11628
11629         PR c++/5964
11630         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
11631         attributes.
11632         (length): Compute variable length for branches/calls/jumps here.
11633         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
11634         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
11635         define branch_type attribute.
11636         (divsi3_sp32): Maximum length is 6 not 7.
11637         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
11638         call_address_untyped_struct_value_sp32,
11639         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
11640         * config/sparc/sparc.c (empty_delay_slot): New function.
11641         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
11642         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
11643
11644 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
11645
11646         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
11647         nonzero_bits if not needed.
11648         (nonzero_bits) [XOR]: Likewise.
11649         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
11650         reg_last_set_mode and mode are both MODE_INT, but not equal.
11651         (record_value_for_reg): Compute reg_last_set_nonzero_bits
11652         in nonzero_bits_mode for MODE_INT modes.
11653
11654 2002-03-28  Richard Henderson  <rth@redhat.com>
11655
11656         PR target/5715
11657         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
11658         to GAS.  Correct drift between alternatives.
11659
11660 2002-03-28  Richard Henderson  <rth@redhat.com>
11661
11662         PR target/6087
11663         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
11664
11665 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
11666
11667         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
11668         emulation to the linker.
11669
11670 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
11671
11672         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
11673         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
11674
11675 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
11676
11677         * combine.c (simplify_and_const_int): Make sure to apply mask
11678         when force_to_mode returns a constant integer.  PR3311.
11679
11680 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11681
11682         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
11683
11684 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11685
11686         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
11687         and Objective-C Dialect Options.
11688
11689 2002-03-28  Richard Henderson  <rth@redhat.com>
11690
11691         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
11692         comparison should be done vs !=0 not >0 return code.  Tidy cases.
11693
11694 2002-03-28  Richard Henderson  <rth@redhat.com>
11695
11696         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
11697         on to c_expand_body.
11698         * c-tree.h (finish_function): Update decl.
11699         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
11700
11701 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
11702
11703         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
11704
11705 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
11706
11707         * rtlanal.c: Include flags.h
11708         (may_trap_p): Do not mark FP operations if trapping
11709         if !flag_trapping_math
11710         * Makefile.in (rtlanal.o): Add dependency on flag.h
11711         * ifcvt.c (noce_operand_ok): Avoid the lameness.
11712
11713 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
11714
11715         * mips.md: Use dconst1, not 1.0, as first argument of
11716         REAL_VALUE_LDEXP.  Don't use union real_extract.
11717
11718 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
11719
11720         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
11721         rather than $target.  Heed program_prefix and
11722         program_transform_name.  Search for gas in cross-compiler case too.
11723         "test -x" rather than "test -f".
11724         (gcc_cv_ld): Likewise.
11725         (gcc_cv_nm): Heed program_prefix and program_transform_name.
11726         (gcc_cv_objdump): Likewise.
11727         * configure: Regenerate.
11728
11729 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11730
11731         * Makefile.in (attribs.o): Update.
11732         * attribs.c: Include langhooks.h.
11733         (decl_attributes): Use langhook.
11734         * c-decl.c (insert_default_attributes): Rename.
11735         * c-tree.h (c_insert_default_attributes): New.
11736         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
11737         (LANG_HOOKS_INITIALIZER): Update.
11738         * langhooks.h (struct lang_hooks): New hook.
11739         * tree.h (insert_default_attributes): Remove.
11740 objc:
11741         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
11742
11743 2002-03-27  Andreas Schwab  <schwab@suse.de>
11744
11745         * config/i386/i386.c (classify_argument): Also check for
11746         QUAL_UNION_TYPE.
11747
11748 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11749
11750         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
11751         any more.
11752
11753 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11754
11755         * i960.md (ret): Set PC.
11756         (nonlocal_goto): Fix expander.
11757         * builtins.c (epxand_builin_longjmp): Check that we've emitted
11758         some jump or call.
11759
11760 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11761
11762         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
11763         of libcall regions.
11764
11765 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11766
11767         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
11768         assigning to BLOCK_FOR_INSN directly.
11769
11770 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
11771
11772         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
11773
11774 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11775
11776         * c-common.c (c_expand_expr): Fix prototype.
11777         * c-common.h (c_expand_expr): Always declare, update.
11778         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11779         * c-objc-common.c (c_objc_common_init): No global hook.
11780         * expr.c (expand_expr): Use langhook.
11781         * expr.h (enum expand_modifier): Conditionally declare.
11782         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
11783         (LANG_HOOKS_INITIALIZER): Update.
11784         * langhooks.c (lhd_expand_expr): New.
11785         * langhooks.h (struct lang_hooks): New hook.
11786         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
11787         (lang_independent_init): Don't default hook.
11788 objc:
11789         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11790
11791 2002-03-27  Richard Henderson  <rth@redhat.com>
11792
11793         PR target/6054
11794         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
11795         TARGET_CONST_GP.  Simplify conditions.
11796
11797 2002-03-27  Richard Henderson  <rth@redhat.com>
11798
11799         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
11800         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
11801         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
11802
11803 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
11804
11805         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
11806         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
11807         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
11808         Remove unnecessary masks.
11809         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
11810         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
11811         -mwindows, -mdll switches and their negations.
11812
11813 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11814
11815         * gcc-common.c (lang_mark_false_label_stack): Remove.
11816         * ggc.h (lang_mark_false_label_stack): Similarly.
11817
11818 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11819
11820         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
11821
11822         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
11823         or __rtems_ is defined.
11824
11825 2002-03-26  Richard Henderson  <rth@redhat.com>
11826
11827         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
11828         if a non-trivial load was emitted.
11829         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
11830         in high+extra+low case.
11831
11832 2002-03-26  Richard Henderson  <rth@redhat.com>
11833
11834         * config.gcc (sparc*-solaris): Use float_format=sparc.
11835
11836 2002-03-26  Richard Henderson  <rth@redhat.com>
11837
11838         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11839         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
11840         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
11841         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
11842         (WINT_TYPE_SIZE): Fix at 32.
11843
11844 2002-03-26  Richard Henderson  <rth@redhat.com>
11845
11846         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
11847         until after eh landing pad generation.
11848         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
11849         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
11850
11851 2002-03-26  Richard Henderson  <rth@redhat.com>
11852
11853         * expr.h (ADD_PARM_SIZE): One more convert for INC.
11854
11855 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
11856
11857         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
11858         and warning switches.
11859         (cc1_options):  Likewise.
11860
11861 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
11862
11863         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
11864         Restore more of the signal context.  Set no_reg_stack_frame.
11865         * config/ia64/unwind-ia64.c (unw_state_record):
11866         Add no_reg_stack_frame, comments.
11867         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
11868         (uw_update_context): Adjust bsp when unwinding from leaf,
11869         but not signal frame.
11870
11871 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
11872
11873         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
11874
11875 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11876
11877         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
11878
11879 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11880
11881         PR target/5621
11882         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
11883         "Add a pool_range attribute", which was lost during the ARM/Thumb
11884         merge.
11885
11886 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11887
11888         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
11889         a register into the MAC16 accumulator.
11890
11891 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
11892
11893         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
11894         (Warning Options): Document -Wswitch-enum.
11895         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
11896         -Wswitch.
11897         (warn_switch_enum): Define variables.
11898         * flags.h (warn_switch_enum): Declare variables.
11899         * stmt.c (expand_end_case_type): When warn_switch_enum /
11900         -Wswitch-enum, perform switch checks.
11901         Fix PR c/5044.
11902
11903 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11904
11905         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
11906         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
11907         (reload_muladdsi_compare0_scratch): Delete.
11908
11909 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
11910
11911         * doc/install.texi (*-*-freebsd*): Update.
11912
11913 2002-03-26  Richard Henderson  <rth@redhat.com>
11914
11915         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
11916         (SUB_PARM_SIZE): Cast DEC to ssizetype.
11917
11918         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
11919         types from the normal argument frame.
11920
11921         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
11922         variable sized objects by reference.
11923         (sparc_va_arg): Receive them by reference too.
11924
11925 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
11926
11927         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
11928         code to not restoring global registers.
11929
11930 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11931
11932         * Makefile.in (ggc-common.o): Update.
11933         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
11934         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11935         * c-tree.h (c_mark_tree): New.
11936         * ggc-common.c: Include langhooks.h.
11937         (gcc_mark_trees): Use new langhook.
11938         * ggc-callbacks.c: Delete file.
11939         * ggc.h (lang_mark_tree): Remove.
11940         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
11941         (LANG_HOOKS_INITIALIZER): Update.
11942         * langhooks.h (struct lang_hooks): New hook.
11943 objc:
11944         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11945
11946 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11947
11948         * doc/cpp.texi: Exclude entire Top node from printed manual.
11949         Move option index after directive index.  Insert page breaks
11950         before GFDL and concept index.  Index environment variables
11951         with command line options.
11952         * doc/cppenv.texi: Use @vtable for environment variable list.
11953         Add paragraph explaining semantics of empty elements in path
11954         variables.  Exclude a cross-reference to Fishkill from the
11955         manpage.  Remove an unnecessary cross-reference of the entry
11956         right above the referer.  Don't use @anchor in text that goes
11957         into manpage.
11958         * doc/cppopts.texi: Cross-reference the environment variables
11959         section, not the specific environment variable, for consistency.
11960
11961 2002-03-25  Richard Henderson  <rth@redhat.com>
11962
11963         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
11964         anywhere in the block.  Don't refer to insns that have been
11965         removed from the chain.  Iterate backward through the new insns.
11966         Don't refer to edges that have been removed.
11967
11968 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
11969
11970         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
11971         test for overflow of constant.
11972
11973 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
11974
11975         PR target/2623
11976         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
11977         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
11978         these patterns on arm_archv4.
11979
11980 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
11981
11982         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
11983         int".
11984
11985 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11986
11987         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
11988         float_handled, float_handler, float_signal, set_float_handler,
11989         and do_float_handler.  Set handler for SIGFPE to crash_signal.
11990         * toplev.h: Don't prototype do_float_handler.
11991
11992         * c-lex.c: Fold parse_float into lex_number.  Make warning
11993         about portability of hex float constants more informative, and
11994         don't issue it on top of a syntax error.
11995         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
11996         their callers.
11997         * real.h: Define REAL_VALUE_ABS here...
11998         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
11999         simplify_unary_real, simplify_binary_real, and
12000         simplify_binary_is2orm1 into their callers.
12001         * tree.c: Fold build_real_from_int_cst_1 into caller.
12002
12003         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
12004
12005         * tsystem.h: Include float.h here...
12006         * libgcc2.c: ... not here.
12007
12008 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
12009
12010         Fixes for: PR bootstrap/3591, target/5676
12011         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
12012         defined.  Do not disable exceptions or rtti.
12013         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
12014         mcore.h.  Disable exceptions and rtti, since they are not
12015         supported by EPOC.
12016
12017 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
12018
12019         * c-decl.c (maybe_build_cleanup): Remove.
12020         * expr.c (expand_expr): Use langhook.
12021         * langhooks-def.h (lhd_return_null_tree,
12022         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
12023         (LANGHOOKS_INITIALIZER): Update.
12024         * langhooks.c (lhd_return_null_tree): New.
12025         * langhooks.h (struct lang_hooks): New hook.
12026         * tree-inline.c (initialize_inlined_parameters): Use langhook.
12027         * tree.h (maybe_build_cleanup): Remove.
12028
12029 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
12030
12031         * regrename.c (build_def_use): Move recog_memoized
12032         before extract_insn.
12033
12034 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
12035
12036         PR target/6043
12037         * expr.c (emit_group_store): Handle storing into CONCAT.
12038
12039 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
12040
12041         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
12042         corresponding MATCH_DUP.
12043
12044 2002-03-24  Richard Henderson  <rth@redhat.com>
12045
12046         * unroll.c (unroll_loop): Zero label_map.
12047
12048         * gcse.c: Include except.h.
12049         * Makefile.in (gcse.o): Update.
12050
12051 2002-03-24  Richard Henderson  <rth@redhat.com>
12052
12053         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
12054         Do resolve_unique_section before shared data clause.
12055
12056 2002-03-24  Richard Henderson  <rth@redhat.com>
12057
12058         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
12059
12060 2002-03-24  Richard Henderson  <rth@redhat.com>
12061
12062         * recog.c (peephole2_optimize): Split blocks when EH insns are
12063         generated in the middle of a block.  Do global life update if
12064         zapped EH edges.
12065
12066 2002-03-24  Richard Henderson  <rth@redhat.com>
12067
12068         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
12069
12070 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12071
12072         preprocessor/3951
12073         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
12074         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
12075         (init_dependency_output): Don't make no_output decision here.
12076
12077 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
12078
12079         * stmt.c (check_for_full_enumeration_handling): Remove tests of
12080         warn_switch.  Update description.
12081         (expand_end_case_type): Call check_for_full_enumeration_handling
12082         when warn_switch.
12083
12084 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12085
12086         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
12087         (m68hc11_split_move): Call it to see if the source and destination
12088         operands use the same direction auto inc/dec mode, otherwise make the
12089         source an offsetable memory operand and generate an add.
12090
12091 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12092
12093         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
12094         register for operand 2.
12095         ("*subsi3_zero_extendqi"): Likewise.
12096         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
12097         bits so that it is compatible with a pop.
12098         ("*andhi3_gen"): Likewise.
12099         ("xorhi3"): Likewise.
12100
12101 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12102
12103         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
12104         -pedantic here...
12105         (cpp_post_options): ... not here.
12106
12107 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12108             Aldy Hernandez  <aldyh@redhat.com>
12109
12110         Removal of separate preprocessor cpp0.
12111
12112         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
12113         cpp0, install-common): Update.
12114         * c-common.c (flag_preprocess_only): New.
12115         (c_common_init): Preprocess for -E.
12116         * c-common.h (flag_preprocess_only): New.
12117         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
12118         * c-objc-common.c (c_init_decl_processing): Exit quickly
12119         for NULL return from c_common_init.
12120         * cpplib.h (cpp_preprocess_file): New.
12121         * cppmain.c (main, general_init, pfile, progname): Remove.
12122         (do_preprocessing): Rename cpp_preprocess_file, don't call
12123         cpp_finish.  Don't close stdout here.
12124         (setup_callbacks): Update prototype.
12125         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
12126         Update.
12127         * tradcpp.c (main): Ignore -quiet.
12128 objc:
12129         * lang-specs.h (default_compilers): Preprocess with cc1obj.
12130
12131 2002-03-24  Richard Henderson  <rth@redhat.com>
12132
12133         PR optimization/5742
12134         * machmode.def: Add inner mode field to complex modes.
12135         * config/mips/mips.c (mips_function_value): Always define.  Add
12136         new argument to handle libcalls.
12137         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
12138         (FUNCTION_VALUE): Likewise.
12139         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
12140         * config/mips/mips-protos.h: Update.
12141
12142 2002-03-23  Richard Henderson  <rth@redhat.com>
12143
12144         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
12145         * config/sparc/sparc-protos.h: Update.
12146         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
12147
12148 2002-03-23  Richard Henderson  <rth@redhat.com>
12149
12150         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
12151         _start or _init begins the text segment.
12152
12153 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
12154
12155         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
12156         not HOST_WIDEST_INT.
12157         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
12158
12159 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
12160
12161         PR java/5489
12162         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
12163         operand argument to output_return_instruction.
12164         * arm.c (arm_print_operand, case 'd'): If the operand is
12165         const_true_rtx then just return.
12166         (arm_print_operand, case 'D'): If the operand is const_true_rtx
12167         then abort.
12168
12169 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
12170
12171         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
12172         (Warning Options): Document -Wswitch-default.
12173         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
12174         -Wswitch.
12175         (warn_switch_default): Define variable.
12176         (warn_switch): Update comment.
12177         * flags.h (warn_switch_default): Declare variable.
12178         (warn_switch): Update comment.
12179         * stmt.c (expand_end_case): Check for and, when
12180         warn_switch_no_default, warn of a missing default case.
12181
12182 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
12183
12184         * real.h (N): Special case 128 bit doubles.
12185
12186         * combine.c (simplify_comparison): When widening modes, ignore
12187         sign extension on CONST_INTs.
12188
12189 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
12190
12191         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
12192         passed to adjust_address.  Fix comment formatting.
12193
12194
12195 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
12196
12197         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
12198         Always make REAL_VALUE_TYPE a struct containing an array of
12199         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
12200         big it is.  Don't declare or use union real_extract.
12201
12202         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
12203         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
12204         (print_operand), config/arm/arm.c (output_move_double),
12205         config/arm/arm.md (consttable_4, consttable_8),
12206         config/romp/romp.c (output_fpops), config/s390/s390.h
12207         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
12208         (xtensa_output_literal): Don't use union real_extract.
12209
12210         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
12211         (sfmode_constant_to_ulong), config/ns32k/merlin.h
12212         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
12213         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
12214         (PRINT_OPERAND): Don't use local version of union
12215         real_extract.
12216
12217         * config/convex/convex.c (check_float_value), config/vax/vax.c
12218         (vax_float_literal), config/m88k/m88k.md (divdf3),
12219         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
12220         config/pdp11/pdp11.c (output_move_quad): Don't do host
12221         arithmetic on target floating point quantities.
12222
12223         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
12224         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
12225
12226         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
12227         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
12228
12229         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
12230         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
12231         INFINITY.
12232         * print-rtl.c (print_rtx): Disable code which needs
12233         floating-point emulator.
12234         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
12235         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
12236         depending on HOST_FLOAT_FORMAT to be defined properly.
12237
12238         * config/1750a/1750a.c (get_double, float_label): Delete.
12239         (print_operand): Delete huge commented-out chunk.  Use
12240         REAL_VALUE_TO_DECIMAL.
12241         * config/1750a/1750a-protos.h: Delete prototypes of deleted
12242         functions.
12243         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
12244         IEEE_FLOAT_FORMAT.
12245         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
12246         Use REAL_VALUE_TO_DECIMAL as ELF version does.
12247         * config/m88k/m88k.c (real_power_of_2_operand,
12248         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
12249         real_extract out of the union; run the input through
12250         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
12251         from that into the union.
12252         * config/pdp11/pdp11.c (output_move_double): Rearrange
12253         parentheses to make automatic indenter happy.
12254
12255         * doc/tm.texi (Cross-compilation): Rename node to "Floating
12256         Point" and rewrite to describe current situation.  Also adjust
12257         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
12258         match code.
12259         * doc/rtl.texi: Adjust cross reference.
12260
12261 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
12262
12263         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
12264         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
12265         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
12266         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
12267         prevent use of sp as a reload register.
12268         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
12269         non_acc_reg_operand.
12270         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
12271         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
12272         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
12273         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
12274
12275 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
12276
12277         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
12278         * cpplex.c (unterminated): Delete.
12279         (parse_string): No string literal may extend over multiple
12280         lines.  Suppress the error when preprocessing assembly.
12281         * cppmain.c (scan_translation_unit): Strings are single-line.
12282
12283         * doc/cpp.texi: Update to match.
12284
12285 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
12286
12287         PR optimization/5854
12288         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
12289         Shut up warnings.
12290         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
12291         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
12292         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
12293         const0 if scratch register was not allocated.
12294         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
12295         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
12296         with GEN_INT (...).
12297         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
12298         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
12299         with GEN_INT (...) everywhere.  Remove constraints in define_split
12300         patterns.
12301         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
12302         require scratch register for setting 0 into regs/non-pushable memory.
12303
12304 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
12305
12306         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
12307         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
12308
12309 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
12310
12311         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
12312         * cppinit.c (cpp_create_reader):  On by default.
12313         (cpp_handle_option):  Handle -W[no-]endif-labels.
12314         (cpp_post_options):  Also enable if -pedantic.
12315         * cpplib.c (do_else):  Use it.
12316         (do_endif):  Likewise.
12317         * doc/cppopts.texi:  Document new option.
12318         * doc/invoke.texi:  Document new option.
12319
12320 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
12321
12322         * config/i386/i386.c, config/i386/i386.md: Change all occurences
12323         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
12324
12325 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
12326
12327         * flow.c (calculate_global_regs_live): Clear aux fields of
12328         ENTRY and EXIT.
12329
12330 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
12331
12332         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
12333         REG or MEM subregs, pass rtx * instead of rtx to it.
12334         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
12335         rtx * instead of rtx to alter_subreg.
12336         * config/m32r/m32r.c (gen_split_move_double): Likewise.
12337         * config/pj/pj.c (pj_output_rval): Likewise.
12338
12339 2002-03-22  Richard Henderson  <rth@redhat.com>
12340
12341         PR target/3177
12342         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
12343         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
12344         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
12345         (ia64_expand_prologue): Look at int_regs, not words, for number
12346         of incomming int regs.
12347
12348 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
12349
12350         * expr.c (expand_expr): A RESULT_DECL is part of a call.
12351
12352 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
12353
12354         * toplev.c (flag_loop_optimize, flag_crossjumping):
12355         New static variables.
12356         (rest_of_compilation): Conditionalize crossjumping and
12357         loop optimizer.
12358         (parse_options_and_default_flags): Default loop_optimize and
12359         crossjumping.
12360         (lang_independent_options): Add -fcrossjumping and -floop-optimize
12361         * invoke.texi (crossjumping, loop-optimize): Document.
12362
12363 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
12364
12365         * real.c (eiisneg): Move outside #ifdef NANS.
12366
12367 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
12368
12369         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
12370         frequencies match; avoid match on different loop depths.
12371         (try_crossjump_to_bb): Kill tests that no longer brings time
12372         savings.
12373         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
12374         updating code.
12375         (split_edge): Likewise.
12376
12377         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
12378         variable.
12379
12380         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
12381         * cfgrtl.c: Include insn-config.h
12382         (split_block) Dirtify block in presence of conditional execution
12383
12384 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
12385
12386         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
12387         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
12388         (function_arg): Constify CUMULATIVE_ARGS.
12389         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
12390         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
12391         (UNITS_PER_DOUBLE): New macro.
12392         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
12393         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
12394         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
12395         fp_regs and stack_words.
12396         (EABI_FLOAT_VARARGS_P): New macro.
12397         * config/mips/mips.c (struct mips_arg_info): New.
12398         (mips_arg_info): New function.
12399         (function_arg_advance): Use it.  Add adjustment instructions here
12400         rather than in function_arg.
12401         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
12402         for VOIDmode at the beginning of the function.
12403         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
12404         (function_arg_pass_by_reference): Likewise.
12405         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
12406         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
12407         (mips_va_start): Likewise.  Use the new stack_words field of
12408         CUMULATIVE_ARGS to set up overflow area.  Reformat.
12409         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
12410         doubles and other types, aligning the overflow pointer for non-doubles
12411         too.  Remove some code duplication.  Replace hard-coded constants.
12412
12413 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
12414
12415         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
12416         (CLASS_UNITS): Undefine.
12417         (CLASS_MAX_NREGS): Use FP_INC.
12418         * config/mips/mips.c (compute_frame_size): Likewise.
12419         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
12420
12421 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
12422
12423         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
12424         prototype, and handle lexing numbers and identifiers.
12425         (parse_identifier): Update to new form of parse_slow.
12426         (parse_number): Fast path only, use parse_slow otherwise.
12427         (_cpp_lex_direct): Update calls to parse_number.
12428
12429 2002-03-21  DJ Delorie  <dj@redhat.com>
12430
12431         * bb-reorder.c (make_reorder_chain_1): Protect against
12432         when redundant edges are omitted.
12433         * predict.c (dump_prediction): Likewise.
12434
12435 2002-03-21  Richard Henderson  <rth@redhat.com>
12436
12437         PR target/5996
12438         * fixinc/inclhack.def (solaris_stdio_tag): New.
12439         * fixinc/fixincl.x: Regenerate.
12440
12441 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
12442
12443         PR c/5597
12444         * c-typeck.c (process_init_element): Flag non-static
12445         initialization of a flexible array member as illegal.
12446
12447 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
12448
12449         * config/rs6000/t-linux64: New.
12450         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
12451         t-ppccomm.  Use t-rs6000 and t-linux64.
12452         (powerpc64-*-gnu* <tmake_file>): Likewise.
12453         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
12454         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
12455         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
12456
12457 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
12458
12459         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
12460         flag_really_no_inline instead of optimize == 0.
12461
12462         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
12463
12464         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
12465
12466         * flags.h (flag_really_no_inline): New.
12467
12468         * c-common.c (c_common_post_options): Initialize
12469         flag_really_no_inline.
12470
12471         * toplev.c (flag_really_no_inline): New.
12472
12473 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
12474
12475         * config/avr/avr.md (length): Fix length computation for
12476         conditional branches.
12477
12478 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
12479
12480         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
12481         sdbout.o, profile.o): Update.
12482         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
12483         langhook.
12484         * c-common.h (gettags): Move here from tree.h.
12485         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
12486         insert_block, getdecls, kept_level_p, global_bindings_p): New.
12487         * dbxout.c (dbxout_init): Use getdecls langhook.
12488         * expr.c (expand_expr): Use insert_block langhook.
12489         * fold-const.c: Include langhooks.h.
12490         (fold_range_test, fold_binary_op_with_conditional_arg,
12491         fold): Use global_bindings_p langhook.
12492         * integrate.c (expand_inline_function): Use insert_block langhook.
12493         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
12494         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
12495         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
12496         LANG_HOOKS_GETDECLS): New.
12497         (LANG_HOOKS_INITIALIZER): Update.
12498         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
12499         langhook.
12500         * langhooks.h (struct lang_hooks_for_decls): New.
12501         (struct lang_hooks): Update.
12502         * profile.c: Include langhooks.h.
12503         (output_func_start_profiler): Use new langhooks.
12504         * sdbout.c: Include langhooks.h.
12505         (sdbout_init, sdbout_finish): Use getdecls langhook.
12506         * stmt.c: Include langhooks.h.
12507         (expand_fixup, fixup_gotos): Use new langhooks.
12508         * stor-layout.c: Include langhooks.h.
12509         (variable_size): Use global_bindings_p langhook.
12510         * toplev.c (compile_file): Use getdecls langhook.
12511         * tree-inline.c (remap_block): Use insert_block langhook.
12512         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
12513         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
12514
12515 2002-03-21  Richard Henderson  <rth@redhat.com>
12516
12517         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
12518         constants in .data when -fpic.
12519
12520 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12521
12522         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
12523         where appropriate.
12524
12525 2002-03-21  Tom Tromey  <tromey@redhat.com>
12526
12527         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
12528
12529 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12530
12531         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
12532
12533         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
12534
12535 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
12536             Richard Henderson  <rth@redhat.com>
12537
12538         PR c/5354
12539         * c-common.c (c_expand_expr): Preserve result of a statement
12540         expression if needed.
12541
12542 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
12543
12544         PR bootstrap/4195
12545         * genrecog.c (maybe_both_true_mode): Remove.
12546         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
12547         * machmode.def (Pmode): Likewise.
12548
12549 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
12550
12551         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
12552         (nonlocal_mentioned_p_1): New function.
12553         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
12554         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
12555         (mark_constant_function): Recognize pure functions.
12556         * rtl.h (global_reg_mentioned_p): New prototype.
12557         * rtlanal.c (global_reg_mentioned_p,
12558         global_reg_mentioned_p_1): New function.
12559
12560 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12561
12562         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
12563         UNIX assert.h.
12564         * fixinc/fixincl.x: Regenerate.
12565
12566 2002-03-20  Jason Merrill  <jason@redhat.com>
12567
12568         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
12569
12570 2002-03-20  Michael Meissner  <meissner@redhat.com>
12571
12572         * doc/invoke.texi (Optimize Options): Document that -O2 sets
12573         -fstrict-aliasing.
12574
12575 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
12576
12577         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
12578         ".literal_position" directive before the constant pool.
12579
12580 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12581
12582         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
12583         Add Craig Rodrigues.
12584         Add Brad Lucier to testers.
12585
12586 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12587
12588         PR target/4792
12589         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
12590         to if_then_else.
12591         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
12592         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
12593         instead of insn_extract.
12594
12595 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12596
12597         PR bootstrap/4192
12598         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
12599
12600         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
12601         stmt if some case has been output.
12602
12603 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12604
12605         PR c/5972
12606         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
12607         movsfcc_1, movdfcc_1): Add %O2.
12608         * config/i386/i386.c (print_operand): Handle %ON.
12609         Print . before float condition codes in Sun as cmov syntax.
12610         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
12611         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
12612         no longer true.
12613
12614 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
12615
12616         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
12617         return instruction if PC was popped.
12618
12619 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
12620
12621         * config/xtensa/xtensa.md: Remove unused type attributes.
12622         (adddi_carry, subddi_carry): Change type attribute to "multi".
12623
12624 2002-03-19  Dale Johannesen  <dalej@apple.com>
12625
12626         PR optimization/5999, middle-end/5731
12627         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
12628         multiplications by reciprocals.
12629
12630 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
12631
12632         * Makefile.in: Update.
12633         * c-common.c: Include langhooks.h.
12634         (inline_forbidden_p): Use new hook.
12635         * diagnostic.c: Include langhooks.h.
12636         (format_with_decl, announce_function,
12637         default_print_error_function): Use new hook.
12638         * dwarf2out.c (dwarf2_name): Use new hook.
12639         * function.c: Include langhooks.h.
12640         (init_function_start): Use new hook.
12641         * langhooks-def.h (lhd_decl_printable_name): New.
12642         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
12643         (LANGHOOKS_INITIALIZER): Update.
12644         * langhooks.c (lhd_decl_printable_name): New.
12645         * langhooks.h (struct lang_hooks): New hook.
12646         * toplev.c (decl_name, decl_printable_name): Remove.
12647         (open_dump_file): Use new hook.
12648         (process_options): Remove old hook.
12649         * tree.h (decl_printable_name): Remove.
12650 objc:
12651         * objc-act.c (objc_init): Remove old hook.
12652         (objc_printable_name): Export.
12653         * objc-act.h (objc_printable_name): New.
12654         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
12655
12656 2002-03-19  Jim Blandy  <jimb@redhat.com>
12657
12658         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
12659         the start_source_file debug hook, not the current line number.
12660
12661 2002-03-19  Richard Henderson  <rth@redhat.com>
12662
12663         * flow.c (EH_USES): Provide default.
12664         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
12665         * doc/tm.texi (EH_USES): New.
12666
12667         * config/ia64/ia64.c (ia64_eh_uses): New.
12668         * config/ia64/ia64-protos.h: Update.
12669         * config/ia64/ia64.h (EH_USES): New.
12670
12671 2002-03-19  Richard Henderson  <rth@redhat.com>
12672
12673         * varasm.c (output_constant_def): Fix stupid typo.
12674
12675 2002-03-19  Richard Henderson  <rth@redhat.com>
12676
12677         PR 5879
12678         * except.c (current_function_has_exception_handlers): New.
12679         * except.h: Declare it.
12680         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
12681         Combine tests that disable all sibcalls for the function.
12682
12683 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
12684
12685         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
12686         for INTEGER_CST.
12687
12688 2002-03-19  Richard Henderson  <rth@redhat.com>
12689
12690         PR 5977, 5991
12691         * config/ia64/ia64.c: Revert 2002-03-01 patch.
12692         * config/ia64/ia64.h (INIT_EXPANDERS): New.
12693
12694 2002-03-19  Jim Blandy  <jimb@redhat.com>
12695
12696         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
12697         name, even if the replacement list contains no tokens, as required
12698         by Dwarf.
12699
12700 2002-03-19  Jason Merrill  <jason@redhat.com>
12701
12702         * varasm.c (globalize_decl): Get the name from the RTL, not
12703         DECL_ASSEMBLER_NAME.
12704
12705         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
12706
12707 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
12708
12709         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
12710         subdi_carry): Define.
12711
12712 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
12713
12714         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
12715         about -fpic/-fPIC if extra_warnings set.
12716
12717 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
12718
12719         * expr.c (expand_expr): Sign-extend CONST_INT generated from
12720         TREE_STRING_POINTER.
12721         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
12722
12723 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12724
12725         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
12726         in favor of SP if FRAME_POINTER_REQUIRED is false.
12727
12728 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
12729
12730         * emit-rtl.c (gen_int_mode): New function.
12731         * rtl.h: Prototype for it.
12732         * combine.c (make_extraction, simplify_comparison), expmed.c
12733         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
12734         (convert_modes, store_field), optabs.c (expand_fix),
12735         simplify-rtx.c (neg_const_int, simplify_unary_real),
12736
12737         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
12738         Use it instead of GEN_INT (trunc_int_for_mode (...)).
12739
12740 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
12741
12742         PR c/5656
12743         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
12744         convert_parm_for_inlining.
12745         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
12746         Define.
12747         * langhooks-def.h: Likewise.
12748         * objc/objc-lang.c: Likewise.
12749         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
12750         function.
12751         * tree-inline.c (initialize_inlined_parameters):
12752         Call convert_parm_for_inlining lang hook if needed.
12753         * c-typeck.c (c_convert_parm_for_inlining): New function.
12754         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
12755
12756 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
12757
12758         * calls.c (precompute_arguments): Do not assume that temporaries
12759         can be destroyed after expanding the argument.
12760         (expand_call): Likewise.
12761
12762 2002-03-15  Eric Christopher  <echristo@redhat.com>
12763
12764         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
12765         Fix register preference on last change.
12766         * config/mips/mips.c (mips_return_in_memory): New function.
12767         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
12768         * config/mips/mips-protos.h: Declare.
12769         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
12770         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
12771
12772 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
12773
12774         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
12775         a register too.
12776         (anddi3, iorsi3): Likewise.
12777
12778         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
12779         use %gprel for symbols that are going to be placed in linkonce
12780         sections.
12781
12782         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
12783         RETURN_ADDRESS_POINTER_REGNUM to $ra.
12784         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
12785         not needed.  Disregard leaf_function_p().
12786         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
12787         mips16 frame pointer.
12788         * config/mips/mips.md (store ra): Only to small SP offsets.
12789         2001-08-22  Graham Stott  <grahams@redhat.com>
12790         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
12791         return a REG rtx for the return address register.
12792
12793 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
12794
12795         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
12796         constant-pool addresses as "mode-dependent".
12797         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
12798
12799 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
12800
12801         PR target/5740
12802         * expr.c (emit_group_load): Use extract_bit_field if
12803         needed for CONCAT arguments.
12804
12805 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
12806
12807         PR target/4863
12808         * arm.md (tablejump): Make this a define_expand.  For PIC add the
12809         offset to the base of the table.
12810         (thumb_tablejump): Matcher for Thumb tablejump insn.
12811         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
12812         as the difference of two labels.
12813         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12814         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
12815         tables in the code.
12816         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
12817         * arm.c (get_jump_table_size): If the table is not in the text
12818         section, return zero.
12819
12820 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
12821
12822         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
12823         of gen_rtx_SUBREG.
12824         (arm_reload_out_hi): Use gen_lowpart instead of
12825         gen_rtx_SUBREG to access QImode components.
12826         * config/arm/arm.md: Disable zero_extend split for QImode
12827         subregs in BIG_ENDIAN mode.
12828         (storehi_bigend): Match use of least significant byte.
12829         (storeinthi): Remove extraneous SUBREG.
12830         Add missing construction of operands[2].
12831         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
12832         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
12833         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
12834
12835 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
12836
12837         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
12838         any_operand.
12839
12840 2002-03-17  Richard Henderson  <rth@redhat.com>
12841
12842         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
12843         explicitly.
12844
12845 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12846
12847         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
12848         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
12849
12850 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12851
12852         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
12853
12854         * predict.c (estimate_bb_frequencies): Delete unused variables.
12855
12856 2002-03-17  Richard Henderson  <rth@redhat.com>
12857
12858         * config/ia64/ia64.c (ia64_attribute_table): Move before
12859         targetm definition.  Make static.
12860
12861 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12862
12863         * c-common.h (yyparse, c_common_parse_file): New.
12864         * c-lang.c: Include c-common.h.
12865         (LANG_HOOKS_PARSE_FILE): Redefine.
12866         * c-lex.c: Include c-common.h.
12867         (yyparse): Rename c_common_parse_file.  Call yyparse.
12868         * c-parse.in (yyparse): Remove macro.
12869         * c-tree.h (yyparse_1): Remove.
12870         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
12871         (LANG_HOOKS_INITIALIZER): Update.
12872         * langhooks.h (struct lang_hoooks): New hook parse_file.
12873         * toplev.c (compile_file): Use parse_file hook.
12874         * tree.h (yyparse): Remove.
12875         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
12876
12877 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12878
12879         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
12880         float_truncate, not fix.
12881         ("*truncdfsf2_real"): Ditto.
12882         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
12883
12884         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
12885
12886 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
12887
12888         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
12889         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
12890         where appropriate.  Make the second reference to
12891         leaf_function_p a function call, as intended.  Reindented.
12892
12893         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
12894         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
12895
12896         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
12897         add register to non-constant into sp.
12898
12899         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
12900         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
12901         (mips16_gp_pseudo_rtx): Lose.
12902         (INIT_EXPANDERS): Deleted.
12903         * config/mips/mips.c (mips_init_machine_status): New.
12904         (mips_free_machine_status): New.
12905         (mips_mark_machine_status): New.
12906         (override_options): Set them.
12907         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
12908         (struct machine_function): ... new.  Replaced all references.
12909         (mips_add_gc_roots): Don't mark them.
12910         (embedded_pic_fnaddr_reg): New, extracted from...
12911         (embedded_pic_offset): ... here.
12912         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
12913         (movsi): Likewise.
12914
12915 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12916
12917         * cppinit.c: Revert -MD removal.
12918
12919 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12920
12921         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
12922         soft registers by default for 68HC12.
12923         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
12924         when compiling with -fomit-frame-pointer.
12925         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
12926         (expand_epilogue): Likewise.
12927         (m68hc11_gen_rotate): Use exg when rotating by 8.
12928
12929 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12930
12931         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
12932         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
12933         (splits): Remove unused add splits.
12934         ("*addhi3_68hc12"): Tune constraints.
12935         ("addhi_sp"): Try to use X instead of Y in all cases and if the
12936         constant fits in 8-bits and D is dead use abx/aby instructions.
12937         ("*addhi3"): Remove extern declaration of ix_reg.
12938         ("*subsi3"): Optimize and provide new split.
12939         ("subhi3"): Cleanup.
12940         ("*subhi3_sp"): Avoid saving X if we know it is dead.
12941         (arith splits): For 68hc12 save the address register on the stack
12942         and do the arithmetic operation with a pop.
12943
12944 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12945
12946         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
12947         allocating QImode in address registers.
12948         ("*movqi_m68hc11"): Likewise.
12949
12950 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
12951
12952         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
12953
12954 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12955
12956         * cppinit.c (print_help): Display -MD and -MMD.
12957         Don't display usage string.  Update assertion syntax and
12958         typo.
12959         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
12960         (cpp_handle_option): Update.
12961
12962 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
12963
12964         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
12965         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
12966         and define it so that regardless of target CPU size,
12967         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
12968         of "int" rather than "long."
12969
12970 2002-03-15  Richard Henderson  <rth@redhat.com>
12971
12972         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
12973         size as a tree.
12974
12975 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12976
12977         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
12978         ("tstqi" split): Avoid using memory for tstqi on address register.
12979         (splits): Remove constraints.
12980         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
12981         ("cmpdf", "cmpsf"): Remove since not used.
12982         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
12983         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
12984
12985 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12986
12987         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
12988         ("neghi2"): Tighten constraints.
12989         ("one_cmplsi2"): Optimize and simplify split.
12990         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
12991
12992 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12993
12994         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
12995         and split of AND operation to clear the upper bits.
12996         ("*logicalsi3_zextqi"): Likewise.
12997         ("*logicallhi3_zexthi_ashift8"): Likewise.
12998         ("*logicalsi3_silshr16"): Likewise.
12999         ("logicalsi3_silshl16"): Likewise.
13000         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
13001
13002 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13003
13004         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
13005         (m68hc11_indirect_p): New function.
13006         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
13007         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
13008         TARGET_M6812.
13009         (asm_print_register): Likewise.
13010         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
13011         (m68hc11_indirect_p): Declare.
13012         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
13013         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
13014         (TARGET_SWITCHES): New option -mrelax.
13015         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
13016         destination.
13017         ("iorsi3", "xorsi3"): Likewise.
13018         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
13019         ("*andhi3_mem"): New to handle destination in memory with bclr
13020         and a scratch register.
13021         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
13022         ("*andhi3_const"): New when operand2 is constant.
13023         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
13024         ("*andhi3_gen"): Cleanup of the old "andhi3".
13025         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
13026         ("xorqi3"): Update constraints.
13027
13028 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13029
13030         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
13031         for reg_equiv_memory_loc when the operand is a register that does
13032         not get a hard register (stack location).
13033         (tst_operand): After reload, accept all memory operand.
13034         (symbolic_memory_operand): Fix detection of symbolic references.
13035         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
13036         accept symbols and any constant.
13037
13038 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13039
13040         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
13041         note on the insn that sets the soft frame register.
13042         (must_parenthesize): ix and iy are also reserved names.
13043         (print_operand_address): One more place where parenthesis are required
13044         to avoid confusion with register names.
13045         (m68hc11_gen_movhi): Allow push of stack pointer.
13046         (m68hc11_check_z_replacement): Fix handling of parallel with a
13047         clobber.
13048         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
13049         the replacement register is.
13050         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
13051         and D8_REGS classes.
13052         (MODES_TIEABLE_P): All modes are tieable except QImode.
13053
13054 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13055
13056         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
13057         (___subdi3): Likewise.
13058         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
13059         (__map_data_section): Optimize 68hc11 case.
13060
13061 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13062
13063         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
13064         than a shift to avoid adding a register with itself.
13065         (m68hc11_memory_move_cost): Take into account NO_REGS.
13066         (m68hc11_register_move_cost): Update and use memory move cost
13067         for soft registers.
13068         (m68hc11_address_cost): Make cost of valid offset not 0 so that
13069         it gives more opportunities to cse to optimize.
13070         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
13071         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
13072
13073 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
13074
13075         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
13076         * c-common.def (CLEANUP_STMT): New tree node.
13077         * c-common.h (CLEANUP_DECL): New macro.
13078         (CLEANUP_EXPR): Likewise.
13079         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
13080         * expr.c (expand_expr): Tidy.
13081         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
13082         * tree-inline.c (initialize_inlined_parameters): Clean up
13083         new local variables.
13084
13085 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
13086
13087         PR bootstrap/4128
13088         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
13089         before movrXX only, use reg_overlap_mentioned_p.
13090         Only special case NE if just one insn can be generated.
13091
13092 2002-03-15  Jason Merrill  <jason@redhat.com>
13093
13094         * varasm.c (assemble_variable): Call resolve_unique_section before
13095         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
13096         of error_mark_node.
13097
13098 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
13099
13100         PR target/5170
13101         * arm.md (split pattern for thumb shiftable immediates): Add comment
13102         explaining non-obvious test.
13103
13104 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
13105
13106         PR target/5712
13107         * arm.md (movaddr, movaddr_insn): Delete.
13108
13109 2002-03-15  Jason Merrill  <jason@redhat.com>
13110
13111         * toplev.c (wrapup_global_declarations): Clarify variable handling.
13112         -fkeep-static-consts doesn't apply to comdats.
13113
13114 2002-03-14  Richard Henderson  <rth@redhat.com>
13115
13116         * c-decl.c: Include c-pragma.h.
13117         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
13118         (finish_function): Tidy.
13119         * c-pragma.c: Include c-common.h.
13120         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
13121         (handle_pragma_weak): Use them.
13122         (init_pragma): Register pending_weaks.
13123         * c-pragma.h (maybe_apply_pragma_weak): Declare.
13124         * print-tree.c (print_node): Print DECL_WEAK.
13125         * varasm.c (mark_weak_decls): Remove.
13126         (remove_from_pending_weak_list): Remove.
13127         (add_weak): Remove.
13128         (asm_emit_uninitialised): Call globalize_decl for weak commons.
13129         (weak_decls): Make a tree_list.
13130         (declare_weak): Cons weak_decls directly.
13131         (globalize_decl): Remove weak_decls elements directly.
13132         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
13133         symbols.  Don't pretend to handle aliases.
13134         (init_varasm_once): Update weak_decls registry.
13135         * Makefile.in: Update dependencies.
13136
13137 2002-03-14  Richard Henderson  <rth@redhat.com>
13138
13139         PR target/5312
13140         * config/ia64/ia64.c: Include tm_p.h last.
13141         (gen_nop_type): Remove duplicate definition.
13142         (cycle_end_fill_slots): Set sched_data for second L slot.
13143         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
13144         (nop_cycles_until): Fix typos.
13145
13146 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
13147
13148         PR optimization/5891
13149         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
13150
13151 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
13152
13153         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
13154           descriptors correctly.
13155
13156 2002-03-14  Michael Meissner  <meissner@redhat.com>
13157
13158         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
13159         100, allowing MAX_UNROLLED_INSNS to be overridden.
13160
13161         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
13162         --param.
13163
13164         * unroll.c (params.h): Include.
13165         (MAX_UNROLLED_INSNS): Delete, now in params.h.
13166
13167         * doc/invoke.texi (--param max-unroll-insns): Document.
13168
13169         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
13170
13171 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
13172
13173         * arm.md: Fix warnings about constraints in peepholes and splits.
13174
13175 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
13176
13177         * cpphash.h (struct lexer_state): Remove line_extension member.
13178         * cpplib.c (dequote_string, do_linemarker): New functions.
13179         (linemarker_dir): New data object.
13180         (DIRECTIVE_TABLE): No longer need to interpret #line in
13181         preprocessed source.  Delete obsolete comment about return
13182         values of handlers.
13183         (end_directive, directive_diagnostics, _cpp_handle_directive):
13184         Don't muck with line_extension.
13185         (directive_diagnostics): No need to issue warnings for
13186         linemarkers here.
13187         (_cpp_handle_directive): Issue warnings for linemarkers here,
13188         when appropriate.  Dispatch linemarkers to do_linemarker, not
13189         do_line.
13190         (do_line): Code to handle linemarkers split out to do_linemarker.
13191         Convert escape sequences in filename argument, both places.
13192
13193         * cppmacro.c (quote_string): Rename cpp_quote_string and
13194         export.  All callers changed.
13195         * cpplib.h (cpp_quote_string): Prototype.
13196         * cppmain.c (print_line): Call cpp_quote_string on to_file
13197         before printing it.
13198
13199         * doc/cpp.texi: Document that escapes are now interpreted in
13200         #line and in linemarkers, and that non-printing characters are
13201         converted to octal escapes when linemarkers are generated.
13202
13203 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
13204
13205         * emit-rtl.c (try_split): Use delete_insns.
13206         * recog.c (split_all_insns): Fix terminating condition.
13207
13208 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
13209             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
13210
13211         PR target/5828
13212         * arm.c (arm_output_epilogue): Fix floating-point register save
13213         adjustment when using a frame pointer.
13214
13215 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
13216
13217         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
13218         * config/mips/mips.c (compute_frame_size): Retrofit them here.
13219         (save_restore_insns, mips_expand_epilogue): And here.
13220         (build_mips16_call_stub): And here.
13221         (mips_function_value): Use the new macros to decide whether a single
13222         or complex float can be returned in floating-point registers.  Return
13223         a parallel rtx in the complex case.
13224
13225 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
13226
13227         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
13228         call after liveness analysis.
13229
13230         * recog.c (split_insn): Use delete_insn_and_edges.
13231
13232         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
13233         instructions to have branch prediction notes.
13234         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
13235
13236 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
13237
13238         * configure.in: Don't pass -Wno-long-long to a ADA compiler
13239         that doesn't support it.
13240         * configure: Regenerate.
13241
13242 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
13243
13244         PR target/5626
13245         * config/sparc/sparc.md (normal_branch, inverted_branch,
13246         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
13247         inverted_fp_branch): Adjust calls to output_cbranch.
13248         Set length attribute.
13249         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
13250         output_v9branch.  Set length attribute.
13251         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
13252         predicates.
13253         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
13254         (output_cbranch): Likewise.  Handle far branches.
13255         (output_v9branch): Handle far branches.
13256         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
13257         Adjust prototypes.
13258         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
13259         noov_compare64_op predicates.
13260
13261 2002-03-13  Jason Merrill  <jason@redhat.com>
13262
13263         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
13264         into the function and constify it.
13265         * gthr-dce.h, gthr-solaris.h: Likewise.
13266
13267 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
13268
13269         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
13270         * config/rs6000/rs6000.c (rs6000_va_arg): Use
13271         std_expand_builtin_va_arg if not ABI_V4.
13272
13273 2002-03-13  Jason Merrill  <jason@redhat.com>
13274
13275         * varasm.c (globalize_decl): New fn.
13276         (assemble_start_function): Use it.
13277         (asm_emit_uninitialized): Use it.
13278         (assemble_alias): Use it.
13279         (assemble_variable): Use it.
13280
13281 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
13282
13283         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
13284         2002-03-12 internal visibility change.
13285         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
13286         visibility into SYMBOL_REF_FLAG.
13287
13288 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
13289
13290         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
13291         VOIDmode operand.  Add compile-time optimization for constant results.
13292
13293 2002-03-12  Jason Merrill  <jason@redhat.com>
13294
13295         * c-typeck.c (convert_for_assignment): Don't allow conversions
13296         between pointers and references.  Only allow lvalues to convert to
13297         reference.
13298
13299 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
13300
13301         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
13302         before prologue, to avoid scheduling problems.
13303
13304 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
13305
13306         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
13307         (ELIMINABLE_REGS): Add sfp->sp.
13308         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
13309
13310 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
13311
13312         PR optimization/5892
13313         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
13314
13315 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
13316
13317         * loop.c (basic_induction_var): Don't call convert_modes if mode
13318         classes are different.
13319
13320 2002-03-12  Richard Henderson  <rth@redhat.com>
13321
13322         PR optimization/5901
13323         * function.c (reposition_prologue_and_epilogue_notes): Position
13324         the markers after/before the last/first insn not deleted.
13325
13326 2002-03-12  Richard Henderson  <rth@redhat.com>
13327
13328         PR optimization/5878
13329         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
13330         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
13331         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
13332
13333         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
13334         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
13335         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
13336
13337         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
13338         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
13339         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
13340         also.  Don't set it if not flag_pic.
13341         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
13342         to be INVALID_REGNUM when not used.
13343
13344 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
13345
13346         * expmed.c (store_bit_field): Reset alias set for memory.
13347         (extract_bit_field): Same.
13348
13349 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13350
13351         * c-common.c (c_tree_code_type, c_tree_code_length,
13352         c_tree_code_name, add_c_tree_codes): Delete.
13353         * c-common.h (add_c_tree_codes): Delete.
13354         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
13355         Define.
13356         * c-objc-common.c (c_objc_common_init): Don't call
13357         add_c_tree_codes, instead set lang_unsafe_for_reeval.
13358         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
13359         objc_tree_code_name, add_objc_tree_codes): Delete.
13360         (objc_init): Don't call add_objc_tree_codes.
13361         * objc/objc-lang.c (tree_code_type, tree_code_length,
13362         tree_code_name): Define.
13363         * toplev.c (lang_independent_init): Don't set
13364         tree_code_length[IDENTIFIER_NODE].
13365         * tree.c (tree_code_type, tree_code_length, tree_code_name):
13366         Delete definitions, moved to language front-ends.
13367         * tree.def (IDENTIFIER_NODE): Hardwire the length.
13368         * tree.h (tree_code_type, tree_code_length, tree_code_name):
13369         Const-ify.
13370         (tree_code_length): Change type to unsigned char.
13371
13372 2002-03-12  Richard Henderson  <rth@redhat.com>
13373
13374         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
13375         internal visibility change.
13376
13377 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
13378
13379         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
13380         validize_mem() instead of change_address to avoid clobbering
13381         memory attributes.
13382
13383 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
13384
13385         * c-lex.h (position_after_whitespace): Remove.
13386
13387 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
13388
13389         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
13390         (lex_string): Use unsigned char pointers.
13391
13392 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
13393
13394         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
13395         is not a valid memory_operand.
13396
13397 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
13398
13399         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
13400         * config/xtensa/lib1funcs.asm: Fix copyright to include
13401         special case for libgcc files.
13402         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
13403         (__divsi3): Likewise.
13404         (__umodsi3): Likewise.
13405         (__modsi3): Likewise.
13406         * config/xtensa/lib2funcs.S: Fix copyright to include
13407         special case for libgcc files.
13408
13409 2002-03-12  Tom Rix  <trix@redhat.com>
13410
13411         * collect2.c (resolve_lib_name): Move outside of
13412         OBJECT_FORMAT_COFF ifdef.
13413         (ignore_library): Same.
13414
13415 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
13416
13417         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
13418
13419 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
13420
13421         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
13422         to function_section before writing out the constant pool.
13423
13424 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
13425
13426         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
13427         zero_constant.
13428         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
13429
13430 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
13431
13432         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
13433         (adddi3): Likewise.
13434         (movdf): Likewise.
13435         (movdi): Likewise.
13436         (cmpsi splitter): Likewise.
13437         (modsi3): Fail if <= 0.
13438         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
13439         redundant test when HOST_BITS_PER_WIDE_INT != 32.
13440         (reg_or_sub_cint64_operand): Likewise.
13441         (num_insns_constant_wide): Optimize sign extension.
13442         (rs6000_legitimize_address): Likewise.
13443
13444 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
13445
13446         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
13447         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
13448
13449 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
13450
13451         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
13452         address calculation.
13453
13454 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
13455
13456         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
13457         scratch register to DImode / TImode.
13458         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
13459         register used does not overlap the target.
13460
13461 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13462
13463         * Makefile.in (debug.o): Depend on debug.h.
13464         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
13465         * debug.c (do_nothing_debug_hooks): Likewise.
13466         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
13467         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
13468         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
13469         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13470         * dwarfout.c (dwarf_debug_hooks): Likewise.
13471         * integrate.c (output_inline_function): Likewise.
13472         * objc/objc-act.c (synth_module_prologue): Likewise.
13473         * sdbout.c (sdb_debug_hooks): Likewise.
13474         * toplev.c (debug_hooks): Likewise.
13475         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13476
13477 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13478
13479         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
13480         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
13481         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
13482         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
13483         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
13484         * defaults.h (POINTER_SIZE): Define.
13485         * doc/tm.texi (POINTER_SIZE): Document default.
13486
13487 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13488
13489         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
13490
13491 2002-03-11  Richard Henderson  <rth@redhat.com>
13492
13493         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
13494         if rebuild_label_notes_after_reload.
13495
13496 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
13497
13498         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
13499         emit pic register load if "internal" visibility.
13500         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
13501         (cris_expand_builtin_va_arg): Do all computations on trees.
13502
13503 2002-03-11  Richard Henderson  <rth@redhat.com>
13504
13505         * rtlanal.c: Include recog.h.
13506         (keep_with_call_p): Fix thinko.
13507         * Makefile.in (rtlanal.o): Update dependencies.
13508
13509 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
13510
13511         * genflags.c (gen_insn): Use IS_VSPACE.
13512         * genoutput.c (output_insn_data): Likewise.
13513         (process_template): Likewise.
13514
13515 2002-03-11  Richard Henderson  <rth@redhat.com>
13516
13517         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
13518
13519 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
13520
13521         * Makefile.in: Update.
13522         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
13523         Update documentation.
13524         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
13525         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
13526
13527 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
13528
13529         * Makefile.in: Give texi2pod its input file as a command line
13530         argument, not on stdin.
13531
13532 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
13533             Daniel Berlin  <dan@dberlin.org>
13534
13535         C++ alias analysis improvement.
13536         * alias.c (record_component_aliases): Record aliases for base
13537         classes too.
13538
13539 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
13540
13541         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
13542
13543 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
13544
13545         * toplev.c (vms_fopen): Remove, not needed.
13546
13547         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
13548
13549         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
13550
13551         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
13552         for FP, already done later.
13553
13554         * toplev.c (debug_args): Add entry for VMS_DEBUG.
13555         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
13556
13557 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
13558
13559         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
13560         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
13561         LARGEST_EXPONENT_IS_NORMAL for the given mode.
13562         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
13563         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
13564         (ediv, emul, eldexp, esqrt): Likewise.
13565         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
13566         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
13567         (saturate): New function.
13568         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
13569         (make_nan): Use a saturation value instead of a NaN if
13570         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
13571         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
13572         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
13573         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
13574         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
13575         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
13576         !ROUND_TOWARDS_ZERO.
13577         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
13578         (ROUND_TOWARDS_ZERO): Document.
13579
13580 2002-03-11  Andreas Jaeger  <aj@suse.de>
13581
13582         * cfg.c (dump_flow_info): Remove unused variable.
13583
13584 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
13585
13586         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
13587         computations on trees.
13588
13589 2002-03-10  Richard Henderson  <rth@redhat.com>
13590
13591         PR 5693:
13592         * reload.c (copy_replacements_1): New.
13593         (copy_replacements): Use it to recurse through the rtx.
13594
13595 2002-03-10  Richard Henderson  <rth@redhat.com>
13596
13597         * loop.c (strength_reduce): Compute number of iterations as
13598         unsigned HOST_WIDE_INT.
13599
13600 2002-03-10  Richard Henderson  <rth@redhat.com>
13601
13602         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
13603         to move away from the end of the block.
13604
13605 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
13606
13607         PR preprocessor/5899
13608         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
13609
13610 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13611
13612         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
13613
13614         * attribs.c (decl_attributes): Fix signed/unsigned warning.
13615
13616 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
13617
13618         * config/mmix/mmix.c: Improve comments.
13619         (mmix_target_asm_function_prologue): Drop variable
13620         empty_stack_frame.  Don't allocate unused slot above fp.
13621         (mmix_target_asm_function_epilogue): Mirror prologue changes.
13622         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
13623         brace in first column.
13624         (enum reg_class): Ditto.
13625         (FIRST_PARM_OFFSET): Now 0.
13626         (USER_LABEL_PREFIX): Remove #if 0:d definition.
13627
13628 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13629
13630         * combine.c (make_extraction): Fix error in last change.
13631
13632 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13633
13634         * c4x.c (c4x_fp_reglist): Const-ify.
13635         * cris.c (cris_print_operand): Likewise.
13636         * i386.c (ix86_va_arg): Likewise.
13637         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
13638         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
13639         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
13640         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
13641         * mcore.h (regno_reg_class): Likewise.
13642         * mips.c (gen_int_relational): Likewise.
13643         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
13644         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
13645         * pdp11.c (move_costs): Likewise.
13646         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
13647         * s390.c (s390_branch_condition_mnemonic, regclass_map):
13648         Likewise.
13649         * s390.h (regclass_map): Likewise.
13650         * sh.c (shift_amounts): Likewise.
13651         * sh.md (rotlsi3): Likewise.
13652
13653 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
13654
13655         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
13656         (ne0+5): Use new clobber to generate proper shift pattern.
13657         Patch by Michael Matz <matz@kde.org>.
13658
13659 2002-03-09  Andreas Schwab  <schwab@suse.de>
13660
13661         * gcc.c (validate_all_switches): Also handle `%W{...}'.
13662
13663 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
13664
13665         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
13666
13667 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
13668
13669         PR middle-end/5877
13670         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
13671         even for non-representable constants.
13672
13673 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13674
13675         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
13676         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
13677         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
13678         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
13679         (pop_function_context): Compute MAY_SHARE parameter for
13680         fixup_var_refs.
13681         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
13682         (gen_mem_addressof): Call fixup_var_refs with new parm.
13683
13684         * combine.c (make_extraction): Don't make extension of CONST_INT.
13685
13686 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
13687
13688         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
13689         in o32 and o64 ABIs.
13690         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
13691         but getting fixed-size structs passed in registers regardless of
13692         padding in o32 and o64 ABIs.
13693
13694         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
13695         offset before loading address of argument passed by transparent
13696         reference.
13697
13698 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13699
13700         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
13701
13702 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
13703
13704         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
13705         marker such that registers after it are saved.
13706
13707 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13708
13709         * sparc.c (arith_4096_operand): Fix error in last change.
13710
13711 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
13712
13713         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
13714         defaults for MEABI.
13715
13716 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
13717
13718         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
13719         vectors.
13720
13721 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
13722
13723         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
13724
13725 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13726
13727         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
13728         removed; fix return value.
13729         * combine.c (combine_instructions): Dirtify blocks where we failed to
13730         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
13731         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
13732
13733 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13734
13735         * gcse.c (insert_insn_end_bb): Fix typo in last change.
13736
13737 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
13738
13739         * recog.c (peephole2_optimize): Re-distribute EH edges.
13740
13741 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13742
13743         * expr.c (expand_expr): Use unsave lang hook.
13744         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
13745         (LANG_HOOKS_INITIALIZER): Update.
13746         * langhooks.h (struct lang_hooks): New hook unsave.
13747         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
13748         (unsave_expr_1): Remove unused lang_unsave_expr_now.
13749         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
13750         (unsave_expr_now): Remove.
13751         * tree.h (unsave_expr_now, lang_unsave,
13752         lang_unsave_expr_now): Remove.
13753         (lhd_unsave): New.
13754
13755 2002-03-08  Andreas Jaeger  <aj@suse.de>
13756
13757         * flow.c (propagate_block_delete_insn): Remove unused variable.
13758
13759 2002-03-08  Kazu Hirata  <kazu@hxi.com>
13760
13761         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
13762         insn length for memory load/store.
13763
13764 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13765
13766         * doc/install.texi (--with-libiconv-prefix): Document.
13767
13768 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
13769
13770         * doc/sourcebuild.texi: Fix typo.
13771
13772 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
13773
13774         PR c/3711
13775         * builtins.c (std_expand_builtin_va_arg): Do all computations on
13776         trees.
13777
13778 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13779
13780         * rtl.c (copy_most_rtx): Move from here ...
13781         * emit-rtl.c (copy_most_rtx): ... to here.
13782
13783 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
13784
13785         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
13786         SUBTARGET_CPP_SIZE_SPEC.
13787         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
13788
13789         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
13790
13791 2002-03-07  Matt Hiller  <hiller@redhat.com>
13792
13793         * gensupport.c (first_dir_md_include): Renamed from include;
13794         change all references.
13795         (last_dir_md_include): Renamed from last_include; change all
13796         references.
13797         (init_md_reader): Unconditionally initialize base_dir whether or
13798         not filename is a relative path.
13799
13800 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
13801
13802         * config/fp-bit.c (_unord_f2): Compile it in even if
13803         US_SOFTWARE_GOFAST is enabled.
13804
13805         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
13806         NULL_RTX.  Set all HFmode operations as NULL_RTX.
13807         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
13808         NULL_RTX, try reversing the comparison and the operands.
13809
13810 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13811
13812         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
13813         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
13814         and MATCH_OP_DUP.
13815
13816 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
13817
13818         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
13819
13820 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13821
13822         * basic-block.h (fixup_abnormal_edges): Declare.
13823         * reload1.c (fixup_abnormal_edges): New function.
13824         * reg-stack.c (convert_regs): Use it.
13825
13826         * gcse.c (insert_insn_end_bb): Handle trapping insns.
13827
13828         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
13829
13830 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
13831
13832         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
13833         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
13834         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
13835         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
13836         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
13837         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
13838         unless x and y could be infinite.
13839         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
13840         Check that the common type of both arguments is a real, even for
13841         targets without unordered comparisons.  Allow an integer argument
13842         to be compared against a real.
13843         (expand_tree_builtin): Use expand_unordered_cmp.
13844         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
13845         * cse.c (fold_rtx): Likewise.  Fix indentation.
13846         * fold-const.c (fold_real_zero_addition_p): New.
13847         (fold): Use it, and the new HONOR_... macros.
13848         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
13849         * jump.c (reversed_comparison_code_parts): After searching for
13850         the true comparison mode, use HONOR_NANS to decide whether it
13851         can be safely reversed.
13852         (reverse_condition_maybe_unordered): Remove IEEE check.
13853         * simplify-rtx.c (simplify_binary_operation): Use the new macros
13854         to decide which simplifications are valid.  Allow the following
13855         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
13856         and (a - -b) to (a + b).
13857         (simplify_relational_operation): Use HONOR_NANS.
13858         * doc/tm.texi: Document the MODE_HAS_... macros.
13859
13860 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
13861
13862         * combine.c (simplify_comparison): If simplifying a logical shift
13863         right and compare with constant, force the comparison to unsigned.
13864
13865 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
13866
13867         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
13868
13869         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
13870         -mabi=no-altivec
13871         (alt_reg_names): Remove % for vrsave.
13872
13873 2002-03-06  Richard Henderson  <rth@redhat.com>
13874
13875         PR optimization/5844
13876         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
13877         if used indicates we've already emitted one copy of an operand.
13878         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
13879         (gen_split): Supply a non-null used.
13880
13881 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13882
13883         * reload1.c (reload): Unshare all rtl after reload is done.
13884
13885         * simplify-rtx.c (simplify_plus_minus): Do not abort,
13886         but simply fail if the expression is too complex to simplify.
13887         (simplify_gen_binary): Handle simplify_plus_minus failures.
13888
13889 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
13890
13891         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
13892         consistently call delete_trivially_dead_insns after CSE and GCSE;
13893         fix DFI_life dumping; do jump threading after liveness; do crossjumping
13894         after liveness2; update comment in last crossjumping.
13895         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
13896
13897 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
13898
13899         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
13900         after completing fast dead code elimination.
13901
13902         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
13903         COMPARE operator.
13904
13905 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
13906
13907         * version.c:  Fix misplaced leading blanks on first line.
13908
13909 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
13910
13911         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
13912
13913 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
13914
13915         * cfgcleanup.c (mentions_nonequal_regs): New function.
13916         (thread_jump): Use it.
13917         * toplev.c (rest_of_compilation): Run jump threading after
13918         liveness.
13919
13920 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
13921
13922         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
13923         patch.
13924
13925 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13926
13927         * predict.c (estimate_bb_frequencies): Do not reload the
13928         frequencies from notes.
13929
13930 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
13931
13932         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
13933         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
13934
13935         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
13936         delete_noop_moves): Return indeger.
13937         * flow.c (ndead): New variable.
13938         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
13939         BB argument; update callers.
13940         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
13941         (life_analysis): Do not call purge_all_dead_edges.
13942         (update_life_info): Return number of deleted insns; print statistics.
13943         (update_life_info_in_dirty_blocks): likewise.
13944         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
13945         return number of insns deleted.
13946
13947         * cse.c: Include timevar.h
13948         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
13949         iterate until stabilizes; print statistics; return number of killed
13950         insns.
13951         * Makefile.in: (cse.o): Add timevar.h dependency
13952         * rtl.h (delete_trivially_dead_insns): New.
13953         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
13954         * toplev.c (rest_of_compilation): Update callers.
13955
13956         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
13957         (try_optimize_cfg): Do not update liveness.
13958         (cleanup-cfg): Loop until try_optimize_cfg and dead code
13959         removal stabilizes; use delete_trivially_dead_insns.
13960
13961         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
13962
13963 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
13964
13965         * cppmain.c (setup_callbacks): Disable #pragma and #ident
13966         callbacks when processing assembly language.
13967
13968 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13969
13970         * pa.h (ASM_FILE_END): Define.
13971         * som.h (ASM_FILE_END): Delete.
13972
13973         * pa.c (function_arg): Don't pass floats in general registers in
13974         indirect calls if TARGET_ELF32.
13975
13976 2002-03-05  Richard Henderson  <rth@redhat.com>
13977
13978         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
13979
13980 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
13981
13982         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
13983
13984 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13985
13986         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
13987         -r command line.  Don't hide any symbols if not building
13988         shared libgcc.
13989
13990 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
13991
13992         * cfg.c (dump_flow_info): Warn about profile mismatches.
13993         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
13994         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
13995
13996 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13997
13998         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
13999         wide volatile memory by parts.
14000
14001 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
14002
14003         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
14004         is NULL.
14005
14006 2002-03-05  Richard Henderson  <rth@redhat.com>
14007
14008         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
14009
14010 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
14011
14012         * toplev.c (documented_lang_options): Document more
14013         language-specific options.
14014         * doc/invoke.texi (Warning Options): Correct documentation for
14015         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
14016         * c-decl.c (c_decode_option): Use a table to handle warning options.
14017
14018 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
14019
14020         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
14021         parameter to mmix_encode_section_info.
14022         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
14023         relocatably.  Always produce ELF, not mmo if linking relocatably.
14024         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
14025         first is non-zero, don't add symbol prefix.
14026         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
14027         prototype accordingly.
14028
14029 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
14030
14031         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
14032
14033 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
14034
14035         * configure.in: Increase required makeinfo version to 4.1.
14036         * configure: Regenerate.
14037
14038 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
14039
14040         * .cvsignore: Remove *.info* and genrtl*; these files are generated
14041         elsewhere now.
14042
14043 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
14044
14045         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
14046         * doc/invoke.texi: Fix @math uses.
14047
14048 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
14049
14050         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
14051         removal
14052
14053 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
14054
14055         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
14056         (powerpc-*-eabisimaltivec*): Same.
14057
14058         * config/rs6000/t-ppcendian: New.
14059
14060 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14061
14062         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
14063         nonimmediate_src_operand and nonimmediate_lsrc_operand to
14064         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
14065
14066 2002-03-03  Richard Henderson  <rth@redhat.com>
14067
14068         * toplev.c (rest_of_decl_compilation): Revert last two changes.
14069
14070 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
14071
14072         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
14073         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
14074         tree.c, config/m68k/m68k.c:
14075         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
14076         REAL_ARITHMETIC blocks unconditional.  Delete some further
14077         #ifdef blocks predicated on REAL_ARITHMETIC.
14078         * flags.h, toplev.c: Delete remaining references to
14079         flag_pretend_float.
14080
14081         * doc/invoke.texi: Remove documentation of -fpretend-float.
14082         * doc/tm.texi: Describe the various REAL_* macros as provided by
14083         real.h, not by the target configuration files.
14084
14085         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
14086         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
14087         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
14088         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
14089         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
14090         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
14091         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
14092         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
14093         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
14094         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
14095         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
14096         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
14097         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
14098         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
14099         config/xtensa/xtensa.h:
14100         Do not define, undefine, or mention in comments any of
14101         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
14102         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
14103         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
14104         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
14105         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
14106         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
14107         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
14108         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
14109         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
14110
14111 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14112
14113         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
14114         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
14115         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
14116         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
14117         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
14118         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
14119         Delete.
14120         * defaults.h (BITS_PER_WORD): Define.
14121         * doc/tm.texi (BITS_PER_WORD): Document default value.
14122
14123         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
14124         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
14125         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
14126
14127 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14128
14129         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
14130         lieu of explicit sizeof/sizeof.
14131         * i386.c (override_options, ix86_init_mmx_sse_builtins,
14132         ix86_expand_builtin): Likewise.
14133         * mips.c (mips_add_gc_roots): Likewise.
14134         * mmix.c (mmix_output_condition): Likewise.
14135         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
14136         altivec_init_builtins): Likewise.
14137         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
14138         * cppexp.c (Nsuff, parse_number): Likewise.
14139         * cppinit.c (builtin_array_end): Likewise.
14140         * gcc.c (n_default_compilers, process_command): Likewise.
14141         * genpreds.c (output_predicate_decls): Likewise.
14142         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
14143         * lcm.c (N_ENTITIES): Likewise.
14144         * stor-layout.c (set_sizetype): Likewise.
14145
14146 2002-03-03  Richard Henderson  <rth@redhat.com>
14147
14148         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
14149         for types or labels.
14150
14151 2002-03-03  Richard Henderson  <rth@redhat.com>
14152
14153         * c-decl.c (start_decl): Initialized variables are not common.
14154
14155 2002-03-02  Per Bothner  <per@bothner.com>
14156
14157         * gcc.c (option_map):  Suport new --bootclasspath option.
14158         --CLASSPATH is now just an alias for --classpath.
14159
14160 2002-03-02  Richard Henderson  <rth@redhat.com>
14161
14162         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
14163         load if "internal" visibility.
14164         * doc/extend.texi: Document visibility meanings.
14165
14166 2002-03-02  Richard Henderson  <rth@redhat.com>
14167
14168         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
14169         to functions as well.
14170
14171 2002-03-02  Richard Henderson  <rth@redhat.com>
14172
14173         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
14174         (handle_visibility_attribute): Don't call assemble_visibility.
14175         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
14176         without asmspec.  Invoke assemble_alias when needed.
14177         * varasm.c (maybe_assemble_visibility): New.
14178         (assemble_start_function, assemble_variable, assemble_alias): Use it.
14179
14180 2002-03-02  Richard Henderson  <rth@redhat.com>
14181
14182         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
14183         invoke ENCODE_SECTION_INFO with first call flag.
14184
14185         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
14186         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
14187         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
14188         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
14189         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
14190         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
14191         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
14192         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
14193         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
14194         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
14195         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
14196         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
14197         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
14198         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
14199         config/mcore/mcore-protos.h, config/mcore/mcore.c,
14200         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
14201         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
14202         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
14203         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
14204         config/sh/sh.h, config/sparc/sparc.h,
14205         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
14206         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
14207         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
14208         FIRST argument.  As needed, examine it and do nothing.
14209
14210         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
14211         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
14212         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
14213
14214         * config/arm/t-pe (pe.o): Add dependencies.
14215
14216 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14217
14218         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
14219         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
14220         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
14221         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
14222         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
14223         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
14224         * defaults.h (BITS_PER_UNIT): Define.
14225         * doc/tm.texi (BITS_PER_UNIT): Document default value.
14226
14227 2002-03-02  Kazu Hirata  <kazu@hxi.com>
14228
14229         * config/h8300/h8300-protos.h: Add a prototype for
14230         compute_a_shift_length.
14231         * config/h8300/h8300.c (h8300_asm_insn_count): New.
14232         (compute_a_shift_length): Likewise.
14233         (h8300_adjust_insn_length): Do not adjust insn length of shift
14234         insns.
14235         * config/h8300/h8300.md (anonymous shift patterns): Use
14236         compute_a_shift_length.
14237
14238 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14239
14240         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
14241         trunc_int_for_mode.
14242
14243         * emit-rtl.c (offset_address): Call update_temp_slot_address.
14244
14245 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14246
14247         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
14248         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
14249         * flags.h (flag_zero_initialized_in_bss): Declare.
14250         * toplev.c (flag_zero_initialized_in_bss): New flag.
14251         (lang_independent_options): Add flag_zero_initialized_in_bss.
14252         * tree.c (initializer_zerop): New function.
14253         * tree.h (initializer_zerop): Declare.
14254         * varasm.c (assemble_variable): If we can emit bss, put zero
14255         initializers in the bss section.
14256
14257 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
14258
14259         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
14260         like more than one symbol per .weak directive.
14261
14262 2002-03-01  Richard Henderson  <rth@redhat.com>
14263
14264         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
14265         adjust argument_pointer by pretend_args_size.
14266         (ia64_va_start): Adjust va_start address by -pretend_args_size.
14267
14268 2002-03-01  Kazu Hirata  <kazu@hxi.com>
14269
14270         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
14271
14272 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
14273
14274         * toplev.c (rest_of_compilation): Delete dead jumptables before
14275         loop.
14276         * flow.c (delete_dead_jumptables): Make global.
14277         * rtl.h (delete_dead_jumptables): Declare.
14278
14279 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
14280
14281         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
14282         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
14283         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
14284
14285 2002-03-01  Kazu Hirata  <kazu@hxi.com>
14286
14287         * config/h8300/h8300-protos.h: Fix formatting.
14288         * config/h8300/h8300.c: Likewise.
14289         * config/h8300/h8300.h: Likewise.
14290
14291 2002-03-01  Kazu Hirata  <kazu@hxi.com>
14292
14293         * config/h8300/h8300.c (print_operand): Support 16-bit
14294         constant addresses.
14295         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
14296
14297 2002-02-28  Richard Henderson  <rth@redhat.com>
14298
14299         * expmed.c (store_bit_field): Prevent generation of CONCATs;
14300         pun complex values as integers; use gen_lowpart instead of
14301         gen_rtx_SUBREG.
14302         (extract_bit_field): Likewise.
14303
14304 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
14305             David Edelsohn  <edelsohn@gnu.org>
14306
14307         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
14308         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
14309         (SUPPORTS_WEAK): Likewise.
14310         * output.h (add_weak): Add tree param.
14311         * varasm.c (add_weak): Likewise.  Save decl.
14312         (struct weak_syms): Add decl field.
14313         (mark_weak_decls): New function.
14314         (init_varasm_once): ggc_add_root mark_weak_decls.
14315         (assemble_start_function): Use ASM_WEAKEN_DECL.
14316         (assemble_variable): Likewise.
14317         (assemble_alias): Likewise.
14318         (declare_weak): Pass decl to add_weak.
14319         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
14320         (remove_from_pending_weak_list): Declare and define for
14321         ASM_WEAKEN_DECL.
14322         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
14323         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
14324         * defaults.h (SUPPORTS_WEAK): Likewise.
14325         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
14326         .weak for code sym.  Do emit .size for descriptor sym.
14327         (ASM_DECLARE_FUNCTION_SIZE): Define.
14328         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
14329         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
14330         .lglobl unless TARGET_XCOFF.  Formatting fixes.
14331         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
14332         .weak for code sym.
14333         (HANDLE_PRAGMA_WEAK): Remove.
14334         (ASM_WEAKEN_LABEL): Remove.
14335         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
14336
14337 2002-03-01  Jason Merrill  <jason@redhat.com>
14338
14339         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
14340         (TARGET_EXPR_CLEANUP): New macro.
14341
14342 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
14343
14344         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
14345         to take ptr_extend into account as third type of extension.
14346         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
14347         fields used by SUBREG_PROMOTED_UNSIGNED_P.
14348         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
14349         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
14350         * calls.c (precompute_arguments): Use new macro.
14351         (expand_call): Ditto.
14352         * combine.c (nonzero_bits): Ditto.
14353         (record_promoted_value): Ditto.
14354         * expr.c (store_expr): Ditto.
14355         (expand_expr): Ditto.
14356         * function.c (assign_parms): Ditto.
14357
14358 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
14359
14360         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
14361         override -shared and -shared-libgcc.
14362
14363 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
14364
14365         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
14366         of "ultrasparc".
14367         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
14368         to be broken.
14369
14370 2002-02-28  Richard Henderson  <rth@redhat.com>
14371
14372         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
14373         4 cycle latency from MM producers.
14374         (ia64_internal_sched_reorder): Likewise with pipeline flush.
14375
14376 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
14377
14378         * mklibgcc.in: Don't use GNU make extension.
14379
14380 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
14381
14382         * c-parse.in (STATIC): New terminal.
14383         (scspec): New non-terminal.  Update productions accordingly.
14384         (program): Remove bogus ifc / end ifc.
14385         (array_declarator): Simplify production using STATIC.
14386
14387 2002-02-28  Jim Meyering  <meyering@lucent.com>
14388
14389         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
14390         \a still means TARGET_BELL.
14391
14392 2002-02-28  Richard Henderson  <rth@redhat.com>
14393
14394         * haifa-sched.c (sched_emit_insn): New.
14395         (schedule_block): Use last_scheduled_insn to track last insn.
14396         * sched-int.h (sched_emit_insn): Prototype.
14397         * config/ia64/ia64.c (last_issued): Remove.
14398         (ia64_variable_issue): Don't set it.
14399         (nop_cycles_until): Use sched_emit_insn.
14400
14401 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
14402
14403         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
14404         extended constants.
14405
14406 2002-02-28  Kazu Hirata  <kazu@hxi.com>
14407
14408         * config/h8300/h8300.c: Fix formatting.
14409         * config/h8300/h8300.h: Likewise.
14410
14411 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14412
14413         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
14414         which may overwrite the high byte of the frame pointer.
14415
14416 2002-02-28  Bo Thorsen  <bo@suse.de>
14417
14418         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
14419         (STARTFILE_SPEC): Add 64 bit files.
14420         (ENDFILE_SPEC): Likewise.
14421
14422 2002-02-28  Jason Merrill  <jason@redhat.com>
14423
14424         * c-decl.c (finish_function): Only warn about missing return
14425         statement with -Wreturn-type.
14426
14427 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14428
14429         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
14430
14431         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
14432         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
14433
14434 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
14435
14436         * basic-block.h (BB_REACHABLE): Renumber.
14437         (BB_DIRTY, BB_NEW): New flags.
14438         (clear_bb_flags): Declare.
14439         (update_life_info_in_dirty_blocks): Declare.
14440         * cfg.c (clear_bb_flags): New function.
14441         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
14442         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
14443         reorder_insns, emit_insn_after): Mark block as dirty.
14444         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
14445         (update_life_info_in_dirty_blocks): New function.
14446         * recog.c (apply_change_group): Dirtify block.
14447
14448         * cse.c (cse_insn): Reorder emitting of jump insn to keep
14449         cfg consistent.
14450         * gcse.c (delete_null_pointer_checks): Likewise.
14451
14452         * toplev.c (dump_file_index): Move cse2 after bp,
14453         add DFI_null
14454         (dump_file_info): Similary.
14455         (rest_of_compilation): Avoid most of CFG rebuilds;
14456         do first if converision after null pointer checks, do cse2
14457         after branch prediction; avoid full liveness rebuild after
14458         initializing subregs.
14459         * invoke.texi (-d options): Document -du, renumber.
14460
14461         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
14462         (notice_new_block): Do not set BB_UPDATE_LIFE.
14463         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
14464          merge_blocks_move_successor_nojumps, merge_blocks,
14465          try_crossjump_to_edge): Likewise.
14466         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
14467         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
14468         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
14469         (merge_of_block): Do not use life_data_ok.
14470         (find_if_case_1): Do not use SET_UPDATE_LIFE.
14471         (if_convert): Use BB_DIRTY mechanizm to update life.
14472         * lcm.c (optimize_mode_switching): Update
14473         update_life_info_in_dirty_blocks
14474
14475 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
14476
14477         * Makefile.in (integrate.o): Update.
14478         * c-decl.c (copy_lang_decl): Rename.
14479         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
14480         * integrate.c: Include langhooks.h.
14481         (copy_decl_for_inlining): Update to use langhook.
14482         * langhooks-def.h (lhd_do_nothing_t,
14483         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
14484         (LANG_HOOKS_INITIALIZER): Update.
14485         * langhooks.c (lhd_do_nothing_t): New.
14486         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
14487         * tree.h (copy_lang_decl): Remove.
14488 objc:
14489         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
14490
14491 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
14492
14493         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
14494         POST_DEC, and POST_MODIFY.
14495
14496 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14497
14498         * c-typeck.c (digest_init): Remove unused parameter; all
14499         callers changed.
14500
14501 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
14502
14503         * expmed.c (expand_shift): Correctly test for low part of a
14504         subreg.
14505
14506 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
14507
14508         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
14509         insn UIDs with insn addresses.
14510
14511 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14512
14513         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
14514         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
14515         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
14516         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
14517         gcc.c, toplev.c: Delete code implementing -traditional mode.
14518
14519         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
14520         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
14521         Document removal of -traditional mode for compilation, and
14522         remove documentation only relevant to that mode.
14523
14524         * config/nextstep.h, config/ptx4.h, config/svr4.h,
14525         config/convex/convex.h, config/d30v/d30v.h,
14526         config/i386/dgux.h, config/i386/osf1elf.h,
14527         config/i386/osfelf.h, config/i386/osfrose.h,
14528         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
14529         config/m68k/hp310.h, config/m88k/dgux.h,
14530         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
14531         config/m88k/m88k.h, config/m88k/openbsd.h,
14532         config/mips/abi64.h, config/mips/osfrose.h,
14533         config/mips/svr4-5.h, config/mips/svr4-t.h,
14534         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
14535         config/stormy16/stormy16.h: Remove all references to
14536         -traditional from target specs.  Delete all mention of the
14537         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
14538         delete a couple of commented-out definitions of
14539         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
14540         to -traditional.
14541
14542         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
14543         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
14544
14545 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14546
14547         * mklibgcc.in: Don't use \n in a line subject to
14548         interpretation by echo.
14549
14550 2002-02-27  Graham Stott  <grahams@redhat.com>
14551
14552         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
14553         Constify NAME.
14554
14555         * loop.c (prescan_loop): Handle PARALLEL.
14556
14557         * unroll.c (loop_iterations): Return 0 if the add_val for
14558         a BIV is REG.
14559
14560         * final.c (output_operand_lossage): Constify PFX_STR.
14561
14562         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
14563
14564 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14565
14566         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
14567         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
14568
14569 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
14570
14571         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
14572
14573 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
14574
14575         * cpplex.c (_cpp_lex_token): Handle directives in macro
14576         arguments.
14577         * cpplib.c (_cpp_handle_directive): Save and restore state
14578         if parsing macro args when entering a directive.
14579         * cppmacro.c (collect_args): No need to handle directives
14580         in macro arguments.
14581         (enter_macro_context, replace_args): Use the original macro
14582         definition in case it was redefined whilst collecting arguments.
14583 doc:
14584         * cpp.texi: Update.
14585
14586 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
14587
14588         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
14589         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
14590         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
14591         method on AIX.
14592         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
14593         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
14594         (load_toc_v4_PIC_2): Same.
14595
14596 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
14597
14598         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
14599
14600 2002-02-26  Richard Henderson  <rth@redhat.com>
14601
14602         * config/alpha/alpha.md (ashldi_se): Re-enable.
14603
14604 2002-02-26  Richard Henderson  <rth@redhat.com>
14605
14606         * config/alpha/alpha.c (alpha_encode_section_info): Examine
14607         MODULE_LOCAL_P; improve commentary.
14608
14609 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
14610
14611         * doc/cpp.texi: Clarify documentation of relationship between
14612         #line and #include.
14613
14614 2002-02-26  Kazu Hirata  <kazu@hxi.com>
14615
14616         * config/h8300/h8300-protos.h: Update the prototype for
14617         compute_logical_op_length.  Add the prototype for
14618         compute_logical_op_cc.
14619         * config/h8300/h8300.c (compute_logical_op_length): Figure out
14620         code from operands.
14621         (compute_logical_op_cc): New.
14622         * config/h8300/h8300.md: Combine all the logical op patterns
14623         in HImode and SImode.  Use compute_logical_op_cc.
14624
14625 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
14626
14627         * config/i386/i386.c (print_operand): Don't append ATT-style
14628         length suffixs to x87 opcodes when in Intel mode.
14629
14630 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
14631
14632         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
14633         (init_emit_once): Update calls.
14634         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
14635         (init_syntax_once): Prototype.
14636
14637 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14638
14639         * pa-linux.h (LIB_SPEC): Update definition.
14640         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14641
14642 2002-02-26  Richard Henderson  <rth@redhat.com>
14643
14644         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
14645         if we emitted a stop bit.
14646
14647 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14648
14649         * configure.in (libgcc_visibility): Substitute.
14650         * configure: Rebuilt.
14651         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
14652         defined symbols .hidden.
14653
14654 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14655
14656         * attribs.c (c_common_attribute_table): Add visibility.
14657         (handle_visibility_attribute): New function.
14658         * varasm.c (assemble_visibility): New function.
14659         * output.h (assemble_visibility): Add prototype.
14660         * tree.h (MODULE_LOCAL_P): Define.
14661         * crtstuff.c (__dso_handle): Use visibility attribute.
14662         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
14663         for MODULE_LOCAL_P symbols too.
14664         * config/ia64/ia64.c (ia64_encode_section_info): Handle
14665         MODULE_LOCAL_P symbols the same way as local symbols.
14666         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
14667         into .sdata/.sbss by the user.
14668         * doc/extend.texi (Function Attributes): Document visibility
14669         attribute.
14670
14671 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14672
14673         PR debug/5770
14674         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
14675         STRING_CST initializer spanning the whole variable without
14676         embedded zeros.
14677         If expand_expr returned MEM, don't use it.
14678
14679 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
14680
14681         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
14682         generate a die for the lexical block.
14683
14684 2002-02-26  Kazu Hirata  <kazu@hxi.com>
14685
14686         * config/h8300/h8300-protos.h: Add a prototype for
14687         compute_logical_op_length.
14688         * config/h8300/h8300.c (compute_logical_op_length): New.
14689         * config/h8300/h8300.md (anonymous logical patterns): Use
14690         compute_logical_op_length for length.
14691
14692 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14693
14694         * dwarf2out.c (modified_type_die): Do not call type_main_variant
14695         for vectors.
14696         (gen_type_die): Same.
14697
14698         * attribs.c (handle_vector_size_attribute): Set debug information.
14699
14700 2002-02-26  Daniel Egger  <degger@fhm.edu>
14701
14702         * config/rs6000/rs6000.md: Swap define_insn attributes to
14703         fix incorrect generation of merge high instructions instead
14704         of merge low.
14705
14706 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14707
14708         * c-typeck.c (really_start_incremental_init): Use
14709         bitsize_zero_node for vectors.
14710
14711 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14712
14713         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
14714         ("*set_vrsave_internal"): Same.
14715
14716 2002-02-25  Richard Henderson  <rth@redhat.com>
14717
14718         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
14719         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
14720
14721 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
14722
14723         PR target/5755
14724         * config/i386/i386.c (ix86_return_pops_args): Only pop
14725         fake structure return argument if it was passed on the stack.
14726
14727 2002-02-25  Jason Merrill  <jason@redhat.com>
14728
14729         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
14730         RESULT_DECL.
14731
14732 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
14733
14734         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
14735         link with shared_name only.
14736         * doc/invoke.texi (Link Options): Document new behavior.
14737
14738 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14739
14740         * c-typeck.c (push_init_level): Handle vectors.
14741
14742 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
14743
14744         * config/sparc/sparc.c (const64_high_operand): Zero-extend
14745         operands of SPARC_SETHI_P.
14746         (input_operand): Likewise.
14747         (sparc_emit_set_const32): Likewise.
14748         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
14749         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
14750         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
14751         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
14752         (movdi_insn_sp64_vis): Likewise.
14753         (movdi split, movdf split): Use SETHI32.
14754         * doc/md.texi: Document SPARC constraints L, M and N.
14755
14756 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14757
14758         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
14759         ("*set_vrsave_internal"): use mfspr for Darwin.
14760
14761         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
14762         gen_get_vrsave_internal.
14763
14764 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14765
14766         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
14767
14768 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14769
14770         * cpplex.c (cpp_interpret_charconst): Get signedness or
14771         otherwise of wide character constants correct.
14772         * cppexp.c (lex): Get signedness of wide charconsts correct.
14773
14774 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14775
14776         * optabs.c (widen_operand): Only call convert_modes for
14777         promoted SUBREG if signedness matches.
14778         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
14779
14780 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14781
14782         * cpplib.c (glue_header_name): Use local buffer to build up
14783         header name.
14784
14785 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14786
14787         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
14788
14789 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14790
14791         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
14792         H8/300[HS] separately.
14793         * config/h8300/h8300.md: Remove the early clobber constraint
14794         from bit field patterns.
14795
14796 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14797
14798         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
14799         register_operand.
14800         (mulhisi3): Likewise.
14801         (umulqisi3): Likewise.
14802         (umulhisi3): Likewise.
14803
14804 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14805
14806         * cppinit.c (output_deps): Correct test for stdout output.
14807         (init_dependency_output): Cure warning.
14808
14809 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14810
14811         * expr.c (store_expr): When converting expression to promoted
14812         equivalent type, allow using SUBREG_REG of TARGET as the target
14813         of the expansion of EXP.
14814         * loop.c (basic_induction_var, case SUBREG): Always look inside.
14815         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
14816         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
14817         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
14818         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
14819
14820 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
14821
14822         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
14823         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
14824         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
14825
14826 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
14827
14828         PR optimization/5747
14829         * loop.c (scan_loop): Update reg info if move_movables created new
14830         pseudos.
14831
14832 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14833
14834         * gcc.c (init_gcc_spec): Revert last change.
14835
14836 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14837
14838         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
14839         gpc_reg_operand constraint.
14840
14841 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
14842
14843         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
14844         Simplify comparison of `low'.
14845         (add_operand): Fix formatting.
14846         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
14847         (mask_operand): Disallow mask to wrap in 64-bit mode.
14848         (rs6000_stack_info): Remove redundant test setting push_p.
14849         (output_toc): Fix formatting.
14850         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
14851         cc_reg_not_cr0_operand constraint.
14852         (booldi3, boolcdi3 splitters): Same.
14853
14854 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
14855
14856         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
14857
14858 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
14859
14860         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
14861         gcc invoked with -shared-libgcc.
14862
14863 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
14864
14865         PR c++/5748
14866         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
14867         decl if any of elements was TREE_USED.
14868
14869 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
14870
14871         * config/sparc/sol2.h: Don't include sys/mman.h.
14872         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
14873         (arith_4096_operand): Don't throw high bits away.
14874         (const64_operand): Take sign extension of CONST_INTs into account.
14875         (const64_high_operand, sparc_emit_set_const32): Likewise.
14876         (GEN_HIGHINT64): Likewise.
14877         (sparc_emit_set_const64_quick1): Likewise.
14878         (const64_is_2insns): Likewise.
14879         (print_operand): Use trunc_int_for_mode for sign extension.
14880         * config/sparc/sparc.h (SMALL_INT32): Likewise.
14881         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
14882         chars.  Assume CONST_INT is already properly sign-extended.
14883         (movdi split): Sign-extend each SImode part.
14884         (andsi3 split): Don't mask high bits off, so that result
14885         remains properly sign-extend.
14886         (iorsi3 split): Likewise.
14887         (xorsi3 split): Likewise.
14888
14889 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
14890
14891         * fold-const.c (fold): Fix typo in comments.
14892
14893 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14894
14895         * Makefile.in (langhooks.o): Update dependencies.
14896
14897 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14898
14899         * langhooks.c: Include flags.h.
14900
14901 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
14902
14903         * testsuite/gcc.dg/attr-alwaysinline.c: New.
14904
14905         * c-common.c (c_common_post_options): Set inline trees by
14906         default.
14907
14908         * doc/extend.texi (Function Attributes): Document always_inline
14909         attribute.
14910         Update documentation about inlining when not optimizing.
14911
14912         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
14913
14914         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
14915         unless DECL_ALWAYS_INLINE.
14916
14917         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
14918         unless DECL_ALWAYS_INLINE.
14919         (c_disregard_inline_limits): Disregard if always_inline set.
14920
14921         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
14922         Disregard if always_inline set.
14923         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
14924         unless DECL_ALWAYS_INLINE.
14925
14926         * attribs.c (handle_always_inline_attribute): New.
14927         (c_common_attribute_table): Add always_inline.
14928
14929         * config/rs6000/altivec.h: Add prototypes for builtins
14930         requiring the always_inline attribute.
14931
14932 2002-02-21  Eric Christopher  <echristo@redhat.com>
14933
14934         * expmed.c (store_bit_field): Try to simplify the subreg
14935         before generating a new one when when the mode size of
14936         value is less than maxmode.
14937
14938 2002-02-21  Richard Henderson  <rth@redhat.com>
14939
14940         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
14941         than gen_rtx_PLUS to form the sum.
14942         * explow.c (force_reg): Rearrange to not allocate new pseudo
14943         when force_operand returns a register.
14944         * expr.c (expand_assignment): Allow offset_rtx expansion to
14945         return a sum.  Do not force addresses into registers.
14946         (expand_expr): Likewise.
14947         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
14948         to canonicalize arithmetic that didn't simpify.
14949         (simplify_plus_minus): New argument force; update
14950         all callers.  Don't split CONST unless we can do something with it,
14951         and wouldn't lose the constness of the operands.
14952
14953         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
14954         that we generated earlier.
14955
14956 2002-02-21  Tom Tromey  <tromey@redhat.com>
14957
14958         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14959         (output_line_info): Use constant `1', with a long explanatory
14960         comment.
14961         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
14962
14963 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
14964
14965         * jump.c (redirect_jump): If old label has no UID, don't try to
14966         delete it.
14967
14968 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
14969
14970         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
14971         If input is constant, do shifts at compile time.
14972
14973 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14974
14975         * doc/extend.texi: Fix some more overfull hboxes.
14976
14977 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14978
14979         PR optimization/4994
14980         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
14981         register moves.
14982
14983 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14984
14985         PR c++/4574
14986         * expr.h (expand_and): Add mode argument.
14987         * expmed.c (expand_and): Add mode argument.
14988         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
14989         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
14990         * except.c (expand_builtin_extract_return_addr): Likewise.
14991         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
14992         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
14993         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
14994         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
14995         * config/c4x/c4x.md: Use GEN_INT (x) instead of
14996         gen_rtx (CONST_INT, VOIDmode, x).
14997
14998 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14999
15000         PR c/4697:
15001         * stmt.c (warn_if_unused_value): Move side effects test once more.
15002
15003 2002-02-20  Torbjorn Granlund  <tege@swox.com>
15004
15005         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
15006         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
15007
15008 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
15009
15010         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
15011         SUBREG or ZERO_EXTEND.
15012
15013 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
15014
15015         * sh.h (current_function_anonymous_args): Remove.
15016         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
15017         of current_function_varargs and current_function_stdarg is set.
15018         * sh.c (sh_expand_prologue): Check current_function_varargs /
15019         current_function_stdarg / TARGET_SH5 instead of
15020         current_function_anonymous_args.
15021
15022         * sh64.h (TARGET_VERSION): Define.
15023
15024 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
15025
15026         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
15027         VRSAVE_REGNO on TARGET_ALTIVEC.
15028
15029 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
15030
15031         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
15032         bits of SImode const_int.
15033         (includes_rshift_p): Likewise.
15034         (print_operand): Call mask_operand and mask64_operand with correct
15035         mode.
15036         (rs6000_output_function_epilogue): Pad traceback table to word.
15037         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
15038         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
15039         mask64_operand with correct mode.
15040         (FUNCTION_ARG_REGNO_P): Correct parentheses.
15041
15042 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
15043
15044         PR debug/4461
15045         * varasm.c (get_pool_constant_mark): New.
15046         * rtl.h (get_pool_constant_mark): Add prototype.
15047         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
15048         be represented if it has not been output.
15049
15050 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
15051
15052         * combine.c (do_SUBST): Sanity check substitutions of
15053         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
15054         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
15055         CONST_INT into its operand.
15056         (known_cond): Likewise, for ZERO_EXTEND.
15057         * simplify-rtx.c (simplify_unary_operation): Fix condition to
15058         allow for simplification of wide modes.  Reject CONST_INTs in
15059         ZERO_EXTEND when their actual mode is not given.
15060
15061 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
15062
15063         * c-decl.c (pushdecl): If no global declaration is found for an
15064         extern declaration in block scope, try a limbo one.
15065
15066 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
15067
15068         PR c++/4401
15069         * c-common.c (pointer_int_sum): Moved from...
15070         * c-typeck.c (pointer_int_sum): ...here.
15071         * c-common.h (pointer_int_sum): Add prototype.
15072
15073 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
15074
15075         PR c++/5713
15076         * c-decl.c (duplicate_decls): Return 0 if issued error about
15077         redeclaration.
15078
15079 2002-02-20  Roger Sayle  <roger@eyesopen.com>
15080             Jakub Jelinek  <jakub@redhat.com>
15081
15082         PR c/4389
15083         * tree.c (host_integerp): Ensure that the constant integer is
15084         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
15085         when pos is zero or non-zero respectively.  Clarify comment.
15086         * c-format.c (check_format_info_recurse): Fix host_integerp
15087         usage; the pos argument should be zero when assigning to a
15088         signed HOST_WIDE_INT.
15089
15090 2002-02-20  Richard Henderson  <rth@redhat.com>
15091
15092         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
15093         of the operand, rather than assuming TImode.
15094         (ix86_expand_binop_builtin): Cope with commutative patterns
15095         using nonimmediate_operand for both operands.
15096         (ix86_expand_timode_binop_builtin): Likewise.
15097         (ix86_expand_store_builtin): Validate operand 1.
15098         (ix86_expand_unop1_builtin): Likewise.
15099
15100 2002-02-20  Philip Blundell  <philb@gnu.org>
15101
15102         PR 5705
15103         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
15104
15105 2002-02-20  Richard Henderson  <rth@redhat.com>
15106
15107         PR c/5615
15108         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
15109
15110 2002-02-20  Tom Tromey  <tromey@redhat.com>
15111
15112         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
15113         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
15114         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
15115         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
15116         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
15117         unconditionally.
15118
15119 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
15120
15121         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
15122           for (const_int 0) in X not just INTVAL.
15123
15124 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
15125
15126         * doc/extend.texi: Avoid or reduce overfull hboxes.
15127
15128 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
15129
15130         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
15131         operations if the field does not start at a mode boundary.
15132
15133 2001-02-20      Joel Sherrill <joel@OARcorp.com>
15134
15135         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
15136         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
15137         Also done for -Acpu and -Amachine.
15138
15139 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
15140
15141         * cppinit.c (init_dependency_output): Take deps output file
15142         from -o if none given with -MF.  Suppress normal output.
15143         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
15144         * doc/cpp.texi, doc/invoke.texi: Update.
15145
15146 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
15147
15148         * toplev.c (output_quoted_string): Write unprintable
15149         characters with octal escapes.
15150
15151 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
15152
15153         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
15154         really_call_used[VRSAVE_REGNO] if not Altivec.
15155
15156 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
15157
15158         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
15159         MODE_MASK.
15160         (constant_pool_expr_1): Fix formatting.
15161         (rs6000_legitimize_reload_address): Likewise.
15162
15163 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15164
15165         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
15166         now that we have one.
15167
15168 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
15169
15170         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
15171         end of first block of bitfields (which was only seven bits);
15172         rename dummy to unused_1; remove comment which is no longer true.
15173
15174 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
15175
15176         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
15177
15178 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
15179
15180         PR 5399
15181         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
15182         if generating PIC.
15183
15184         PR 5054
15185         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
15186         arm_is_longcall_p rather than inspecting call-type cookie
15187         directly.
15188         (call_value_insn) [TARGET_THUMB]: Likewise.
15189
15190 2002-02-19  Graham Stott  <grahams@redhat.com>
15191
15192         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
15193
15194 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
15195
15196         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
15197         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
15198         (FP_SAVE_INLINE): Delete.
15199
15200         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
15201         * config/rs6000/eabi.asm: Remove ABI save restore routines.
15202         * config/rs6000/t-ppccomm: Build crtsavres.o.
15203         * config/rs6000/crtsavres.asm: New file.
15204
15205 2002-02-19  Philip Blundell  <philb@gnu.org>
15206
15207         * config/arm/arm.c (use_return_insn): Don't reject interrupt
15208         functions.
15209         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
15210         (output_return_instruction): Allow interrupt functions to return with
15211         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
15212         (arm_expand_prologue): Subtract 4 before stacking LR in an
15213         interrupt function.
15214
15215 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
15216
15217         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
15218         decl, not just FUNCTION_DECL.
15219         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
15220         (arm_assemble_integer): Likewise.
15221         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
15222         marked local.
15223
15224 2002-02-19  matthew green  <mrg@eterna.com.au>
15225
15226         * config.gcc (sparc-*-netbsdelf*): Enable target.
15227         (sparc64-*-netbsd*): New target.
15228         * config/sparc/netbsd-elf.h: New file.
15229         * config/sparc/t-netbsd64: New file.
15230
15231 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
15232
15233         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
15234
15235 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
15236
15237         * doc/invoke.texi: explicitly list the style guidelines that
15238         -Weffc++ checks for.
15239
15240 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
15241
15242         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
15243
15244 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
15245
15246         PR other/5718
15247         * gcc.c (cpp_unique_options): Treat -o as indicating object file
15248         only if not -E.  If -E, pass -o through to the preprocessor.
15249
15250 2002-02-19  Kazu Hirata  <kazu@hxi.com>
15251
15252         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
15253         register number with an appropriate macro.
15254
15255 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
15256
15257         * doc/rtl.texi (Constants): Close @code tag.
15258
15259 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
15260
15261         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
15262         ("mmx_uavgv4hi3"): Same.
15263         ("pmulhrwv4hi3"): Same.
15264
15265         * tree-inline.c (walk_tree): Handle vectors.
15266
15267         * c-common.c (constant_expression_warning): Handle vectors.
15268         (overflow_warning): Same.
15269
15270         * sched-deps.c (sched_analyze_2): Handle vectors.
15271
15272         * rtlanal.c (rtx_unstable_p): Handle vectors.
15273         (rtx_varies_p): Same.
15274         (count_occurrences): Same.
15275         (regs_set_between_p): Same.
15276         (modified_between_p): Same.
15277         (modified_in_p): Same.
15278         (volatile_insn_p): Same.
15279         (volatile_refs_p): Same.
15280         (side_effects_p): Same.
15281         (may_trap_p): Same.
15282         (inequality_comparisons_p): Same.
15283         (replace_regs): Same.
15284         (computed_jump_p_1): Same.
15285
15286         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
15287         argument.
15288         (inner_mode_array): New.
15289         (copy_rtx): Handle vectors.
15290         (copy_most_rtx): Same.
15291         (rtx_equal_p): Same.
15292         (get_mode_alignment): Adjust for vectors.
15293
15294         * resource.c (mark_referenced_resources): Handle vectors.
15295         (mark_set_resources): Same.
15296
15297         * reload1.c (eliminate_regs): Handle vectors.
15298         (elimination_effects): Same.
15299         (scan_paradoxical_subregs): Same.
15300
15301         * reload.c (subst_reg_equivs): Handle vectors.
15302
15303         * regrename.c (scan_rtx): Handle vectors.
15304
15305         * regclass.c (reg_scan_mark_refs): Handle vectors.
15306
15307         * recog.c (find_single_use_1): Handle vectors.
15308
15309         * local-alloc.c (equiv_init_varies_p): Handle vectors.
15310         (contains_replace_regs): Same.
15311         (memref_referenced_p): Same.
15312
15313         * integrate.c (copy_rtx_and_substitute): Handle vectors.
15314         (subst_constants): Same.
15315
15316         * genattrtab.c (attr_copy_rtx): Handle vectors.
15317         (encode_units_mask): Same.
15318         (clear_struct_flag): Same.
15319         (count_sub_rtxs): Same.
15320
15321         * gcse.c (want_to_gcse_p): Handle vectors.
15322         (oprs_unchanged_p): Same.
15323         (hash_expr_1): Same.
15324         (oprs_not_set_p): Same.
15325         (expr_killed_p): Same.
15326         (compute_transp): Same.
15327         (store_ops_ok): Same.
15328
15329         * function.c (purge_addressof_1): Do not allow paradoxical subregs
15330         of vectors.
15331         (fixup_var_refs_1): Same.
15332         (instantiate_virtual_regs_1): Same.
15333
15334         * fold-const.c (operand_equal_p): Handle vectors.
15335         (fold): Same.
15336         (rtl_expr_nonnegative_p): Same.
15337
15338         * flow.c (mark_used_regs): Handle vectors.
15339
15340         * df.c (df_uses_record): Handle vectors.
15341
15342         * cselib.c (cselib_subst_to_values): Handle vectors.
15343         (cselib_mem_conflict_p): Same.
15344         (hash_rtx): Same.
15345
15346         * cse.c (canon_reg): Handle vectors.
15347         (fold_rt): Same.
15348         (cse_process_notes): Same.
15349         (count_reg_usage): Same.
15350         (canon_hash): Same.
15351
15352         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
15353
15354         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
15355
15356         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
15357         (gen_rtx): Handle CONST_VECTOR.
15358         (gen_const_vector_0): New.
15359         (copy_rtx_if_shared): CONST_VECTORs can be shared.
15360         (reset_used_flags): Same.
15361         (copy_insn_1): Same.
15362         (initializer_constant_valid_p): Handle VECTOR_CST.
15363
15364         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
15365
15366         * doc/rtl.texi (Constants): Document const_vector.
15367         (CONST0_RTX): Update for vectors.
15368         (RTL sharing): Same.
15369
15370         * print-tree.c (print_node): Add case for VECTOR_CST.
15371
15372         * tree.h (TREE_VECTOR_CST_ELTS): New.
15373         (struct tree_vector): New.
15374         (union tree_node): Add vector node.
15375         (build_vector): Add prototype.
15376
15377         * tree.def (VECTOR_CST): New.
15378
15379         * tree.c (build_vector): New.
15380
15381         * expmed.c (make_tree): Handle CONST_VECTOR.
15382
15383         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
15384         (CONST_VECTOR_ELT): New.
15385         (CONST_VECTOR_NUNITS): New.
15386
15387         * machmode.h (GET_MODE_INNER): New.
15388         (DEF_MACHMODE): Accept 8th arg.
15389
15390         * machmode.def: Add 8th argument for vector inner mode.
15391         Add inner vector modes for vectors.
15392
15393         * rtl.def (VEC_CONST): Remove.
15394         (CONST_VECTOR): New.
15395
15396         * expr.c (clear_storage): Allow vectors.
15397         (is_zeros_p): Handle VECTOR_CST.
15398
15399         * varasm.c (output_constant_pool): Handle vectors.
15400         (rtx_const): Add veclo and vechi fields.
15401         (kind): Add RTX_VECTOR.
15402         (decode_rtx_const): Add case for vector.
15403
15404         * config/rs6000/rs6000-protos.h: Add zero_constant.
15405
15406         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
15407         constants.  Force easy vector constants into memory.
15408         (easy_vector_constant): New.
15409         (emit_easy_vector_constant): New.
15410         (rs6000_legitimize_reload_address): Do not generate bad reloads on
15411         darwin.
15412
15413         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
15414         instruction does.
15415         ("altivec_lvxl"): Same.
15416         (altivec_lvebx): Same.
15417         (altivec_lvehx): Same.
15418         (altivec_lvewx): Same.
15419         ("*movv4si_const0"): New.
15420         ("*movv4sf_const0"): New.
15421         ("*movv8hi_const0"): New.
15422         ("*movv16qi_const0"): New.
15423
15424 2002-02-18  Kazu Hirata  <kazu@hxi.com>
15425
15426         * config/h8300/h8300.c (notice_update_cc): Use
15427         cc_status.value2.
15428
15429 2002-02-18  Kazu Hirata  <kazu@hxi.com>
15430
15431         * config/h8300/h8300.md (divmod patterns): Change the
15432         constraints for operands[1] to register_operand.
15433
15434 2002-02-18  Kazu Hirata  <kazu@hxi.com>
15435
15436         * config/h8300/h8300-protos.h: Remove the prototype for
15437         p_operand.
15438         * config/h8300/h8300.c (p_operand): Remove.
15439         * config/h8300/h8300.md: Replace p_operand with
15440         const_int_operand.
15441
15442 2002-02-18 Philip Blundell <pb@nexus.co.uk>
15443
15444         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
15445         comment.
15446         (output_return_instruction): Allow use of LDR to unstack
15447         return addresss even for interrupt handlers or when
15448         interworking.  If compiling for ARMv5, use interworking-safe
15449         return instructions by default.  Remove duplicated code and
15450         lengthy "strcat" sequences.
15451
15452 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15453
15454         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
15455         (LINK_EH_SPEC): Define.
15456         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
15457
15458 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
15459
15460         * config/s390/s390.c (s390_emit_prologue): Do not set the
15461         frame_related flag for call-clobbered registers.
15462
15463 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
15464
15465         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
15466         (construct_container): Fix handling of SSE operands.
15467         (ix86_expand_builtin): Fix handling of 64bit pointers.
15468         (mmx_maskmovq_rex): New pattern.
15469
15470 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15471
15472         * regrename.c (kill_set_value): Handle subregs properly.
15473
15474 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
15475
15476         * objc/objc-act.c (handle_impent): Remove leading '*'
15477         from objc_class_name.
15478
15479 2002-02-17  Richard Henderson  <rth@redhat.com>
15480
15481         * config/alpha/alpha.c (some_small_symbolic_operand,
15482         some_small_symbolic_operand_1, split_small_symbolic_operand,
15483         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
15484         Handle small SYMBOL_REFs anywhere, not just inside memories.
15485         * config/alpha/alpha-protos.h: Update.
15486         * config/alpha/alpha.h (PREDICATE_CODES): Update.
15487         * config/alpha/alpha.md (small symbolic operand splitter): Update.
15488
15489 2002-02-17  Roland McGrath  <roland@frob.com>
15490
15491         * config.gcc (powerpc-*-gnu-gnualtivec*,
15492         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
15493         * config/rs6000/gnu.h: New file.
15494         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
15495         Grok "gnu" in rs6000_abi_name.
15496         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
15497         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
15498         Grok -mcall-gnu analogous to -mcall-linux et al.
15499         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
15500         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
15501         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
15502
15503 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
15504
15505         PR c/3444:
15506         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
15507         shortening.
15508
15509 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15510
15511         * config/cris/cris.h: Undefine STARTFILE_SPEC and
15512         ENDFILE_SPEC before (re)defining them.
15513
15514 2002-02-17  Kazu Hirata  <kazu@hxi.com>
15515
15516         * config/h8300/h8300.c: Fix formatting.
15517         * config/h8300/h8300.h: Likewise.
15518
15519 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15520
15521         * doc/tm.texi: Explain why empty strings should not be
15522         marked for translation.
15523
15524 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15525
15526         * final.c (output_operand_lossage): Changed to accept
15527         printf style arguments. Change calls where necessary.
15528         * output.h (output_operand_lossage): Change declaration
15529         accordingly. Update copyright.
15530         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
15531         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
15532         Update copyright date where necessary.
15533
15534         * config/i386/i386.c (print_operand): Likewise. Remove use of
15535         sprintf.
15536
15537         * config/cris/cris.c (cris_operand_lossage): Likewise.
15538         Rename parameter so that exgettext recognizes it as
15539         translatable message.
15540         (LOSE_AND_RETURN): Rename parameter to msgid.
15541
15542 2002-02-17  Kazu Hirata  <kazu@hxi.com>
15543
15544         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
15545         hard coded register number with an appropriate macro.
15546         (HARD_REGNO_MODE_OK): Likewise.
15547         (ARG_POINTER_REGNUM): Likewise.
15548         (STATIC_CHAIN_REGNUM): Likewise.
15549         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
15550         * config/h8300/h8300.md (define_constants): Define more
15551         register numbers.
15552
15553 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15554
15555         * config/i386/i386.h: Don't mark empty strings for translation.
15556
15557 2002-02-16  H.J. Lu <hjl@gnu.org>
15558
15559         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
15560
15561 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
15562
15563         * cppinit.c (merge_include_chains): Check for brack being
15564         NULL before attempting to merge it with qtail.
15565
15566 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
15567
15568         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
15569         DBX_DEBUG.
15570
15571 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15572
15573         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
15574
15575 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15576
15577         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
15578         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
15579         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
15580
15581 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15582
15583         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
15584         now only if !TARGET_FIX.
15585         (*movsi_nt_vms_fix): New pattern.
15586
15587 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
15588
15589         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
15590         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
15591         (alpha_sa_mask, alpha_sa_size): Reflect above change.
15592         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
15593         (alpha_start_function, alpha_expand_epilogue): Likewise.
15594         (unicosmk_gen_dsib): Likewise.
15595
15596 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15597
15598         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
15599
15600 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
15601
15602         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
15603         check_and_change_labels, s390_final_chunkify): Delete.
15604         (s390_split_branches, s390_chunkify_pool): New functions.
15605         (s390_function_prologue): Call them.
15606
15607         * config/s390/s390.h (S390_REL_MAX): Delete.
15608         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
15609
15610         * config/s390/s390.md (cjump, icjump, jump): Fix length
15611         attribute calculation.
15612
15613
15614 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
15615
15616         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
15617         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
15618
15619 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15620
15621         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
15622         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
15623         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
15624
15625 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
15626
15627         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
15628
15629 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
15630
15631         * reload.c (find_dummy_reload): Check that an output register
15632         is valid for its mode.
15633
15634 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
15635
15636         * combine.c (known_cond): After replacing the REG of a SUBREG, try
15637         to simplify it.
15638
15639         * function.c (assign_parms): Demote promoted argument passed by
15640         transparent reference.
15641
15642 2001-02-14      Joel Sherrill <joel@OARcorp.com>
15643
15644         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
15645         -Acpu() and -Amachine() to eliminate warnings.
15646
15647 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
15648
15649         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
15650
15651 2002-02-14  Kazu Hirata  <kazu@hxi.com>
15652
15653         * config/h8300/h8300-protos.h: Update the prototype for
15654         const_costs.
15655         * config/h8300/h8300.c (const_costs): Treat SET as a little
15656         more expensive operation.
15657         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
15658         reference to const_costs.
15659
15660 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
15661
15662         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
15663
15664 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
15665
15666         PR c/5503:
15667         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
15668         use arguments from newtype.
15669
15670 2002-02-13  Eric Christopher  <echristo@redhat.com>
15671
15672         * config/mips/mips.c (override_options): Add check for march/mipsX
15673         on the same command line. Fix error message in cpu processing.
15674         Remove architecture and ISA checks.
15675
15676 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
15677
15678         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
15679
15680         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
15681
15682 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
15683
15684         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
15685         alternatives.
15686         ("*movv8hi_internal1"): Same.
15687         ("*movv16qi_internal1"): Same.
15688         ("*movv4sf_internal1"): Same.
15689
15690         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
15691         not push_reload for altivec modes.
15692
15693 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
15694
15695         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
15696         all RTEMS targets including removal of #includes from config/*/rtems*.h
15697         file and adding them to tm_file setting. Added xm_defines=POSIX to
15698         many targets.
15699         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
15700         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
15701         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
15702         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
15703         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
15704         config/m68k/rtemself.h: Ditto.
15705         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
15706         config/mips/rtems64.h: Ditto.
15707         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
15708         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
15709         Ditto.
15710         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
15711         config/sparc/rtemself.h: Ditto.
15712         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
15713         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
15714         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
15715         more like arm-elf.
15716         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
15717         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
15718         target made more similar to i386-elf.
15719         * config/i386/t-rtems-i386: Added soft float support and multilibs.
15720         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
15721         be similar to config/m68k/t-m68kelf.
15722         * gthr-rtems.h: Encapsulate with extern "C" for C++.
15723
15724 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
15725
15726         * regmove.c (kill_value): Handle subregs.
15727
15728 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
15729
15730         * i386.md (mul patterns): Allow memory operand to be first;
15731         add expanders where needed; fix constraints.
15732         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
15733         Allow memory operand to be the first.
15734
15735         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
15736         operands.
15737
15738 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15739
15740         PR c/5681:
15741         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
15742         GET_MODE (x).
15743
15744 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15745
15746         PR optimization/5547:
15747         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
15748         all valid IA-32 address modes involving non-scaled %ebx and
15749         GOT/GOTOFF as displacement.
15750
15751 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
15752
15753         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
15754         after emitting ltorg insns.
15755
15756         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
15757         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
15758         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
15759         *abssf2): Fix "op_type" attribute.
15760
15761 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
15762
15763         * mkconfig.sh: Avoid using a subshell redirect.
15764         ($output.T): Change to $(output)T.
15765         (ENABLE_NLS): Remove unneeded undef.
15766
15767         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
15768         * config/alpha/x-vms (libsubdir): Define.
15769
15770         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
15771         register frame procedures. Optimize retrieving context.
15772
15773         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
15774         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
15775         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
15776
15777 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15778
15779         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
15780         Make same change as for find_base_value.
15781
15782 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15783
15784         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
15785         of QImode and SImode.
15786
15787 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15788
15789         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
15790         length computation of movsi.
15791         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
15792
15793 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15794
15795         * config/h8300/h8300.md (subqi3): Tighten the predicate for
15796         operands[2] to register_operand.
15797
15798 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
15799
15800         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
15801
15802 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
15803
15804         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
15805         for altivec_lvx* and altivec_stvx*.
15806         ("*movv4si_internal"): Add constraint for loading from GPRs.
15807         ("*movv8hi_internal1"): Same.
15808         ("*movv16qi_internal1"): Same.
15809         ("*movv4sf_internal1"): Same.
15810
15811         * config/rs6000/rs6000.c (altivec_register_operand): New.
15812
15813         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
15814         altivec_register_operand.
15815
15816 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
15817
15818         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
15819         handle SYMBOL_REF.
15820
15821 2002-02-13  Stan Shebs  <shebs@apple.com>
15822
15823         * c-typeck.c (digest_init): Handle vectors.
15824         (really_start_incremental_init): Same.
15825         (pop_init_level): Same.
15826         (process_init_element): Same.
15827
15828         * varasm.c (output_constant): Same.
15829
15830         * expr.c (clear_storage): Same.
15831         (store_constructor): Same.
15832
15833 2002-02-12  Eric Christopher  <echristo@redhat.com>
15834
15835         * explow.c (hard_function_value): Add comment explaining
15836         signed/unsigned comparison.
15837
15838 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
15839
15840         * jump.c (never_reached_warning): Add finish argument.
15841         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
15842         real insn after end.
15843         * rtl.h (never_reached_warning): Adjust prototype.
15844         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
15845         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
15846         never_reached_warning.
15847
15848 2002-02-12  Graham Stott  <grahams@redhat.com>
15849
15850         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
15851
15852 2002-02-12  Kazu Hirata  <kazu@hxi.com>
15853
15854         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
15855         logical shifts on H8/300.
15856         (shift_alg_si): Improve several shifts on H8/300.
15857         (get_shift_alg): Likewise.
15858
15859 2002-02-12  Graham Stott  <grahams@redhat.com>
15860
15861         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
15862
15863 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15864
15865         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
15866         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
15867
15868 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
15869
15870         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
15871         non-CONST_INT through default_assemble_integer.
15872         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
15873         <case 8>: Abort for CONST_DOUBLE.
15874
15875 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15876
15877         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
15878         is specified.
15879         * config/pa/pa-linux.h (LIB_SPEC): Delete.
15880         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
15881
15882 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
15883
15884         * config/stormy16/stormy16.md (zero_extendqihi2): New.
15885
15886 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
15887
15888         * regrename.c (regrename_optimize): Don't accept a
15889         part-clobbered register if the replaced register is not part
15890         clobbered.
15891
15892         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
15893         take padding into account when computing the argument value.
15894
15895         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
15896
15897         * combine.c (try_combine): Apply substitutions in
15898         CALL_INSN_FUNCTION_USAGE too.
15899
15900 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
15901
15902         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
15903         __builtin_altivec_abs*.
15904         (bdesc_abs): New.
15905
15906         * config/rs6000/rs6000.h (rs6000_builtins): Add
15907         ALTIVEC_BUILTIN_ABS*.
15908
15909         * config/rs6000/altivec.h: Use const char for builtins expecting
15910         literals.
15911         (vec_abs): New versions for C and C++.
15912         (vec_abss): Same.
15913
15914 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15915
15916         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
15917         using Pmode.
15918
15919 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15920
15921         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
15922         constant definition from h8300.md.
15923         (FRAME_POINTER_REGNUM): Likewise.
15924         * config/h8300/h8300.md (define_constants): Add FP_REG.
15925
15926 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15927
15928         * config/h8300/h8300.c (print_operand): Remove redundant code.
15929
15930 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15931
15932         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
15933         * config/h8300/h8300.c (byte_reg): Make it static.
15934
15935 2002-02-10  Richard Henderson  <rth@redhat.com>
15936
15937         PR c/5623
15938         * c-typeck.c (incomplete_type_error): Handle flexible array members.
15939
15940 2002-02-10  Richard Henderson  <rth@redhat.com>
15941
15942         PR c++/5624
15943         * tree.c (append_random_chars): Don't abort if main_input_filename
15944         does not exist.
15945
15946 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
15947
15948         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
15949
15950 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15951
15952         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
15953         (pushhi1): Likewise.
15954
15955 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15956
15957         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
15958         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
15959
15960 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
15961
15962         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
15963         remove MASK_VIS.
15964         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
15965
15966 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15967
15968         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
15969         a half of an SImode register on H8/300.
15970
15971 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
15972
15973         * i386.md (movdi_2): Add missing '!'.
15974
15975 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15976
15977         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
15978         definitions.
15979
15980 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15981
15982         * config/h8300/h8300.md (length): Correct the distance valid
15983         for the short branch.
15984
15985 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15986
15987         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
15988
15989 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
15990
15991         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
15992         registers in SImode.
15993         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
15994         part-clobbered.
15995
15996         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
15997         patch.
15998
15999         Contribute sh64-elf.
16000         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
16001         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
16002         (sh_cannot_modify_jumps_p): New function.
16003         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
16004         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
16005         (sh_ms_bitfield_layout_p): New function.
16006         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
16007                     Zack Weinberg  <zack@codesourcery.com>
16008         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
16009         expand_simple_binop instead of expand_binop.
16010         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
16011         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
16012         use of .quad and .uaquad.
16013         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
16014         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
16015         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16016         * config/sh/sh.md (movdi_const, movdi_const_32bit,
16017         movdi_const_16bit): Make sure all CONSTs have modes.
16018         (sym2PIC): Ditto, but by adjusting all callers.
16019         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
16020         if the prologue calls the SHmedia argument decoder or register
16021         saver.
16022         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16023         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
16024         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
16025         (sh_expand_epilogue): Don't emit USE of return target register.
16026         (prepare_move_operands): Legitimize DImode PIC addresses.
16027         (sh_media_register_for_return): Skip tr0, used to initialize the
16028         PIC register.
16029         (sh_expand_prologue): Remove explicit USE of return register.
16030         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
16031         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
16032         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
16033         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
16034         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
16035         EXTRA_CONSTRAINT_T.
16036         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
16037         (MOVI_SHORI_BASE_OPERAND_P): New.
16038         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
16039         (EXTRA_CONSTRAINT_T): Define in terms of them.
16040         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
16041         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
16042         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
16043         alternatives supporting TARGET_REGS.
16044         (UNSPEC_GOTPLT): New constant.
16045         (movdi split): Move incrementing of LABEL_NUSES...
16046         (movdi_const, movdi_const_32bit): Here.  Use
16047         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
16048         (movdi_const_16bit): New.
16049         (call, call_value) [flag_pic]: Use GOTPLT.
16050         (call_pop, call_value_pop): New expands.
16051         (call_pop_compact, call_pop_rettramp): New insns.
16052         (call_value_pop_compact, call_value_pop_rettramp): New insns.
16053         (sibcall) [flag_pic]: Use GOT.
16054         (builtint_setjmp_receiver): Remove bogus, unused expand.
16055         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
16056         (*pt, *ptb, ptrel): New insns.
16057         (sym2GOT): Handle DImode GOT.
16058         (sym2GOTPLT, symGOTPLT2reg): New expands.
16059         (sym2PIC): New expand.
16060         (shcompact_return_tramp): Use GOTPLT to return trampoline.
16061         (shcompact_return_tramp_i): Use return register explicitly.
16062         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
16063         disable flag_reorder_blocks.
16064         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
16065         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
16066         clobbers, for clarity.
16067         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
16068         restoring of r0 in macl as MAYBE_DEAD.
16069         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
16070         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
16071         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
16072         alter_subreg all over.
16073         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
16074         reload, instead of emitting instructions that would require
16075         reloading.
16076         (casesi_load_media): Add missing modes.
16077         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
16078         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
16079         as used if the argument decoder is called.
16080         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
16081         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
16082         Pmode, then extend it to DImode if necessary.
16083         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
16084         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
16085         constants in FPU-enabled SHmedia, let them be loaded from memory.
16086         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
16087         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
16088         Adjust whitespace in assembly output templates.
16089         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
16090         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
16091         mode of if_then_else.
16092         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
16093         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
16094         sh.h.
16095         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
16096                     Joern Rennecke <amylaar@redhat.com>
16097         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
16098         (SUBTARGET_CPP_PTR_SPEC): New.
16099         (SUBTARGET_CPP_SPEC): Remove.
16100         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
16101         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
16102         Fix typo in previous checkin.
16103         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
16104         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
16105         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
16106                     Alexandre Oliva  <aoliva@redhat.com>
16107         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
16108         what single FP register can hold for SHmedia target.
16109         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
16110                     Alexandre Oliva  <aoliva@redhat.com>
16111         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
16112         Do not split into SUBREG.
16113         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
16114         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
16115         and added new functions as specified in SH5 ABI r9.
16116         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
16117         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
16118         8-byte boundary.
16119         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
16120         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
16121         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
16122         and consttable_window_ends.
16123         2001-06-03  Graham Stott  <grahams@redhat,com>
16124         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
16125         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
16126         * config/sh/sh.c (print_operand): Handle floating-point pair,
16127         vector and matrix registers.
16128         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
16129         vector modes into account.
16130         * config/sh/sh.md (movv2sf): Split move between registers into
16131         movdf.
16132         (movv4sf, movv16sf): Introduce insns that get split only after
16133         reload.
16134         * config/sh/shmedia.h: Fix Copyright dates.
16135         * config/sh/ushmedia.h: Likewise.  Move loop counter
16136         declarations into conditionals that uses them.
16137         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
16138         loop boundary.
16139         * config/sh/sshmedia.h: Fix Copyright dates.
16140         (sh_media_PUTCFG): Fix constraints.
16141         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
16142         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
16143         ptrmemfunc_vbit_in_delta for SH5.
16144         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
16145         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
16146         * invoke.texi: Likewise.
16147         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
16148         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
16149         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
16150         GCC_pop_shmedia_regs_nofpu): New global symbols.
16151         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
16152         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
16153         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
16154         compact function with nonlocal labels.
16155         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
16156         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
16157         (initial_elimination_offset): Account for their stack space.
16158         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
16159         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
16160         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
16161         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
16162         least one of the operands to be a register.
16163         (movv2sf): Likewise.  Renamed to movv2sf_i.
16164         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
16165         prepare_move_operands() before emitting SHmedia insns.
16166         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
16167         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
16168         Don't save nor initialize r12.  Don't mis-align the stack.
16169         Pad the code with a nop.
16170         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
16171         stack.
16172         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
16173         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
16174         [__SHMEDIA__]: Implement.
16175         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
16176         * config/sh/sh.md: Set latency of `pt' closer to reality.
16177         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
16178         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
16179         Set move, load and store type attributes.
16180         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
16181         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
16182         profiling.
16183         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
16184         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
16185         * config/sh/sh.c (sh_media_register_for_return): New function.
16186         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
16187         branch-target register.
16188         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
16189         * config/sh/sh.md (return_media_i): Use any call-clobbered
16190         branch-target register.
16191         (return_media): If r18 wasn't copied in the prologue, copy it
16192         here.
16193         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
16194         Clear class FP0_REGS.
16195         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
16196         from elf.h.
16197         2001-03-08  DJ Delorie  <dj@redhat.com>
16198         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
16199         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
16200         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
16201         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
16202         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
16203         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
16204         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
16205         return value correctly for call_cookie.
16206         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
16207         * config/sh/crt1.asm (start): Modified so as to call
16208         ___setup_argv_and_call_main.
16209         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
16210         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
16211         SHmedia mode.
16212         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
16213         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
16214         (STRIP_NAME_ENCODING): Use it.
16215         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
16216         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
16217         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
16218         prepare_scc_operands().
16219         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
16220         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
16221         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
16222         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
16223         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
16224         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
16225         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
16226         used in shcompact_incoming_args.
16227         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
16228         change.
16229         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
16230         mode.
16231         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
16232         Adjust accordingly.
16233         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
16234         Simplify.  Adjust.  Add sanity check.
16235         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
16236         FPU_SINGLE_BIT.
16237         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
16238         TARGET_SHCOMPACT.
16239         (udivsi3, divsi3): Use them.
16240         (force_mode_for_call): New insn.
16241         (call, call_value, sibcall_value): Emit it before SHcompact
16242         calls.
16243         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
16244         * config/sh/sh.md (call, call_value, sibcall): Make sure the
16245         call cookie is non-NULL before taking its value.
16246         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
16247         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
16248         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
16249         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
16250         block.
16251         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
16252         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
16253         temporary for stack adjusts.  Use MACL and MACH to pass
16254         arguments to shcompact_incoming_args.
16255         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
16256         clobber r1.
16257         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
16258         (nested_trampoline): Load static chain address into r1.
16259         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
16260         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
16261         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
16262         fp_arith_reg_operand().
16263         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
16264         * config/sh/sh.md (casesi): Sign-extend the first two operands,
16265         and use signed compares for them.
16266         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
16267         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
16268         ones properly aligned.
16269         (find_barrier): Account for extra alignment needed for 8-byte wide
16270         constants.
16271         (machine_dependent_reorg): Require a label for the second 4-byte
16272         constant after an 8-byte one.
16273         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
16274         change.
16275         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
16276         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
16277         last_float when switching float modes.
16278         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
16279         auto-increment for general-purpose registers.
16280         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
16281         result.
16282         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
16283         for stack adjust.
16284         * config/sh/sh.c (sh_builtin_saveregs): Support using all
16285         registers for varargs.
16286         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
16287         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
16288         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
16289         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
16290         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
16291         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
16292         call_cookie accordingly.
16293         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
16294         (SHCOMPACT_BYREF): Likewise.
16295         (SHCOMPACT_FORCE_ON_STACK): New macro.
16296         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
16297         (sh_builtin_saveregs): Likewise.
16298         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
16299         shcompact_incoming_args): Use new shift values.  Support
16300         sequences of consecutive and non-consecutive pushes/pops.
16301         * config/sh/sh.md (return): Don't explicitly use PR_REG.
16302         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
16303         * config/sh/sh.h (TEXT_SECTION): Define.
16304         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
16305         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
16306         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
16307         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
16308         return values on FPU-enabled SHmedia.
16309         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
16310         FPU-enabled SHmedia.
16311         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
16312         value is returned in a non-FP reg and is not returned by
16313         reference.
16314         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
16315         jump_ind.
16316         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
16317         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
16318         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
16319         quad-aligned to be passed by callee-copy reference.
16320         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
16321         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
16322         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
16323         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
16324         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
16325         copying low-numbered FP regs to r7 and r8.
16326         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
16327         FP regs to general-purpose regs only if the copy was passed on the
16328         stack.
16329         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
16330         copying FP reg to r9.
16331         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
16332         copy FP regs to general-purpose regs only in outgoing calls.
16333         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
16334         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
16335         HOST_WIDE_INT.
16336         * config/sh/sh.h (struct sh_args): Document all fields.
16337         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
16338         passed partially on the stack should not consider making
16339         sibcalls.
16340         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
16341         stack_regs only for incoming calls.  When passing FP args,
16342         make sure there are FP regs available before modifying
16343         call_cookie.
16344         (SHCOMPACT_BYREF): Pass double args in general-purpose
16345         registers by reference.
16346         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
16347         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
16348         attempt to generate sibcalls if the caller got any arguments
16349         by reference.
16350         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
16351         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
16352         to 8-byte boundaries.
16353         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
16354         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
16355         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
16356         stored in the stack.
16357         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
16358         for the offsets to have the ISA bit set.
16359         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
16360         invocation.  Use beq instead of bgt to mark end of sequence of
16361         loads.
16362         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
16363         bgt to mark end of sequence of stores.
16364         * config/sh/sh.c (arith_operand): Don't check whether
16365         CONST_OK_FOR_J for now.
16366         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
16367         instead of long for conversion.
16368         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
16369         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
16370         before passing it to fprintf.
16371         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
16372         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
16373         Call set_fpscr before reading/writing SR.
16374         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
16375         Call set_fpscr.
16376         * config/sh/lib1funcs.asm: Add `.align 2' directives before
16377         SHmedia code.
16378         (FMOVD_WORKS): Define on SH5 with FPU.
16379         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
16380         setting.
16381         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
16382         _fpscr_values.
16383         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
16384         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
16385         address.
16386         (ia_main_table): Ditto.
16387         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
16388         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
16389         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
16390         the definitions from sh.h.
16391         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
16392         TARGET_SH5.
16393         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
16394         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
16395         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
16396         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
16397         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
16398         Increment LABEL_NUSES.
16399
16400         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
16401         TARGET_SH5.
16402         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
16403         defined.
16404         * config/sh/elf.h (SIZE_TYPE): Likewise.
16405         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
16406         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
16407         shcompact_incoming_args): Load switch table addresses using
16408         datalabel.
16409         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
16410         (NO_BUILTIN_SIZE_TYPE): Define.
16411         (SIZE_TYPE): Don't define.
16412         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
16413         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
16414         definition of __SH5__=32 for -m5-compact-nofpu.
16415         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
16416         ADDR_DIFF_VEC.
16417         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
16418         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
16419         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
16420         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
16421         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
16422         (INSN_LENGTH_ALIGNMENT): Likewise.
16423         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
16424         * config/sh/sh.md (call, call_value, sibcall): Simplify
16425         copying of non-branch-target register.
16426         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
16427         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
16428         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
16429         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
16430         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
16431         floating-point values as structs.
16432         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
16433         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
16434         general-purpose register.
16435         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
16436         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
16437         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
16438         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
16439         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
16440         (ENCODE_SECTION_INFO): Enclose variables and constants in
16441         DATALABEL unspecs.
16442         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
16443         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
16444         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
16445         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
16446         only for LABEL_REFs.  For SYMBOL_REFs, prepend
16447         SH_DATALABEL_ENCODING to the symbol name.
16448         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
16449         convert_mode().
16450         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
16451         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
16452         UNSPEC_DATALABEL.
16453         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
16454         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
16455         (DATALABEL_REF_P): Don't require CONST.
16456         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
16457         REL label.
16458         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
16459         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
16460         right.
16461         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
16462         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
16463         Use shallow_copy_rtx and PUT_MODE to change the mode of
16464         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
16465         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
16466         on SHmedia using GENERAL_REGs.
16467         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
16468         bltu_media_i): Fix reversion of conditions.
16469         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
16470         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
16471         * config/sh/sh.c (output_far_jump): Save r13 in macl.
16472         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
16473         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
16474         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
16475         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
16476         (GCC_nested_trampoline): Likewise.
16477         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
16478         * config/sh/sh.c (gen_datalabel_ref): Define.
16479         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
16480         (INITIALIZE_TRAMPOLINE): Likewise.
16481         (TRAMPOLINE_ADJUST_ADDRESS): Define.
16482         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
16483         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
16484         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
16485         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
16486         (ic_invalidate): Adjust for SH5.
16487         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
16488         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
16489         _nested_trampoline.
16490         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
16491         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
16492         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
16493         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
16494         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
16495         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
16496         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
16497         * config/sh/sh.c (target_reg_operand): Match only target-branch
16498         registers and pseudos that aren't virtual registers.
16499         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
16500         Copy operands that don't match target_reg_operand to pseudos.
16501         (call_media, call_value_media, sibcall_media): Use
16502         target_reg_operand instead of target_operand.
16503         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
16504         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
16505         * config/sh/sh.c (target_reg_operand): Match hardware registers
16506         other than branch-target registers.
16507         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
16508         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
16509         (fpscr_values) [SH5 == 32]: Define.
16510         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
16511         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
16512         Handle function addresses coming in SUBREGs.
16513         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
16514         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
16515         shcompact_return_trampoline): Use datalabel where appropriate.
16516         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
16517         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
16518         general-purpose register to copy one branch-target register to
16519         another.
16520         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
16521         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
16522         SYMBOL_REFs with VOIDmode.
16523         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
16524         bltu_media_i): New insns.
16525         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
16526         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
16527         (INIT_CUMULATIVE_ARGS): Likewise.
16528         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
16529         * machmode.def (V16SFmode): New mode.
16530         * c-common.c (type_for_mode): Support V2SF and V16SF.
16531         * tree.c (build_common_tree_nodes_2): Likewise.
16532         * tree.h (tree_index): Likewise.
16533         * calls.c (emit_call_1): Take args_so_far.  Adjust all
16534         callers.  Introduce CALL_POPS_ARGS.
16535         * tm.texi (CALL_POPS_ARGS): Document.
16536         * config/sh/crt1.asm: Implement in SHmedia mode.
16537         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
16538         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
16539         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
16540         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
16541         Implement divsi and udivsi in SHmedia mode.  Introduce
16542         SHcompact trampolines.
16543         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
16544         only in SHmedia64.
16545         (regno_reg_class): Rewrite.
16546         (fp_reg_names): Remove.
16547         (sh_register_names, sh_additional_register_names): New.
16548         (print_operand): Added `u'.  Support SUBREGs in addresses.
16549         Add parentheses around shifted CONSTs.
16550         (output_file_start): Output .mode and .abi directives.
16551         (shiftcosts, addsubcosts, multcosts): Adjust.
16552         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
16553         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
16554         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
16555         bytes, not registers.  Take into account the need for the
16556         SHcompact incoming args trampoline.  Adjust all callers.
16557         (sh_expand_prologue): Take stack_regs into account.  Call
16558         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
16559         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
16560         stack aligned as per SH5 ABI.
16561         (sh_builtin_saveregs): Support SH5 ABI.
16562         (sh_build_va_list, sh_va_start): Likewise.
16563         (initial_elimination_offset): Take alignment into account.
16564         Compute location of PR according to the SH5 stack frame.
16565         (arith_reg_operand): Reject branch-target registers.
16566         (shmedia_6bit_operand): New.
16567         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
16568         (target_reg_operand): Match DImode only.  Accept SUBREGs.
16569         (target_operand): New.
16570         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
16571         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
16572         SIBCALL_REGS for SHmedia.
16573         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
16574         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
16575         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
16576         (TARGET_SWITCHES): New SH5 flags.
16577         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
16578         VALID_REGISTER_P to disable unsupported registers.
16579         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
16580         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
16581         (FUNCTION_ARG_PADDING): Define.
16582         (FASTEST_ALIGNMENT): Adjust.
16583         (SH_REGISTER_NAMES_INITIALIZER): New.
16584         (sh_register_names): Declare.
16585         (DEBUG_REGISTER_NAMES): Define.
16586         (REGISTER_NAMES): Define based on sh_register_names.
16587         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
16588         (sh_additional_register_names): Declare.
16589         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
16590         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
16591         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
16592         (REGISTER_NATURAL_MODE): Define.
16593         (FIRST_PSEUDO_REGISTER): Adjust.
16594         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
16595         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
16596         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
16597         (VECTOR_MODE_SUPPORTED_P): Define.
16598         (REG_CLASS_CONTENTS): Adjust.
16599         (SMALL_REGISTER_CLASSES): Adjust.
16600         (REG_ALLOC_ORDER): Adjust.
16601         (INDEX_REG_CLASS): Adjust.
16602         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
16603         (CONST_OK_FOR_LETTER_P): Adjust.
16604         (PREFERRED_RELOAD_CLASS): Adjust.
16605         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
16606         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
16607         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
16608         (FIRST_FP_PARM_REG): Adjust.
16609         (CALL_POPS_ARGS): Define.
16610         (FUNCTION_ARG_REGNO_P): Adjust.
16611         (struct sh_args): New fields.
16612         (GET_SH_ARG_CLASS): Adjust.
16613         (INIT_CUMULATIVE_ARGS): Adjust.
16614         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
16615         (FUNCTION_ARG_ADVANCE): Adjust.
16616         (FUNCTION_ARG): Adjust.
16617         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
16618         (FUNCTION_ARG_CALLEE_COPIES): Define.
16619         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
16620         (STRICT_ARGUMENT_NAMING): Define.
16621         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
16622         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
16623         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
16624         (SETUP_INCOMING_VARARGS): Adjust.
16625         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
16626         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
16627         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
16628         (SUBREG_OK_FOR_INDEX_P): Adjust.
16629         (EXTRA_CONSTRAINT_S): Update.
16630         (EXTRA_CONSTRAINT_T): New.
16631         (EXTRA_CONSTRAINT): Adjust.
16632         (GO_IF_LEGITIMATE_INDEX): Adjust.
16633         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
16634         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
16635         (MOVE_MAX): Adjust.
16636         (MAX_MOVE_MAX): Define.
16637         (Pmode): Adjust.
16638         (CONST_COSTS): Adjust.
16639         (REGISTER_MOVE_COST): Adjust.
16640         (BRANCH_COST): Adjust.
16641         (TEXT_SECTION_ASM_OP): Adjust.
16642         (DBX_REGISTER_NUMBER): Adjust.
16643         (ASM_OUTPUT_DOUBLE_INT): New.
16644         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
16645         (PREDICATE_CODES): Adjust.
16646         (PROMOTE_MODE): Adjust.
16647         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
16648         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
16649         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
16650         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
16651         (DR0_REG, DR2_REG, DR4_REG): Renumber.
16652         (TR0_REG, TR1_REG, TR2_REG): New.
16653         (XD0_REG): Renumber.
16654         (UNSPEC_COMPACT_ARGS): New.
16655         (type): Added pt and ptabs.
16656         (length): Default to 4 on SHmedia.  Default pt length to 12
16657         and     20 on SHmedia32 and SHmedia64, respectively.
16658         (pt): New function unit.
16659         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
16660         Add whitespace between operands of SHmedia instructions.
16661         (movdicc): Fix.
16662         (adddi3_media, addsi3_media): Adjust constraints.
16663         (subsi3) [SHmedia]: Force operand 1 into a register.
16664         (udivsi3_i1_media, udivsi3_i4_media): New.
16665         (udivsi3): Support SHmedia.
16666         (divsi3_i1_media, divsi3_i4_media): New.
16667         (divsi3): Support SHmedia.
16668         (anddi3, iordi3, xordi3): Adjust constraints.
16669         (zero_extendhidi2, zero_extendqidi2): New.
16670         (extendsidi2, extendhidi2, extendqidi2): New.
16671         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
16672         (pop_e, pop_fpul, pop_4): Likewise.
16673         (movsi_media): Support FP and BT registers.
16674         (movsi_media_nofpu): New.  Adjust splits to DImode.
16675         (lduw, ldub): Renamed to zero_extend* above.
16676         (movqi_media): Fix typo.
16677         (movdi_media): Support FP and BT registers.
16678         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
16679         (movdi_const_32bit): New.
16680         (shori_media): Require immediate operand.  Use `u' for output.
16681         (movdf_media, movsf_media): Simplified.
16682         (movdf_media_nofpu, movsf_media_nofpu): New.
16683         (movdf, movsf): Adjust
16684         (movv2sf, movv2sf, movv16sf): New.
16685         (beq_media, beq_media_i): Adjust constraints.  Don't use
16686         scratch BT register.
16687         (bne_media, bne_media_i): Likewise.
16688         (bgt_media, bgt_media_i): Likewise.
16689         (bge_media, bge_media_i): Likewise.
16690         (bgtu_media, bgtu_media_i): Likewise.
16691         (bgeu_media, bgeu_media_i): Likewise.
16692         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
16693         bunordered): Emit jump insn.  Force operands to registers when
16694         needed.
16695         (jump_media, jump): Simplify.
16696         (call_compact, call_compact_rettramp): New.
16697         (call_value_compact, call_value_compact_rettramp): New.
16698         (call_media, call_value_media): Simplify.
16699         (sibcall_compact, sibcall_media): New.
16700         (call, call_value): Adjust for SHmedia and SHcompact.
16701         (sibcall, sibcall_value, untyped_call): Likewise.
16702         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
16703         (indirect_jump): Adjust for SHmedia.
16704         (casesi_jump_media): New.
16705         (nop): Re-enable for SHmedia.
16706         (call_site): Restrict to SH1.
16707         (casesi): Adjust for SHmedia.
16708         (casesi_shift_media, casesi_load_media): New.
16709         (return): Explicitly use PR register.  Call return trampoline
16710         on SHcompact.
16711         (return_i): Explicitly use PR register.
16712         (shcompact_return_tramp, shcompact_return_tramp_i): New.
16713         (return_media): Adjust.
16714         (shcompact_incoming_args): New.
16715         (epilogue): Adjust.
16716         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
16717         (movstrsi): Disable on SH5.
16718         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
16719         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
16720         (subsf3, subsf3_media): Likewise.
16721         (mulsf3, mulsf3_media, mac_media): Likewise.
16722         (divsf3, divsf3_media): Likewise.
16723         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
16724         (floatsisf2, fux_truncsfsi2): Likewise.
16725         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
16726         constraints.
16727         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
16728         (cmpunsf_media, cmpsf): Likewise.
16729         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
16730         (abssf2, abssf2_media): Likewise.
16731         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
16732         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
16733         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
16734         (floatsidf2, fix_truncdfsi2): Likewise.
16735         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
16736         constraints.
16737         (cmpeqdf_media, cmpgtdf_media): Likewise.
16738         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
16739         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
16740         (absdf2, absdf2_media): Likewise.
16741         (extendsfdf2, extendsfdf2_media): Likewise.
16742         (truncsfdf2, truncsfdf2_media): Likewise.
16743         * config/sh/sh64.h: New file.
16744         * config/sh/t-sh64: New file.
16745         * config/sh/shmedia.h: New file.
16746         * config/sh/ushmedia.h: New file.
16747         * config/sh/sshmedia.h: New file.
16748         * configure.in: Added sh64-*-elf.
16749         * configure: Rebuilt.
16750         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
16751         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
16752         (reg_class_from_letter): Use `b' for TARGET_REGS.
16753         (print_operand): Support `%M', `%m', `AND' and
16754         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
16755         (andcosts): Adjust for SHmedia.
16756         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
16757         Likewise.
16758         (target_reg_operand): New function.
16759         * config/sh/sh-protos.h (target_reg_operand): Declare.
16760         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
16761         FP registers on SH5.
16762         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
16763         on SH4.
16764         (TARGET_REGISTER_P): New macro.
16765         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
16766         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
16767         (EXTRA_CONSTRAINT_S): New macro.
16768         (EXTRA_CONSTRAINT): Adjust.
16769         (FLOAT_TYPE_SIZE): Define to 32.
16770         (Pmode): DImode on SHmedia.
16771         (CONST_COSTS): Adjust for SHmedia literals.
16772         (PREDICATE_CODES): Added target_reg_operand.
16773         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
16774         * config/sh/sh.md: Remove all attrs from SHmedia insns.
16775         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
16776         (cmpdi): Accept SHmedia.
16777         (movdicc_false, movdicc_true): New insns.
16778         (movdicc): New expand.
16779         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
16780         no_new_pseudos.
16781         (addsi3_media): Match `S' constraint.
16782         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
16783         (negdi2): Expand for SHmedia.
16784         (one_cmpldi2): New expand.
16785         (zero_extendsidi2): Change from expand to insn.
16786         (extendsidi2): Add constraints.
16787         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
16788         LD/ST address.  Fix SI immediate loading split.
16789         (movhi_media, movqi_media, lduw, ldub): New insns.
16790         (movhi, movqi): Accept SHmedia.
16791         (shori_media, movdi_media): Relax input constraints.  Split
16792         symbolic constants.
16793         (movdf_media, movsf_media): New insn.  New split to movdi.
16794         (movdf, movsf): Match on SHmedia.
16795         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
16796         bgeu_media): New insns and splits.  New insns with `_i' suffix.
16797         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
16798         (bunordered): New expand.
16799         (jump_compact): Renamed from `jump'.
16800         (jump_media): New insn.
16801         (jump): New expand.
16802         (call_media, call_value_media): New insns.
16803         (call, call_value): Adjust.
16804         (indirect_jump_compact): Renamed from `indirect_jump'.
16805         (indirect_jump_media): New insn.
16806         (indirect_jump): New expand.
16807         (untyped_call, return): Accept SHmedia.
16808         (return_media): New insn.
16809         (prologue, epilogue, blockage): Accept SHmedia.
16810         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
16811         (sunordered): New expand.
16812         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
16813         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
16814         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
16815         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
16816         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
16817         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
16818         abssf2_media): New insns.
16819         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
16820         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
16821         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
16822         floatdidf2, floatsidf2_media, fix_truncdfdi2,
16823         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
16824         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
16825         absdf2_media): New insns.
16826         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
16827         (extendsfdf2_media, truncdfsf2_media): New insns.
16828         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
16829         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
16830         * config/sh/sh.h (CONST_OK_FOR_J): Document.
16831         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
16832         * config/sh/sh.md (adddi3): New expand.
16833         (adddi3_media, adddi3z_media): New insns.
16834         (adddi3_compact): Renamed from adddi3.
16835         (addsi3_media): Use add.l r63 to add constant zero.
16836         (subdi3): New expand.
16837         (subdi3_media): New insn.
16838         (subdi3_compact): Renamed from subdi3.
16839         (mulsidi3): New expand.
16840         (mulsidi3_media): New insn.
16841         (mulsidi3_compact): Renamed from mulsidi3.
16842         (umulsidi3): New expand.
16843         (umulsidi3_media): New insn.
16844         (umulsidi3_compact): Renamed from umulsidi3.
16845         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
16846         (ashlsi3, ashrsi3, lshrsi3): Use them.
16847         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
16848         (ashldi3, ashrdi3, lshrdi3): Use them.
16849         (zero_extendsidi2): New expand.
16850         (extendsidi2): New insn.
16851         (movsi_media): New insn.  Split to movdi to load constants.
16852         (movsi): Enable for shmedia.
16853         (movdi_media): New insn.  Use shori_media to load wide constants.
16854         (short_media): New insn.
16855         (movdi): Enable for shmedia.
16856         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
16857         * config/sh/sh.h (CPP_SPEC): Added `m5'.
16858         (SUBTARGET_CPP_SPEC): Added `!m5'.
16859         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
16860         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
16861         to all other SH variants.
16862         (TARGET_DEFAULT): Set to SH1_BIT.
16863         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
16864         (BITS_PER_WORD): Raise to 64 on shmedia.
16865         (MAX_BITS_PER_WORD): Change to 64.
16866         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
16867         (INT_TYPE_SIZE): Keep as 32.
16868         (UNITS_PER_WORD): Raise to 8 on shmedia.
16869         (MIN_UNITS_PER_WORD): Keep as 4.
16870         (POINTER_SIZE): Raise to 64 on shmedia.
16871         (CONST_OK_FOR_J): New macro.
16872         (CONST_OK_FOR_LETTER_P): Use it.
16873         (processor_type): Add PROCESSOR_SH5.
16874         * config/sh/sh.md: Conditionalize all expands, insns and
16875         splits to TARGET_SH1.
16876         (cpu): Added sh5.
16877         (addsi3_compact): Renamed from...
16878         (addsi3): Now an expand.
16879         (addsi3_media, subsi3_media): New insns.
16880         (subsi3): Don't negate constants with SHmedia.
16881
16882         * hooks.c: New file.
16883         * hooks.h: New file.
16884         * Makefile.in (HOOKS_H): New.
16885         (TARGET_DEF_H): Added $(HOOKS_H).
16886         (OBJS): Added hooks.o.
16887         (cfgcleanup.o, bb-reorder.o): Added target.h.
16888         (hooks.o): Added dependencies.
16889         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
16890         (TARGET_INITIALIZER): this.
16891         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
16892         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
16893         * bb-reorder.c: Include target.h.
16894         (reorder_basic_blocks): Skip if cannot modify jumps.
16895         * cfgcleanup.c: Include target.h.
16896         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
16897
16898 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16899
16900         * config/mips/mips.md (casesi_internal, casesi_internal_di):
16901         Protect jump delay slot instructions with .set noreorder and
16902         .set nomacro.
16903
16904 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16905
16906         * config/mips/mips.md (casesi_internal_di): Calculate
16907         the index into the target offset table correctly.
16908
16909 2002-02-08  Richard Henderson  <rth@redhat.com>
16910
16911         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
16912         * final.c (output_addr_const): Accept and discard SUBREG.
16913         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
16914         mark them unknown instead.
16915         (simplify_subtraction): Handle RTX_UNKNOWN.
16916         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
16917
16918 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
16919
16920         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
16921
16922 2002-02-08  Richard Henderson  <rth@redhat.com>
16923
16924         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
16925
16926 2002-02-08  Andreas Jaeger  <aj@suse.de>
16927
16928         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
16929         * config/i386/t-linux64: New file.
16930
16931 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
16932
16933         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
16934         * c-parse.in (compstmt): Clear last_expr_type.
16935
16936 2002-02-07  Richard Henderson  <rth@redhat.com>
16937
16938         * loop.c (strength_reduce): Sink final_value when not
16939         eliminating a biv.
16940
16941 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
16942
16943         * config/sparc/freebsd.h: Fix mismatched spec {.
16944
16945 2002-02-07  Richard Henderson  <rth@redhat.com>
16946
16947         * cfgrtl.c: Include recog.h and insn-config.h.
16948         (keep_with_call_p): Fix general_operand invocation.
16949         * Makefile.in (cfgrtl.o): Update dependencies.
16950
16951 2002-02-07  Kazu Hirata  <kazu@hxi.com>
16952
16953         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
16954         comment.  Accept HImode only if TARGET_H8300.
16955
16956 2002-02-07  Eric Christopher  <echristo@redhat.com>
16957
16958         * config/mips/crtn.asm: Cleanup #ifdefs.
16959
16960 2002-02-07  Eric Christopher  <echristo@redhat.com>
16961
16962         * config/mips/crti.asm: Add changes for mips16. mips16 uses
16963         register 7 as RA instead of $31.
16964         * config/mips/crtn.asm: Ditto.
16965         * config/mips/mips.c (mips_move_2words): Add case for
16966         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
16967         (compute_frame_size): Fix typo.
16968         (save_restore_insns): Ditto.  Make documentation about using
16969         register $7 as return register more precise.
16970         (mips_expand_epilogue): Fix comment. Add code to work around not
16971         being able to add to the stack pointer directly.
16972         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
16973         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
16974         epilogue.
16975
16976 2002-02-07  Tom Rix  <trix@redhat.com>
16977
16978         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
16979         immediates in ldu and stdu DS opcode field.
16980         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
16981         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
16982         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
16983
16984 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
16985
16986         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
16987         offset for stack bias.
16988
16989 2002-02-07  H.J. Lu <hjl@gnu.org>
16990
16991         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
16992
16993 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
16994
16995         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
16996
16997 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
16998
16999         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
17000         * i386.c (x86_order_regs_for_local_alloc): New global function.
17001         * i386.h (REG_ALLOC_ORDER): CLeanup.
17002         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
17003
17004 2002-02-07  Richard Henderson  <rth@redhat.com>
17005
17006         PR optimization/2463
17007         * alias.c (find_base_value): Recall base values for fixed hard regs.
17008         * loop.c (loop_regs_update): Don't use single_set on non-insns.
17009
17010 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
17011
17012         * config/mips/mips.md (define_delay) [mips16]: Adjust required
17013         length.
17014
17015 2002-02-06  Richard Henderson  <rth@redhat.com>
17016
17017         PR c/5609
17018         * stmt.c (resolve_operand_name_1): Take more care with mixed
17019         named and unnamed operands.
17020
17021 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
17022             Jan Hubicka  <jh@suse.cz>
17023
17024         * loop.c (remove_constant_addition): Avoid clobbering a shared
17025         CONST expression.
17026
17027 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
17028
17029         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
17030         * config/s390/t-linux64: New file.
17031         * config/s390/libgcc-glibc.ver: New file.
17032
17033 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
17034
17035         * config/s390/linux64.h: Delete file.
17036         * config/s390/s390x.h: New file.
17037         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
17038         as target header file.
17039         * config/s390/linux.h (TARGET_VERSION): Define depending on
17040         DEFAULT_TARGET_64BIT.
17041         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
17042         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
17043         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
17044         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
17045         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
17046         (EXTRA_SPEC): New define.
17047         * config/s390/s390.h (TARGET_VERSION): Define depending on
17048         DEFAULT_TARGET_64BIT.
17049         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
17050
17051 2002-02-06  Jason Merrill  <jason@redhat.com>
17052
17053         * c-decl.c (finish_function): Warn about a non-void function with
17054         no return statement and no abnormal exit.
17055         (current_function_returns_abnormally): New variable.
17056         (start_function): Clear it.
17057         (struct c_language_function): Add returns_abnormally.
17058         (push_c_function_context): Save it.
17059         (pop_c_function_context): Restore it.
17060         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
17061         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
17062         an explicit return type.
17063         * c-tree.h: Declare current_function_returns_abnormally.
17064         (C_FUNCTION_IMPLICIT_INT): New macro.
17065         * c-typeck.c (build_function_call): Set it.
17066         (c_expand_return): Set current_function_returns_value even if the
17067         value is erroneous.
17068
17069 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
17070
17071         PR c/5420:
17072         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
17073         unsafe for reevaluation.
17074
17075 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
17076
17077         PR c/5482:
17078         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
17079         EXPR_STMT, but COMPOUND_STMT, recurse into it.
17080
17081 2002-02-06  Richard Henderson  <rth@redhat.com>
17082
17083         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
17084         be a general_operand.  Dest for function value must be a pseudo.
17085
17086 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
17087
17088         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
17089         as SYMBOL_REFs from the constant pool.
17090
17091 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
17092
17093         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
17094         passed by invisible reference.
17095
17096 2002-02-05  Richard Henderson  <rth@redhat.com>
17097
17098         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
17099
17100 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
17101
17102         Implement using "base addresses" in insn operands as default.
17103         * config/mmix/mmix.c (mmix_conditional_register_usage): if
17104         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
17105         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
17106         used to read the rtx value.
17107         (mmix_target_asm_function_epilogue): Fix spacing.
17108         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
17109         (mmix_legitimate_address): Ditto.
17110         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
17111         should be loaded with a GETA insn.  Don't allocate needless extra
17112         char for nul termination and fix misleading comment.
17113         (mmix_print_operand_address): Handle constants if
17114         TARGET_BASE_ADDRESSES.
17115         (mmix_output_register_setting): Use base addressing if
17116         TARGET_BASE_ADDRESSES and the number of insns is 3.
17117         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
17118         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
17119         to use R as constraint, add LDA to match s.
17120         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
17121         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
17122         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
17123         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
17124         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
17125         order with other fixed registers.
17126         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
17127         other parameter/call-clobbered registers.
17128         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
17129         -mbase-addresses, -mno-base-addresses.
17130         (MMIX Options): Ditto.
17131
17132 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17133
17134         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
17135
17136 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
17137
17138         * config/rs6000/altivec.h: Change elem to _S_elem.
17139
17140 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
17141
17142         * config/netbsd.h (WCHAR_TYPE): Define.
17143         (WCHAR_TYPE_SIZE): Ditto.
17144         (WINT_TYPE): Ditto.
17145         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
17146         (WCHAR_UNSIGNED): Ditto.
17147         (WCHAR_TYPE_SIZE): Ditto.
17148         (WINT_TYPE): Ditto.
17149         * config/arm/netbsd.h: Likewise.
17150         * config/i386/netbsd-elf.h: Likewise.
17151         * config/i386/netbsd.h: Likewise.
17152         * config/m68k/netbsd-elf.h: Likewise.
17153         * config/m68k/netbsd.h: Likewise.
17154         * config/ns32k/netbsd.h: Likewise.
17155         * config/sparc/netbsd.h: Likewise.
17156         * config/vax/netbsd.: Likewise.
17157
17158 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
17159
17160         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
17161         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
17162         (TARGET_INITIALIZER): this.
17163         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
17164         (BITFIELD_NBYTES_LIMITED): Markup fix.
17165         * tree.h (default_ms_bitfield_layout_p): Declare.
17166         (record_layout_info): Added prev_field.
17167         * tree.c (default_ms_bitfield_layout_p): New fn.
17168         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
17169         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
17170         * stor-layout.c: Include target.h.
17171         (start_record_layout): Initialize prev_field.
17172         (place_field): Handle MS bit-field layout, and disregard
17173         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
17174         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
17175         * Makefile.in (stor-layout.o): Adjust dependencies.
17176
17177 2002-02-05  Jason Merrill  <jason@redhat.com>
17178
17179         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
17180
17181 2002-02-05  Andreas Jaeger  <aj@suse.de>
17182
17183         * crtstuff.c: Fix comments.
17184
17185 2002-02-05  Richard Henderson  <rth@redhat.com>
17186
17187         PR fortran/3393
17188         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
17189         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
17190
17191         PR fortran/3392
17192         * config/mips/mips.c (function_arg): Handle TImode.
17193         (function_arg_advance): Likewise.
17194
17195 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
17196
17197         * config/rs6000/altivec.h (vec_step_help): Rename to
17198         __vec_step_help.
17199
17200 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
17201
17202         * config/rs6000/altivec.h: Fix typos.
17203
17204 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
17205
17206         * config/arm/netbsd.h: Correct a comment.
17207
17208 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
17209
17210         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
17211         building void typed builtins.
17212
17213         * config/rs6000/altivec.h (vec_ld*): Fix typos.
17214         (vec_step): Implement for C++.
17215
17216 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17217
17218         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
17219
17220 2002-02-04  Richard Henderson  <rth@redhat.com>
17221
17222         * combine.c (nonzero_bits): Re-introduce special case for
17223         sp/fp/ap wrt REGNO_POINTER_ALIGN.
17224
17225 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
17226
17227         * doc/extend.texi: Warn about unsupported usage of altivec
17228         builtins.
17229
17230         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
17231         (altivec_predicate_*): New.
17232
17233         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
17234         Add C++ version of vec_*() functions.
17235
17236         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
17237         (bdesc_2arg): Remove altivec predicates.
17238         (altivec_expand_builtin): Handle predicates.
17239         (altivec_init_builtins): Handle predicates.
17240         (altivec_expand_predicate_builtin): New.
17241
17242 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17243
17244         * pa.c (DO_FRAME_NOTES): Move forward.
17245         (store_reg): Revise handling of frame notes.
17246         (load_reg): Likewise.
17247         (set_reg_plus_d): Likewise.
17248         (hppa_expand_prologue): Likewise.
17249         (hppa_expand_epilogue): Likewise.
17250
17251 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17252
17253         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
17254
17255 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
17256
17257         PR c/4475, c++/3780:
17258         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
17259         * c-common.h (SWITCH_TYPE): Define.
17260         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
17261         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
17262         Rename spareness variable to sparseness.
17263         (expand_end_case_type): Renamed from expand_end_case, use orig_type
17264         if non-NULL instead of TREE_TYPE (orig_index).
17265         * tree.h (expand_end_case_type): Renamed from expand_end_case.
17266         (expand_end_case): Define using expand_end_case_type.
17267         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
17268         to expand_end_case_type.
17269         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
17270
17271 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17272
17273         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
17274         (BIGGEST_ALIGNMENT): Change to 128.
17275
17276 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17277
17278         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
17279
17280 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17281
17282         * pa.md (call_internal_reg_64bit): Remove unused variable.
17283
17284 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
17285
17286         * config/arm/arm.h (machine_function): Add uses_anonymous_args
17287         field.
17288         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
17289         * config/arm/arm.c (current_function_anonymous_args): Delete,
17290         replace uses with cfun->machine->uses_anonymous_args.
17291         (arm_reorg): Do not reset uses_anonymous_args.
17292
17293         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
17294         any geenral register.
17295
17296 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
17297
17298         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
17299         the entry block.
17300
17301 2002-02-04  Richard Henderson  <rth@redhat.com>
17302
17303         * combine.c (force_to_mode): Remove STACK_BIAS code.
17304         (nonzero_bits): Likewise.  Replace sp/fp special case with
17305         REGNO_POINTER_ALIGN.
17306
17307         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
17308         (HARD_FRAME_POINTER_REGNUM): New.
17309         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
17310         (FIXED_REGS, CALL_USED_REGS): Update.
17311         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
17312         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
17313         (HARD_REGNO_NREGS): Update for SFP.
17314         (STACK_POINTER_OFFSET): Include bias here ...
17315         (FIRST_PARM_OFFSET): ... not here.
17316         (STACK_BIAS): Remove.
17317         (INIT_EXPANDERS): New.
17318         (STARTING_FRAME_OFFSET): Do not include bias.
17319         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
17320         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
17321         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
17322         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
17323         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
17324         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
17325         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
17326         (MUST_SAVE_REGISTER): Likewise.
17327         (sparc_flat_function_prologue): Likewise.
17328         (sparc_flat_function_epilogue): Likewise.
17329         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
17330         (sparc_init_modes): SFP is GENERAL_REGS.
17331         (sparc_builtin_saveregs): SFP does not have bias applied.
17332
17333 2002-02-04  Richard Henderson  <rth@redhat.com>
17334
17335         * config/alpha/alpha.c (current_function_is_thunk): Don't check
17336         current_function_is_thunk.
17337         (alpha_sa_mask): Distinguish between current_function_is_thunk
17338         called from ASM_OUTPUT_MI_THUNK and not.
17339         (alpha_does_function_need_gp): Thunks always need gp.
17340         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17341         (alpha_output_mi_thunk_osf): New.
17342         * config/alpha/alpha-protos.h: Update.
17343         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
17344
17345 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
17346
17347         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
17348         function types, not when they're taken away.
17349
17350 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
17351
17352         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
17353         CODE_LABEL and jump table when replacing a table jump with a
17354         simple jump.
17355
17356 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
17357
17358         * config/s390/s390-protos.h (legitimize_la_operand,
17359         s390_secondary_input_reload_class, s390_plus_operand,
17360         s390_expand_plus_operand): Add prototypes.
17361
17362         config/s390/s390.c (s390_secondary_input_reload_class,
17363         s390_plus_operand, s390_expand_plus_operand): New functions.
17364
17365         (struct s390_address): New member 'pointer'.
17366         (s390_decompose_address): Compute it.
17367         (legitimate_la_operand_p): Use it.
17368         (legitimize_la_operand): New function.
17369         (movti, movdi, movdf splitters): Call it.
17370
17371         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
17372         (PREDICATE_CODES): Add s390_plus_operand.
17373
17374         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
17375         (la_ccclobber): Allow GENERAL_REGS as output operand.
17376
17377         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
17378         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
17379         (*la_64, *la_31, reload_indi, reload_insi): ... these.
17380
17381 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
17382
17383         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
17384         register names for regular asm () construct.
17385
17386 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
17387
17388         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
17389         registers.
17390
17391 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
17392
17393         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
17394         pat for recog.
17395
17396 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
17397
17398         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
17399         constant pool to be identical by string address and index.
17400
17401 2002-02-04  Anthony Green  <green@redhat.com>
17402
17403         * output.h (SECTION_OVERRIDE): Define.
17404         * varasm.c (named_section): Obey SECTION_OVERRIDE.
17405
17406 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
17407
17408         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
17409         by existing arm*-*-netbsd* (a.out) target.
17410         (ns32k-*-netbsdelf*): Likewise.
17411         (sparc-*-netbsdelf*): Likewise.
17412         (vax-*-netbsdelf*): Likewise.
17413
17414 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
17415
17416         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
17417         headers and libobjc headers.
17418
17419 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
17420
17421         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
17422         (_mingw.h): Remove duplicate include.
17423
17424 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
17425
17426         * config.gcc: Set cpu_type to m68k for 68010, as well.
17427         (m68010-*-netbsdelf*): New...
17428         (m68k*-*-netbsdelf*): ...targets.
17429         * config/m68k/netbsd-elf.h: New file.
17430
17431 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17432
17433         * config/h8300/h8300.c (hand_list): Move inside function_arg.
17434
17435 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17436
17437         * config/h8300/h8300.c (h8_push_ops): Move inside
17438         h8300_init_once.
17439         (h8_pop_ops): Likewise.
17440         (h8_move_ops): Likewise.
17441
17442 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17443
17444         * config/h8300/h8300.c (os_task): Make it static.
17445         (monitor): Likewise.
17446         (pragma_saveall): Likewise.
17447
17448 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
17449
17450         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
17451         constant is a valid sign-extension for Pmode.
17452
17453 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17454
17455         * config/h8300/h8300.c: Fix formatting.
17456
17457 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17458
17459         * config/h8300/h8300.md: Fix formatting.
17460
17461 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17462
17463         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
17464         predicates of operands[1].  Split the patterns for each
17465         processor variant.
17466
17467 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17468
17469         * config/h8300/h8300.md (xor patterns): Tighten the predicates
17470         of operands[1] to register_operand.
17471
17472 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
17473
17474         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
17475         * cpphash.c (_cpp_init_hashtable): Similarly.
17476         * cppinit.c (cpp_create_reader): Default the signed_char flag.
17477         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
17478         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
17479         (cpp_handle_option): Handle the new options.
17480         * cpplex.c (cpp_interpret_charconst): Use new flag.
17481         * cpplib.h (struct cpp_options): New member signed_char.
17482         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
17483         (cpp_options): Handle -fsigned-char and -funsigned-char.
17484         (static_specs): Remove signed_char_spec.
17485         (do_spec1): Don't handle %c.
17486         * system.h: Poison SIGNED_CHAR_SPEC.
17487         * tradcif.y (yylex): Use flag_signed_char.
17488         * tradcpp.h (flag_signed_char): New.
17489         * tradcpp.c (flag_signed_char): New.
17490         (main): Handle new command-line options.
17491         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
17492 config:
17493         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
17494         * avr/avr.h: Remove old comments.
17495         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
17496         (CC1_SPEC): Pass -fsigned-char if -mic*.
17497         (SIGNED_CHAR_SPEC): Remove.
17498 doc:
17499         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
17500
17501 2002-02-01  Eric Christopher  <echristo@redhat.com>
17502
17503         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
17504         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
17505         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
17506         (ASM_OUTPUT_REG_POP): Ditto.
17507
17508 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
17509
17510         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
17511         patch.
17512
17513 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
17514
17515         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
17516
17517 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
17518
17519         PR c/5304:
17520         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
17521         unconditionally.
17522
17523 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
17524
17525         * cfganal.c: Include tm_p.h.
17526         (keep_with_call_p): Fix the test that determines if a register holds
17527         the return value of a call.
17528
17529 2002-02-01  DJ Delorie  <dj@redhat.com>
17530
17531         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
17532         we are given conflicting registers, switch to the other one we
17533         had allocated for us.
17534         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
17535         as TImode so we know when the "other" register is available.
17536
17537 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
17538
17539         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
17540         sparc/sparc_bi.h.
17541
17542 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
17543
17544         * cfganal.c (keep_with_call_p): New function.
17545         (flow_call_edges_add): Prevent splitting a block between a call and
17546         a single-set instruction that should be kept in the same block.
17547
17548 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17549
17550         * doc/install.texi (avr): Update outdated URL.
17551
17552 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
17553
17554         * config/stormy16/stormy16.md (pushqi): New.
17555         (popqi): New.
17556         (pushhi): New.
17557         (pophi): New.
17558         (movhi): Remove stack operands.
17559         (movqi): Likewise.
17560         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
17561         nonimmediate_nonstack_operand.
17562         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
17563         New.
17564         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
17565         New.
17566
17567 2002-01-31  Jason Merrill  <jason@redhat.com>
17568
17569         * Makefile.in (c-parse.c): Handle .output file.
17570         * objc/Make-lang.in (objc-parse.c): Likewise.
17571
17572 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
17573
17574         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
17575         the -me[lb] option is given.  Don't output the default flag
17576         twice.
17577
17578 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
17579
17580         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
17581         the primary source file; this has not been done yet.
17582         * c-decl.c (c_expand_body): Reset input_filename from
17583         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
17584
17585 2002-01-31  Kazu Hirata  <kazu@hxi.com>
17586
17587         * rtlanal.c (subreg_regno_offset): Do not use
17588         SUBREG_REGNO_OFFSET.
17589         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
17590         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
17591
17592 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
17593
17594         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
17595         version rather than GNATS version in --version output.
17596
17597 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
17598
17599         * ifcvt.c (noce_process_if_block): Make a copy of the destination
17600         when copying back from a temporary.
17601
17602 2002-01-30  Richard Henderson  <rth@redhat.com>
17603
17604         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
17605         and new_dest are the same.
17606
17607 2002-01-30  Richard Henderson  <rth@redhat.com>
17608
17609         PR opt/5076
17610         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
17611         * rtl.c (note_insn_name): Update.
17612         * emit-rtl.c (remove_unnecessary_notes): Kill it.
17613         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
17614         to perform loop rotation.
17615         (expand_exit_loop_top_cond): New.
17616         * tree.h (expand_exit_loop_top_cond): Declare it.
17617         * c-semantics.c (genrtl_while_stmt): Use it.
17618         (genrtl_for_stmt): Likewise.
17619
17620 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
17621
17622         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
17623         arguments to 64-bit boundaries on 64-bit ABIs.
17624
17625 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
17626
17627         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
17628
17629 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
17630
17631         * c-decl.c (grokdeclarator): Handle type being a typedef for an
17632         invalid type.
17633
17634 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
17635
17636         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
17637         * config/sparc/sparc_bi.h: Remove file.
17638         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
17639
17640 2002-01-30  Richard Henderson  <rth@redhat.com>
17641
17642         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
17643
17644 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
17645
17646         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
17647
17648 2002-01-30  Jason Merrill  <jason@redhat.com>
17649
17650         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
17651         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
17652         (reg_save): Use DW_CFA_offset_extended_sf instead.
17653
17654         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
17655
17656 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17657
17658         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
17659         in cselib_lookup.
17660
17661 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
17662
17663         * rs6000.md ("*call_value_local32"): Remove constraints.
17664         ("*call_value_local64"): Same.
17665         ("*call_value_indirect_nonlocal_aix32"): Same.
17666         ("*call_value_nonlocal_aix32"): Same.
17667         ("*call_value_indirect_nonlocal_aix64"): Same.
17668         ("*call_value_nonlocal_aix64"): Same.
17669         ("*call_value_nonlocal_sysv"): Same.
17670
17671 2002-01-29  Richard Henderson  <rth@redhat.com>
17672
17673         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
17674
17675 2002-01-29  Richard Henderson  <rth@redhat.com>
17676
17677         * expr.c (force_operand): Ignore flag_pic for detecting pic
17678         address loads.
17679         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
17680         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
17681         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
17682         instead of open-coded loop.
17683         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
17684         be fixed when in use.
17685
17686 2002-01-29  Richard Henderson  <rth@redhat.com>
17687
17688         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
17689         * sched-rgn.c (propagate_deps): Update them.
17690         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
17691         clobbers list when either gets too long.
17692
17693 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17694
17695         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
17696         and INDEX_REGS the same as GENERAL_REGS.
17697         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
17698
17699 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17700
17701         * tree.c (build_nonstandard_integer_type): Correct prototype.
17702
17703 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
17704
17705         * config/s390/s390.md (movstrsico, movstrdix_64,
17706         movstrsix_31): Remove, replace by ...
17707         (movstrdi_short, movstrsi_short, movstrdi_long,
17708         movstrsi_long): ... these.  New.
17709         (movstrdi, movstrsi): Adapt.
17710
17711         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
17712         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
17713         Remove unnecessary CC clobber.
17714         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
17715         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
17716
17717         (divmoddi4): Don't partially initialize TImode register.
17718
17719 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
17720
17721         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
17722
17723 2002-01-29  Richard Henderson  <rth@redhat.com>
17724
17725         * flow.c (print_rtl_and_abort): Remove.
17726         (print_rtl_and_abort_fcn): Remove.
17727         (verify_local_live_at_start): Use dump_bb instead.
17728         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
17729         (verify_wide_reg_1): Return 2 on mode test failure.
17730
17731 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17732
17733         PR c/3325, c/3326, c/2511, c/3347
17734         * c-decl.c (enum_decl_context): Remove BITFIELD.
17735         (grokdeclarator): Take bitfield width as an input.
17736         Ensure bitfields are given the correct type.  Perform
17737         bitfield width validation with build_bitfield_integer_type
17738         rather than waiting for finish_struct.
17739         (grok_typename, grok_typename_in_parm_context, start_decl,
17740         push_parmdecl, grokfield, start_function): Update calls to
17741         grokdeclarator.
17742         (build_bitfield_integer_type): New function.
17743         (finish_struct): Move bitfield validation to grokdeclarator
17744         and build_bitfield_integer_type.
17745         * tree.c (build_nonstandard_integer_type): New function.
17746         * tree.h (build_nonstandard_integer_type): New prototype.
17747 objc:
17748         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
17749
17750 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17751
17752         PR other/1502:
17753         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
17754         don't ignore unrecognized -W* options.
17755         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
17756         * cpplib.h (cpp_handle_option): Adjust prototype.
17757         * c-decl.c (c_decode_options): Pass 0 as last argument to
17758         cpp_handle_option.
17759
17760         PR c/2896:
17761         * gcc.c (cpp_unique_options): Split from cpp_options.
17762         (cpp_options): Source cpp_unique_options.
17763         (default_compilers): Use cpp_unique_options instead of cpp_options
17764         when used together with cc1_options.
17765         (static_specs): Add cpp_unique_options.
17766         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
17767         when used together with cc1_options.
17768
17769 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17770
17771         * config/h8300/h8300-protos.h: Update the prototype of
17772         output_a_shift.
17773         * config/h8300/h8300.c (output_a_shift): Remove an unused
17774         argument 'insn'.  Remove redundant code.
17775         * config/h8300/h8300.md: Adust to the new prototype of
17776         output_a_shift.
17777
17778 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17779
17780         * config/h8300/h8300-protos.h: Update the prototypes of
17781         emit_a_rotate and expand_a_rotate.
17782         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
17783         first argument to 'enum rtx_code'.
17784         (expand_a_rotate): Likewise.
17785
17786 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17787
17788         * config/h8300/h8300-protos.h: Update the prototype of
17789         output_simode_bld.
17790         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
17791         'log2'.
17792         * config/h8300/h8300.md: Adjust to the new prototype.
17793
17794 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17795
17796         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
17797         redundant code.
17798
17799 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17800
17801         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
17802         is a fixed register before returning pic_offset_table_rtx.
17803         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
17804         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
17805
17806 2002-01-28  Jason Merrill  <jason@redhat.com>
17807
17808         * dwarf2.h: Sync with src version.
17809
17810 2002-01-28  Paul Koning  <pkoning@equallogic.com>
17811
17812         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
17813         BT_FN_VOID_PTR_VAR.
17814         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
17815         * doc/extend.texi (__builtin_prefetch): Update documentation:
17816         first argument is now const void ptr.
17817
17818 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17819
17820         * config/h8300/h8300-protos.h: Remove an unused prototype.
17821
17822 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
17823
17824         * toplev.c (lang_independent_init): Round up identifier size.
17825
17826 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17827
17828         * config.gcc: Revert previous change.
17829
17830 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
17831
17832         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
17833
17834 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17835
17836         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
17837         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
17838         other non-elf netbsd config frags.
17839         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
17840         collect2 will does that.
17841         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
17842         shared-lib frobbing will work.
17843
17844 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17845
17846         * config/h8300/h8300.h: Fix formatting.
17847         * config/h8300/h8300.md: Likewise.
17848
17849 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
17850
17851         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
17852         the old, removed AAA_standards fix.
17853         * fixinc/fixincl.x: Rebuilt.
17854
17855 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
17856
17857         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
17858         atexit call in crtbegin, hooked in after call to frame_dummy;
17859         register EH before registering __fini__start.
17860
17861 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
17862
17863         * config/rs6000/altivec.h: Remove spurious semicolons.
17864
17865 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17866
17867         * config/h8300/h8300.md: Replace dead bit extraction patterns
17868         with ones that work.
17869
17870 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17871
17872         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
17873         if not STRICT_ALIGNMENT.
17874         * rtl.h (MEM_ALIGN): Likewise.
17875
17876 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17877
17878         * doc/invoke.texi (-fdump-translation-unit): Revert this
17879         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17880
17881 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17882
17883         * config/h8300/h8300.md (define_constants): New.
17884         (anonymous patterns) Use defined constants appropriately.
17885
17886 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17887
17888         * config/h8300/h8300.c (function_arg): Remove redundant code.
17889
17890 2002-01-26  Richard Henderson  <rth@redhat.com>
17891
17892         * sched-deps.c (reg_pending_uses_head): New.
17893         (reg_pending_barrier): Rename from reg_pending_sets_all.
17894         (find_insn_list): Don't mark inline.
17895         (find_insn_mem_list): Remove.
17896         (add_dependence_list, add_dependence_list_and_free): New.
17897         (flush_pending_lists): Replace only_write param with separate
17898         for_read and for_write parameters.  Update all callers.  Use
17899         add_dependence_list_and_free.
17900         (sched_analyze_1): Do not add reg dependencies here; just set
17901         the pending bits.  Use add_dependence_list.
17902         (sched_analyze_2): Likewise.
17903         (sched_analyze_insn): Replace schedule_barrier_found with
17904         reg_pending_barrier.  Add all dependencies for pending reg
17905         uses, sets, and clobbers.
17906         (sched_analyze): Don't add reg dependencies for calls, just
17907         set pending bits.  Use regs_invalidated_by_call.  Treat
17908         sched_before_next_call as a normal list, not a fake insn.
17909         (init_deps): No funny init for sched_before_next_call.
17910         (free_deps): Free pending mems lists.  Don't zero reg_last.
17911         (init_deps_global): Init reg_pending_uses.
17912         (finish_deps_global): Free it.
17913         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
17914         (find_insn_mem_list): Remove.
17915         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
17916         (propagate_deps): Use them.  Zero temp mem lists.
17917
17918 2002-01-26  Richard Henderson  <rth@redhat.com>
17919
17920         * Makefile.in (CRTSTUFF_CFLAGS): New.
17921         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
17922         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
17923         crtstuff.c instead of alpha assembly version.
17924         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
17925         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
17926         not FORCE_{INIT,FINI}_SECTION_ALIGN.
17927         (__do_global_dtors_aux): Mark used.
17928         (frame_dummy, __do_global_ctors_aux): Mark used.
17929         (fini_dummy, init_dummy): Remove.
17930
17931         * config/alpha/crtbegin.asm: Remove file.
17932         * config/alpha/crtend.asm: Remove file.
17933         * config/alpha/t-crtbe: Remove file.
17934         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
17935         (LINK_EH_SPEC): New.
17936
17937         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
17938         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
17939         calling constructors.
17940         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
17941
17942         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
17943         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
17944         CRT_END_INIT_DUMMY hack.
17945         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
17946         FORCE_{INIT,FINI}_SECTION_ALIGN.
17947
17948         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
17949         FORCE_{INIT,FINI}_SECTION_ALIGN.
17950
17951         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
17952         invocation sequence.
17953         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
17954
17955         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
17956         (FORCE_CODE_SECTION_ALIGN): New.
17957
17958 2002-01-26  Richard Henderson  <rth@redhat.com>
17959
17960         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
17961
17962 2002-01-26  Richard Henderson  <rth@redhat.com>
17963
17964         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
17965         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
17966
17967 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17968
17969         * config/h8300/h8300.md: Remove bit extraction patterns that
17970         cannot be triggered.
17971         Restrict each bit extraction pattern to a variant on which the
17972         pattern is tested.
17973
17974 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
17975
17976         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
17977
17978 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17979
17980         * config/h8300/h8300.md: Remove bit test patterns that cannot
17981         be triggered.
17982         Restrict each bit test pattern to a variant on which the
17983         pattern is tested.
17984
17985 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17986
17987         * builtins.c (expand_builtin_strncat): Remove redundant check for
17988         INTEGER_CST.
17989
17990 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
17991
17992         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
17993         default setting.
17994         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
17995         existing setting.
17996
17997 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
17998
17999         * dbxout.c (dbxout_init): Use assemble_name rather than just
18000         stripping off the first character.
18001         (dbxout_source_file): Likewise.
18002
18003 2002-01-25  DJ Delorie  <dj@redhat.com>
18004
18005         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
18006         using rtx_equal_p, not by comparing pointers.
18007
18008 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
18009
18010         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
18011         for PIC_OFFSET_TABLE_REGNUM.
18012         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
18013
18014 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
18015
18016         * config.gcc (x86_64-*-freebsd*): New target.
18017         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
18018         value.
18019         (i[34567]86-*-freebsd*): Don't include svr4.h.
18020         * config/i386/freebsd64.h: New file.
18021
18022 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
18023
18024         * config/alpha/x-vms (version): Make static.
18025
18026         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
18027         in previous checkin.
18028
18029         * Makefile.in (install-headers-cp): New target.
18030         * config.gcc (alpha-dec-*vms*): Install headers with
18031         install-headers-cp
18032
18033 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
18034
18035         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
18036         avoid it's copies.
18037
18038 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18039
18040         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
18041         of compare_tree_int.
18042         (expand_builtin_strncat): Likewise.
18043         * c-decl.c (finish_struct): Use tree_low_cst.
18044         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
18045         * tree.c (compare_tree_int): Likewise.
18046
18047 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
18048
18049         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
18050         adjustments even if they are implemented by more than two insns.
18051
18052 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
18053
18054         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
18055         * df.h (struct ref): Kill B.
18056         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
18057
18058         * basic-block.h (PROP_EQUAL_NOTES): New flag.
18059         * flow.c (propagate_one_insn): Use it.
18060         (mark_used_regs): Handle NIL.
18061
18062 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
18063
18064         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
18065         to help folding.
18066
18067 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
18068
18069         * rs6000.md (prefetch): Make address V4SI mode so that the address
18070         is restricted to legitimate form for instruction.
18071
18072 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
18073
18074         * doc/install.texi (xtensa-*-elf): New target.
18075         (xtensa-*-linux*): New target.
18076         * doc/contrib.texi: Add myself.
18077
18078 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
18079
18080         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
18081         purpose register to hold an SImode (or smaller) value.
18082
18083 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
18084
18085         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
18086         registry only.
18087         * crtstuff.c: Likewise.
18088
18089 2002-01-25  Kazu Hirata  <kazu@hxi.com>
18090
18091         * config/h8300/h8300.md (negation patterns): Tighten
18092         predicates to register_operand.
18093
18094 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
18095
18096         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
18097         mode, not Pmode.
18098
18099         * builtins.c (expand_builtin_prefetch): Same.
18100
18101 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18102
18103         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
18104         modes.
18105
18106 2002-01-24  Kazu Hirata  <kazu@hxi.com>
18107
18108         * config/h8300/h8300.c (print_operand): Remove support for
18109         operand character 'A'.
18110         * config/h8300/h8300.md (three anonymous patterns): Replace
18111         operand character 'A' with either 'T' or 'S'.
18112
18113 2002-01-24  Kazu Hirata  <kazu@hxi.com>
18114
18115         * config/h8300/h8300.c (print_operand): Remove support for
18116         operand character 'U'.
18117
18118 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
18119
18120         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
18121
18122 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
18123
18124         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
18125         values to be assigned to the stack pointer.
18126
18127 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
18128
18129         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
18130         to const_double needs to be done right for big-endian systems.
18131
18132 2002-01-24  Jason Merrill  <jason@redhat.com>
18133
18134         PR c++/2432
18135         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
18136         to can_throw_internal.
18137
18138 2002-01-23  Richard Henderson  <rth@redhat.com>
18139
18140         * fold-const.c (fold): Change UINT_MAX test to check vs precision
18141         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
18142
18143 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18144
18145         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
18146         (symGOT2reg): Use them, then set as GOT value as unchanging.
18147         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
18148         as a temporary, if possible.
18149         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
18150         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
18151
18152 2002-01-23  Kazu Hirata  <kazu@hxi.com>
18153
18154         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
18155         accept to accept 0x80 as operands[2].
18156
18157 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18158
18159         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
18160
18161 2002-01-23  Richard Henderson  <rth@redhat.com>
18162
18163         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
18164
18165 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
18166
18167         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
18168         (parmlist_or_identifiers_1): Verify that only a parmlist follows
18169         an attribute.
18170
18171 2002-01-23  Richard Henderson  <rth@redhat.com>
18172
18173         * expr.c (move_by_pieces_1): Extend size before negation.
18174
18175         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
18176         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
18177         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
18178         * config/m68k/t-m68kelf: Likewise.
18179
18180 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
18181
18182         * config/xtensa/elf.h: New file.
18183         * config/xtensa/lib1funcs.asm: New file.
18184         * config/xtensa/lib2funcs.S: New file.
18185         * config/xtensa/linux.h: New file.
18186         * config/xtensa/t-xtensa: New file.
18187         * config/xtensa/xtensa-config.h: New file.
18188         * config/xtensa/xtensa-protos.h: New file.
18189         * config/xtensa/xtensa.c: New file.
18190         * config/xtensa/xtensa.h: New file.
18191         * config/xtensa/xtensa.md: New file.
18192         * config.gcc (xtensa-*-elf*): New target.
18193         (xtensa-*-linux*): New target.
18194         * cse.c (canon_hash): Compare rtx pointers instead of register
18195         numbers.  This is required for the Xtensa port.
18196         * integrate.c (copy_insn_list): Handle case where the static
18197         chain is in memory and the memory address has to be copied to
18198         a register.
18199         * doc/invoke.texi (Option Summary): Add Xtensa options.
18200         (Xtensa Options): New node.
18201         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
18202
18203 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
18204
18205         * diagnostic.c (internal_error): Do ICE suppression only
18206         when ENABLE_CHECKING is not defined.
18207
18208         * c-typeck.c (require_complete_type): Return error_mark_node
18209         if type is error_mark_node.
18210
18211 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
18212
18213         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
18214         -Os and issue a warning.
18215
18216 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
18217
18218         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
18219         current (lack of) need for host configuration by hand.
18220
18221         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
18222         references.  Documentation of some target macros moved from
18223         hostconfig.texi to tm.texi.
18224
18225 2002-01-23  Will Cohen  <wcohen@redhat.com>
18226
18227         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
18228         defined.
18229
18230 2002-01-23  Kazu Hirata  <kazu@hxi.com>
18231
18232         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
18233         operand[3].
18234
18235 2002-01-23  Jason Merrill  <jason@redhat.com>
18236
18237         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
18238
18239         * function.c (assign_parms): Don't put args of inline functions
18240         into registers when not optimizing.
18241
18242 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
18243
18244         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
18245         (prologue_use): New pattern.
18246         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
18247         preference to gen_rtx_USE.
18248         (thumb_expand_prologue): Use gen_prologue_use in preference to
18249         gen_rtx_USE.
18250         (thumb_expand_epilogue): Use gen_prologue_use in preference to
18251         gen_rtx_USE.
18252
18253 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
18254
18255         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
18256
18257 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
18258
18259         PR c/3504
18260         * doc/extend.texi: Correct documentation of __alignof__.
18261
18262 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
18263
18264         * params.h: Rename arguments of DEFPARAM so that it will be
18265         recognized as a translation keyword.
18266
18267 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
18268
18269         * extend.texi: Document altivec functions.
18270         Fix N-bit adjectives in X86 builtin documentation.
18271
18272 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
18273
18274         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
18275         auto_inc_dec values.
18276
18277 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
18278
18279         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
18280         after backslash.
18281         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
18282
18283 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
18284
18285         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
18286
18287 2002-01-22  Richard Henderson  <rth@redhat.com>
18288
18289         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
18290         copy_insn not copy_rtx.
18291
18292 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
18293
18294         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
18295         "nonzero" as that might add "1" bits.  Ensure "constop" is
18296         properly sign extened.
18297         (force_to_mode): Tweak for sign extended constop.
18298
18299 2002-01-22  Richard Henderson  <rth@redhat.com>
18300
18301         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
18302         for_each_rtx instead of assuming we're already looking at the MEM.
18303         (split_small_symbolic_mem_operand): Likewise.
18304         * config/alpha/alpha.h (PREDICATE_CODES): Update.
18305         * config/alpha/alpha.md (small symbolic memory splitters): Update.
18306
18307 2002-01-22  Richard Henderson  <rth@redhat.com>
18308
18309         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
18310         sequence number for the literal.
18311         (divmoddi_internal_er): Likewise.
18312
18313 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18314
18315         PR java/4972
18316         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
18317         in LIBICONV variable.
18318         * configure: Regenerated.
18319
18320 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
18321
18322         * dependence.c (build_def_use): Remove array_idx.
18323
18324         * dwarfout.c (last_filename): Remove.
18325         (output_compile_unit_die): Remove last_filename.
18326
18327 2002-01-22  Roger Sayle  <roger@eyesopen.com>
18328             Richard Henderson  <rth@redhat.com>
18329
18330         PR opt/3640
18331         * fold-const.c (fold): Optimize unsigned comparisons against
18332         UINT_MAX (and similar unsigned constants).
18333
18334 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
18335
18336         * Makefile.in (loop.o): Depend on OPTABS_H.
18337         * loop.c (emit_prefetch_instructions): Check the prefetch operand
18338         against the predicate.
18339
18340         PR target/5379
18341         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
18342         for the address operand.
18343
18344 2002-01-22  Richard Henderson  <rth@redhat.com>
18345
18346         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
18347
18348 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18349
18350         PR other/5450
18351         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
18352         preprocessor flags.
18353
18354 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
18355
18356         * config.gcc (x86_64-*-netbsd*): New target.
18357         * config/i386/netbsd64.h: New file.
18358
18359 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
18360
18361         * regrename.c (kill_value): Fix typo.
18362
18363 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
18364
18365         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
18366
18367         * config/rs6000/rs6000.h: Same.
18368
18369         * function.c (instantiate_virtual_regs): Remove
18370         STARTING_FRAME_PHASE.
18371         (assign_stack_local_1): Same.
18372         Calculate frame phase.
18373
18374 2002-01-22  Nick Clifton  <nickc@redhat.com>
18375
18376         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
18377         variable declaration to outer scope in order to simplify
18378         future extensions.
18379         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
18380         arm_hard_regno_mode_ok.
18381         * config/arm/arm-protos.h: Add a prototype for
18382         arm_hard_regno_mode_ok.
18383         * config/arm/arm.c (soft_df_operand): Remove now redundant
18384         check for DImode values using IP_REGNUM.
18385         (nonimmediate_soft_df_operand): Remove now redundant check for
18386         DImode values using IP_REGNUM.
18387         (arm_hard_regno_mode_ok): New function. New check: make sure
18388         that DImode values are not stored in IP_REGNUM.
18389
18390         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
18391         note with a USE.
18392         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
18393
18394 2002-01-22  Jason Merrill  <jason@redhat.com>
18395
18396         * c-semantics.c (genrtl_compound_stmt): Only check nesting
18397         consistency if this COMPOUND_STMT is scoped.
18398
18399 2002-01-22  Kazu Hirata  <kazu@hxi.com>
18400
18401         * predict.c: Fix formatting.
18402         * print-tree.c: Likewise.
18403         * protoize.c: Likewise.
18404         * real.h: Likewise.
18405         * rtl.h: Likewise.
18406         * sbitmap.h: Likewise.
18407         * scan.c: Likewise.
18408         * sched-deps.c: Likewise.
18409         * sched-vis.c: Likewise.
18410         * sdbout.c: Likewise.
18411         * sibcall.c: Likewise.
18412         * ssa.c: Likewise.
18413         * ssa-ccp.c: Likewise.
18414         * ssa-dce.c: Likewise.
18415         * stmt.c: Likewise.
18416         * stor-layout.c: Likewise.
18417         * system.h: Likewise.
18418
18419 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18420
18421         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
18422         if fits in bounds of base type.
18423
18424         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
18425         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
18426         (add_bound_info, default): If can't find a context, make a
18427         SAVE_EXPR.
18428         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
18429
18430 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
18431
18432         * c-typeck.c (parser_build_binary_op): If result from
18433         build_binary_op is ERROR_MARK just return error_mark_node without
18434         further processing.
18435
18436 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
18437
18438         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
18439         Split a.out-specific bits into...
18440         * config/netbsd-aout.h: ...this.
18441         * config/netbsd-elf.h: New file.
18442         * config/alpha/netbsd-elf.h: Remove.
18443         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
18444         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
18445         (STARTFILE_SPEC): Remove redundant definition.
18446         (ENDFILE_SPEC): Likewise.
18447         (LINK_SPEC): Likewise.
18448         (CPP_SPEC): Likewise.
18449         (ASM_SPEC): Likewise.
18450         (LIB_SPEC): Likewise.
18451         (SWITCH_TAKES_ARG): Likewise.
18452         (TARGET_MEM_FUNCTIONS): Likewise.
18453         (CPP_PREDEFINES): Redefine.
18454         (ASM_FINAL_SPEC): Remove redefinition.
18455         (ASM_COMMENT_START): Redefine.
18456         (FUNCTION_PROFILER): Define.
18457         (TARGET_VERSION): Redefine.
18458         Comment and formatting cleanup.
18459         * config/i386/netbsd.h: Include <netbsd-aout.h>.
18460         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
18461         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
18462         big- or little-endian.
18463         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
18464         * config.gcc (*-*-netbsd*): Add definitions common to all
18465         NetBSD configs.
18466         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
18467         gnu_ld definitions.  Add netbsd-elf.h to and remove
18468         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
18469         tmake_file, and don't lose previous tmake_file contents.
18470         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
18471         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
18472         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
18473         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
18474         (mipsel-*-netbsd*): Rename this to...
18475         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
18476         mips/little.h to tm_file for mips*el-*.
18477         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
18478         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
18479         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
18480
18481 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18482
18483         * pa-protos.h (reg_before_reload_operand): New function prototype.
18484         * pa.c (reg_before_reload_operand): New function implementation.
18485         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
18486         contraints to "*m".
18487
18488 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18489
18490         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
18491
18492 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18493
18494         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
18495         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
18496         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
18497         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
18498         (ENDFILE_SPEC): Undefine.
18499         (STARTFILE_SPEC): Redefine for PA.
18500
18501 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18502
18503         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
18504
18505 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
18506
18507         * config.gcc: Add entries to supported PowerPC --with-cpu
18508         types.
18509
18510 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
18511
18512         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
18513         true for 64-bit mode only SSE registers in 32-bit mode.
18514
18515 2002-01-21  Kazu Hirata  <kazu@hxi.com>
18516
18517         * unwind-dw2.c: Fix formatting.
18518         * unwind-dw2-fde.c: Likewise.
18519         * unwind-dw2-fde.h: Likewise.
18520         * unwind-pe.h: Likewise.
18521         * varasm.c: Likewise.
18522         * varray.h: Likewise.
18523
18524 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
18525
18526         Remove workaround for register stack overwrite bug in mmix.
18527         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
18528         support for TARGET_REG_STACK_FILL_BUG.
18529         * config/mmix/mmix.h: Remove member has_call_without_parameters.
18530         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
18531         Delete.
18532         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
18533         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
18534         -mno-reg-stack-fill-bug-workaround.
18535         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
18536         machine member has_call_without_parameters.
18537         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
18538         -mreg-stack-fill-bug-workaround and
18539         -mno-reg-stack-fill-bug-workaround.
18540         (MMIX Options): Ditto.
18541
18542 2002-01-21  Kazu Hirata  <kazu@hxi.com>
18543
18544         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
18545         as appropriate.
18546         Remove redundant code.
18547
18548 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
18549
18550         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
18551         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
18552         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
18553         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
18554         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
18555         out target macro definitions and non-target-specific comments
18556         mostly taken from old versions of the manual.
18557
18558 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18559
18560         * config/h8300/h8300.h: Fix comment formatting.
18561         * config/ia64/aix.h: Likewise.
18562         * config/ia64/ia64-protos.h: Likewise.
18563         * config/ia64/ia64.c: Likewise.
18564         * config/ia64/ia64.h: Likewise.
18565         * config/ia64/ia64intrin.h: Likewise.
18566         * config/ia64/linux.h: Likewise.
18567         * config/ia64/unwind-aix.c: Likewise.
18568         * config/ia64/unwind-ia64.c: Likewise.
18569
18570 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18571
18572         * config/h8300/h8300.c: Revise comments about shift code.
18573
18574 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18575
18576         * config/h8300/h8300.c (function_arg): Update a comment.
18577
18578 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18579
18580         * config/h8300/h8300.md: Update the comments at the beginning
18581         of the file.
18582
18583 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18584
18585         * config/i370/i370.c: Fix comment formatting.
18586         * config/i370/i370.h: Likewise.
18587         * config/i370/i370.md: Likewise.
18588         * config/i370/linux.h: Likewise.
18589
18590 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18591
18592         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
18593
18594         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
18595         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
18596         in incomplete case.
18597
18598 2002-01-20  Graham Stott  <grahams@redhat.com>
18599
18600         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
18601
18602 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18603
18604         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
18605
18606 2002-01-19  Tom Rix  <trix@redhat.com>
18607
18608         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
18609
18610 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
18611
18612         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
18613
18614         * function.c (assign_stack_local_1): Adjust x_frame_offset with
18615         STARTING_FRAME_PHASE.
18616         (STARTING_FRAME_PHASE): New.
18617         (instantiate_virtual_regs): Check saneness of
18618         STARTING_FRAME_PHASE.
18619
18620         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
18621
18622 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
18623
18624         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
18625
18626 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18627
18628         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
18629         be used for bootstrapping GCC 3.0.
18630
18631 2002-01-18  Kazu Hirata  <kazu@hxi.com>
18632
18633         * config/h8300/h8300.md: Fix an insn length.
18634
18635 2002-01-18  Kazu Hirata  <kazu@hxi.com>
18636
18637         * bitmap.h: Fix comment formatting.
18638         * combine.c: Likewise.
18639         * cppfiles.c: Likewise.
18640         * c-pragma.h: Likewise.
18641         * c-typeck.c: Likewise.
18642         * df.c: Likewise.
18643         * dwarf2out.c: Likewise.
18644         * function.c: Likewise.
18645         * gcc.c: Likewise.
18646         * genattrtab.c: Likewise.
18647         * gthr-win32.h: Likewise.
18648         * haifa-sched.c: Likewise.
18649         * predict.c: Likewise.
18650         * rtlanal.c: Likewise.
18651         * rtl.h: Likewise.
18652         * unwind-dw2-fde.h: Likewise.
18653         * unwind-pe.h: Likewise.
18654         * vmsdbgout.c: Likewise.
18655
18656 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18657
18658         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
18659         if type_required and passed decl.
18660
18661 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
18662
18663         * config.gcc (cpu_type): Include altivec.h in powerpc
18664         extra_headers.
18665         Same for darwin.
18666
18667         * config/rs6000/altivec.h: New.
18668
18669 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
18670
18671         * doc/install.texi (*-ibm-aix*): Update assembler and exception
18672         handling information.
18673         * doc/trouble.texi (Interoperation): Add libstdc++ information
18674         for AIX.
18675         (Misunderstandings): Add template instantiation and static template
18676         member information for AIX.
18677
18678 2002-01-17  Jason Merrill  <jason@redhat.com>
18679
18680         * dbxout.c (dbxout_type): Support const and volatile.
18681
18682         * except.c (add_partial_entry): Remove backwards compatibility code.
18683         (end_protect_partials): Likewise.
18684
18685 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
18686
18687         * config/ia64/ia64.md (prologue_use): New.
18688         * config/ia64/ia64.c (ia64_expand_prologue): Use
18689         gen_prologue_use instead of gen_rtx_USE.
18690         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
18691         as CODE_FOR_pred_rel_mutex.
18692         (ia64_sched_reorder2): Likewise.
18693
18694 2002-01-16  Eric Christopher  <echristo@redhat.com>
18695
18696         * config/mips/r3900.h: Reformat.
18697         (SUBTARGET_CPP_SIZE_SPEC): Remove.
18698         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
18699         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
18700         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
18701         * config/mips/t-elf: Remove mips3 multilib.
18702
18703 2002-01-16  H.J. Lu <hjl@gnu.org>
18704
18705         * config/mips/linux.h: Include "mips/abi64.h".
18706
18707 2002-01-16  H.J. Lu <hjl@gnu.org>
18708
18709         * config/mips/t-linux: New.
18710
18711         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
18712
18713         * config/mips/linux.h: Don't include "gofast.h".
18714         (INIT_SUBTARGET_OPTABS): Removed.
18715
18716 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18717
18718         * config/h8300/h8300-protos.h: Replace emit_a_shift with
18719         output_a_shift.
18720         * config/h8300/h8300.c: Likewise.
18721         * config/h8300/h8300.md: Likewise.
18722
18723 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18724
18725         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
18726         spaces after an opcode name.
18727         (pushqi1_h8300hs): Likewise.
18728         (pushhi1_h8300hs): Likewise.
18729
18730 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18731
18732         * doc/extend.texi: Replace "option" with "attribute"
18733         appropriately.
18734
18735 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18736
18737         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
18738         (and:DI () (const_int -8)).
18739         (split_small_symbolic_mem_operand): Split
18740         (mem (and:DI () (const_int -8)).
18741
18742 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18743
18744         PR target/5309:
18745         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
18746         same way as TYPE_IMUL.
18747         (ultrasparc_sched_reorder): Likewise.
18748         * config/sparc/sparc.md (type): Add comment to update
18749         ultrasparc_sched_reorder when making changes.
18750
18751 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18752
18753         * doc/invoke.texi: Change the dump file name of block
18754         reordering pass from 28.bbro to 29.bbro.
18755         Mention -dk option.
18756
18757 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18758
18759         * i386.md (minsf splitter): Fix pasto.
18760
18761 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18762
18763         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
18764         to frame pointer initialisation instruction.
18765         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
18766         initialisation instruction.
18767         (soft_df_operand): Do not accept the IP register.
18768         (nonimmediate_soft_df_operand): Do not accept the IP register.
18769
18770 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18771
18772         PR target/5357:
18773         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
18774         MASK_V8 being both set.
18775
18776 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
18777
18778         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
18779         insn for GOT register; add REG_MAYBE_DEAD notes instead.
18780         config/s390/s390.md (call, call_value): Add GOT register to
18781         CALL_INSN_FUNCTION_USAGE where needed.
18782         (call_exp, call_value_exp): New.
18783
18784 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18785
18786         * config/arm/arm.c: General formatting tidy up.
18787
18788 2002-01-16  Graham Stott  <grahams@redhat.com>
18789
18790         * calls.c (try_to_integrate): Use "(size_t)" intermediate
18791         cast and when casting an integer literal to "rtx" pointer.
18792         (expand_call): Likewise.
18793         * flow.c (try_pre_increment): Likewise.
18794         (find_use_as_address): Likewise.
18795         * integrate.c (expand_iline_function): Likewise.
18796         * regmove.c (try_auto_increment): Likewise.
18797
18798 2002-01-16  Graham Stott  <grahams@redhat.com>
18799
18800         * sched-rgn.c (passed): Use sbitmap_free.
18801         (header): Likewise.
18802         (inner): Likewise.
18803         (in_queue): Likewise.
18804         (in_stack): Likewise.
18805
18806 2002-01-15  Eric Christopher  <echristo@redhat.com>
18807
18808         * flow.c (propagate_one_insn): Change to use fatal_insn.
18809
18810 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18811
18812         * expmed.c (extract_fixed_bit_field): Remove unused code.
18813         * system.h: Poison SLOW_ZERO_EXTEND.
18814         * doc/tm.texi: Remove.
18815         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
18816         * config/arm/arm.h: Likewise.
18817         * config/avr/avr.h: Likewise.
18818         * config/clipper/clipper.h: Likewise.
18819         * config/convex/convex.h: Likewise.
18820         * config/d30v/d30v.h: Likewise.
18821         * config/dsp16xx/dsp16xx.h: Likewise.
18822         * config/elxsi/elxsi.h: Likewise.
18823         * config/fr30/fr30.h: Likewise.
18824         * config/h8300/h8300.h: Likewise.
18825         * config/i370/i370.h: Likewise.
18826         * config/i386/i386.h: Likewise.
18827         * config/m68k/m68k.h: Likewise.
18828         * config/mips/mips.h: Likewise.
18829         * config/ns32k/ns32k.h: Likewise.
18830         * config/pdp11/pdp11.h: Likewise.
18831         * config/pj/pj.h: Likewise.
18832         * config/s390/s390.h: Likewise.
18833         * config/sh/sh.h: Likewise.
18834         * config/stormy16/stormy16.h: Likewise.
18835         * config/v850/v850.h: Likewise.
18836         * config/vax/vax.h: Likewise.
18837         * config/we32k/we32k.h: Likewise.
18838
18839 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18840
18841         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
18842         (altivec_lvsl): Change constraint to b.
18843         (altivec_lvsr): Same.
18844         (altivec_lvebx): Same.
18845         (altivec_lvehx): Same.
18846         (altivec_lvewx): Same.
18847         (altivec_lvxl): Same.
18848         (altivec_lvx): Same.
18849         (altivec_stvx): Add parallel.
18850         (altivec_stvxl): Same.
18851         (altivec_stvehx): Same.
18852         (altivec_stvebx): Same.
18853         (altivec_stvebx): Same.
18854
18855 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18856
18857         * config.gcc: Change altivec.h to altivec-defs.h.
18858
18859         * config/rs6000/altivec.h: Delete.
18860
18861         * config/rs6000/altivec-defs.h: Add.
18862
18863 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18864
18865         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
18866         and UMOD modes.
18867
18868         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
18869         less than or equal to eight bytes.
18870
18871         * vax.md (andsi3): Remove constraints and change SET destination
18872         operand type to nonimmediate_operand.
18873         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
18874         when it is a CONST_INT.
18875
18876 2002-01-15  Jason Merrill  <jason@redhat.com>
18877
18878         * c-common.def (FILE_STMT): New code.
18879         * c-common.c (statement_code_p): It's a statement.
18880         * c-common.h (stmt_tree_s): Add x_last_filename.
18881         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
18882         (last_expr_filename): New macro.
18883         * c-semantics.c (begin_stmt_tree): Initialize it.
18884         (add_stmt): If the filename changed, also insert a
18885         FILE_STMT.
18886         (expand_stmt): Handle seeing one.
18887
18888 2002-01-15  Eric Christopher  <echristo@redhat.com>
18889
18890         * flow.c (propagate_one_insn): Add error message and print out
18891         insn for debugging.
18892
18893 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18894
18895         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
18896         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
18897         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
18898         TRAMPOLINE_ALIGNMENT.
18899         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
18900         to be in bits.
18901         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
18902         PCC_BITFIELD_TYPE_MATTERS.
18903         * config/interix.h (STDC_VALUE): Remove.  Use
18904         STDC_0_IN_SYSTEM_HEADERS.
18905         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
18906         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
18907         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
18908
18909 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18910
18911         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
18912         not work on this platform currently.
18913
18914 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18915
18916         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
18917         readonly_warning in _().
18918
18919 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
18920
18921         * gcc.c (delete_if_ordinary): Backout previous change.
18922
18923 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18924
18925         * config/h8300/h8300.c (print_operand): Remove support for
18926         unused operand characters.
18927
18928         * read-rtl.c: Fix formatting.
18929         * real.c: Likewise.
18930         * recog.c: Likewise.
18931         * regclass.c: Likewise.
18932         * regmove.c: Likewise.
18933         * reg-stack.c: Likewise.
18934         * reload1.c: Likewise.
18935         * rtlanal.c: Likewise.
18936
18937 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18938
18939         * config/i386/i386.c: Fix formatting.
18940
18941 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
18942
18943         * c-typeck.c (process_init_element): Don't save_expr
18944         COMPOUND_LITERAL_EXPR if just its initializer will be used.
18945
18946 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
18947
18948         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
18949         emit optional traceback table if optimize_size or TARGET_ELF.
18950         * config/rs6000/rs6000.md (prefetch): New.
18951
18952 2002-01-15  Andreas Jaeger  <aj@suse.de>
18953
18954         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
18955
18956 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18957
18958         * mips-tfile.c: Fix formatting.
18959
18960 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
18961
18962         * unroll.c (final_reg_note_copy): Fix previous commit.
18963
18964 2002-01-14  Kazu Hirata  <kazu@hxi.com>
18965
18966         * config/h8300/h8300-protos.h: Remove the prototype for
18967         eq_operator.
18968         * config/h8300/h8300.c (eq_operator): Remove.
18969
18970 2002-01-14  Richard Henderson  <rth@redhat.com>
18971
18972         * config/i386/i386.md (prefetch): Tidy.
18973         (prefetch_3dnow): Fix locality operand.
18974
18975 2002-01-14  Richard Henderson  <rth@redhat.com>
18976
18977         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
18978         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
18979
18980 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
18981
18982         * reload1.c (reload_combine): Pass reg_sum replacement through
18983         copy_rtx in loop performing multiple changes.
18984
18985 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
18986
18987         * except.c (remove_unreachable_regions): New.
18988         (free_eh_status): Clear exception_handler_labels.
18989         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
18990         (find_exception_handler_labels): Don't add the same label more than
18991         once.
18992         (remove_exception_handler_label): Don't die if
18993         find_exception_handler_labels hasn't been called for the current
18994         function yet.
18995
18996 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
18997
18998         * toplev.c (rest_of_compilation): Rebuild jump labels after
18999         gcse.
19000
19001 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
19002
19003         * doc/extend.texi: Move documentation of X86 built-in functions
19004         here.
19005         * doc/invoke.texi: From here.
19006         * doc/sourcebuild.texi: Document location of documentation for
19007         machine built-in functions.
19008
19009 2002-01-13  Christopher Faylor  <cgf@redhat.com>
19010
19011         * cppfiles.c (TEST_THRESHOLD): New macro.
19012         (SHOULD_MMAP): Ditto.
19013         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
19014         be used.
19015
19016 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
19017
19018         * unroll.c (final_reg_note_copy): Properly handle
19019         REG_LABEL
19020         (unroll_loops): Fix LOOP_CONDITION heuristics.
19021
19022 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
19023
19024         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
19025         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
19026
19027 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
19028
19029         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
19030         threaded loop.
19031
19032 2002-01-14  Tom Rix  <trix@redhat.com>
19033
19034         * config/rs6000/rs6000.md: Fix typo with sradi.
19035
19036 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
19037
19038         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
19039         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
19040         (clrstrdi, clrstrsi): Adapt callers.
19041
19042         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
19043
19044         (movti splitter): Never use register 0 as base register.
19045
19046 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19047
19048         * combine.c (simplify_shift_const): Always generate new rtx
19049         for shift expression instead of reusing given expression.
19050
19051 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19052
19053         * config/alpha/alpha.c (alpha_expand_mov): Don't call
19054         alpha_legitimize_address unless mode is Pmode.
19055
19056 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
19057
19058         * doc/md.texi (Modifiers): Document the '*' constraint for the
19059         user.
19060
19061         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
19062         * doc/extend.texi (Function Attributes): 'interrupt' is valid
19063         for xstormy16 too.
19064
19065 2002-01-13  Richard Henderson  <rth@redhat.com>
19066
19067         * reload.c (find_reloads): Use a hard reg destination as reload reg
19068         for an input reload of the source.
19069
19070 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19071
19072         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
19073         more generic.
19074
19075 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
19076
19077         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
19078         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
19079
19080         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
19081
19082 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19083
19084         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
19085
19086 2002-01-12  Tom Rix  <trix@redhat.com>
19087
19088         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
19089         TARGET_POWERPC64.
19090
19091 2002-01-12  Richard Henderson  <rth@redhat.com>
19092
19093         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
19094
19095         * doc/invoke.texi: Update Alpha options.
19096
19097         * doc/invoke.texi: Update i386 built-in function lists.
19098
19099 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
19100
19101         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
19102         referencing outside.
19103
19104 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19105
19106         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
19107         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
19108         offsets, and change line folding.
19109         * optabs.c (expand_binop): Remove warnings.
19110         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
19111
19112 2002-01-12  Graham Stott <grahams@redhat.com>
19113
19114         * attribs.c (handle_deprecated_attribute): constify WHAT.
19115         * diagnostic.c (warn_deprecated_use): Add braces, fixes
19116         dangling else warning and constify WHAT.
19117         * except.h (struct function, struct inline_remap): Move
19118         struct tag forward defs before all prototypes.
19119         (duplicate_eh_regions): Whitespace.
19120
19121 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
19122
19123         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
19124         MODE_BASE_REG_CLASS.
19125         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
19126
19127 2002-01-12  Richard Henderson  <rth@redhat.com>
19128
19129         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
19130         (ix86_expand_vector_move): New.
19131         (bdesc_2arg): Remove andps, andnps, orps, xorps.
19132         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
19133         Remove old prefetch builtins.  Special case the logicals removed above.
19134         (ix86_expand_builtin): Likewise.
19135         (safe_vector_operand): Use V4SFmode, not TImode.
19136         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
19137         (ix86_expand_timode_binop_builtin): New.
19138         * config/i386/i386-protos.h: Update.
19139         * config/i386/i386.h (enum ix86_builtins): Update.
19140         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
19141         Use ix86_expand_vector_move in vector move expanders.
19142         (movti_internal, movti_rex64): Add xorps alternative.
19143         (sse_clrv4sf): Rename and adjust from sse_clrti.
19144         (prefetch): Don't work so hard.
19145         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
19146         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
19147         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
19148
19149 2002-01-11  Richard Henderson  <rth@redhat.com>
19150
19151         * config/i386/mmintrin.h: New file.
19152         * config/i386/xmmintrin.h: New file.
19153         * config.gcc (i?86-*-*): Add extra_headers.
19154         * simplify-rtx.c (simplify_unary_operation): Handle saturating
19155         truncation codes.
19156         (simplify_binary_operation): Handle saturating arithmetic codes.
19157         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
19158         not the lowpart subreg.
19159         (ix86_expand_builtin): Return a TImode dummy register instead of 0
19160         on error.
19161         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
19162
19163 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19164
19165         * conflict.c (conflict_graph_compute): Free regsets when finished.
19166         * ssa.c (compute_coalesced_reg_partition): Likewise.
19167
19168 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19169
19170         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
19171         every where we allocate a register.
19172
19173 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19174
19175         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
19176         * lcm.c (compute_earliest, compute_farthest): Likewise.
19177
19178 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
19179
19180         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
19181
19182 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
19183
19184         * doc/rtl.texi (Insns): Fix 2 typos.
19185
19186 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
19187
19188         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
19189         options.  Use @table @gcctabopt for MMIX options.  Add index
19190         entries for MMIX options.  Start new paragraph with first
19191         heading of the machine-dependent options.
19192
19193 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19194
19195         PR other/5299
19196         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
19197         * combine.c (force_to_mode): Same.
19198         * reload1.c (clear_reload_reg_in_use): Same.
19199
19200 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
19201
19202         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
19203         and 'subtargets'.
19204
19205 2002-01-11  Andreas Jaeger  <aj@suse.de>,
19206             Brad Lucier <lucier@math.purdue.edu>
19207
19208         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
19209         mcpu.
19210
19211 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
19212
19213         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
19214         Protect with IN_LIBGCC.
19215         (LINK_EH_SPEC): Add required trailing space.
19216
19217 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
19218
19219         * c-tree.h: Move function declarations so that they are listed
19220         under the filename which contains them.
19221         (check_identifier, finish_decl_top_level,
19222         lookup_name_current_level_global, shadow_record_fields): Remove.
19223
19224 2002-01-11  Andreas Jaeger  <aj@suse.de>
19225
19226         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
19227         march.
19228
19229 2002-01-10  Richard Henderson  <rth@redhat.com>
19230
19231         * config/alpha/alpha.c (print_operand): Add 'J'.
19232         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
19233         new operand with the sequence number for the lituse.  When splitting
19234         the insns, use gen_movdi_er_high_g and generate a sequence number.
19235         (gen_movdi_er_high_g): Print the sequence number if non-zero.
19236
19237 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
19238
19239         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
19240         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
19241         stvxl.
19242         (altivec_expand_builtin): Same.
19243         (altivec_expand_stv_builtin): New.
19244
19245         * config/rs6000/rs6000.h (rs6000_builtins): Same.
19246
19247         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
19248         ("altivec_lvehx"): New.
19249         ("altivec_lvewx"): New.
19250         ("altivec_lvxl"): New.
19251         ("altivec_lvx"): New.
19252         ("altivec_stvx"): New.
19253         ("altivec_stvebx"): New.
19254         ("altivec_stvehx"): New.
19255         ("altivec_stvewx"): New.
19256         ("altivec_stvxl"): New.
19257
19258 2002-01-10  Richard Henderson  <rth@redhat.com>
19259
19260         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
19261         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
19262         care not to delete instructions twice.
19263
19264 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
19265
19266         * toplev.c: Don't declare environ (it's not used anywhere).
19267         * configure.in: Don't check for declaration of environ.
19268         * config/i386/xm-mingw32.h: Don't #define environ.
19269         * config.in, configure: Regenerate.
19270
19271 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
19272
19273         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
19274         * configure: Regenerate.
19275
19276         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
19277         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
19278         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
19279         alpha/xm-vms.h.
19280         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
19281         LIMITS_H_TEST here, not in m68k/x-next.
19282         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
19283         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
19284
19285         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
19286         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
19287         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
19288
19289         * config/i386/x-djgpp: Renamed i386/t-djgpp.
19290         * config/m88k/x-dolph: Renamed m88k/t-dolph.
19291         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
19292         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
19293         replacement of quadlib.asm with quadlib.c.
19294
19295         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
19296         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
19297         config/rs6000/xm-beos.h: Delete file.
19298
19299         * config.gcc: Update to match above changes.
19300
19301 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19302
19303         * config/h8300/h8300.h: Fix comment typos.
19304         * config/h8300/h8300.md: Likewise.
19305         * config/h8300/lib1funcs.asm: Likewise.
19306
19307 2002-01-10  Dale Johannesen  <dalej@apple.com>
19308
19309         PR optimization/5269
19310         * unroll.c (precondition_loop_p): Make *increment be the correct
19311         sign when n_iterations known, to avoid confusing caller.
19312
19313 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19314
19315         * doc/extend.texi (deprecated): Fix a typo.
19316
19317 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
19318
19319         * basic-block.h (update_br_prob_note): Declare.
19320         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
19321         (try_forward_edges): Care negative frequencies and update note.
19322         (outgoing_edges_match): Tweek conditional merging heuristics.
19323         (try_crossjump_to_edge): use update_br_prob_note.
19324         * cfglayout.c (fixup_reorder_chain): Likewise.
19325         * cfrtl.c (update_br_prob_note): New.
19326         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
19327
19328         * i386.c (ix86_decompose_address): Return -1 if address contains
19329         shift.
19330         (legitimate_address_p): Require ix86_decompose_address to return 1.
19331
19332         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
19333         (cprop_insn): Likewise.
19334
19335 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19336
19337         * toplev.c: Fix formatting.
19338         * tree.c: Likewise.
19339         * tree-dump.c: Likewise.
19340         * unroll.c: Likewise.
19341         * unwind-dw2.c: Likewise.
19342         * unwind-dw2-fde.c: Likewise.
19343         * unwind-dw2-fde-glibc.c: Likewise.
19344         * unwind-sjlj.c: Likewise.
19345
19346 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
19347
19348         * doc/invoke.texi: Document PDP-11 options.
19349
19350 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19351
19352         * config/h8300/h8300.h: Fix formatting.
19353
19354 2002-01-10  Ira Ruben   <ira@apple.com>
19355
19356         Add __attribute__ ((deprecated)).
19357         * extend.texi: Document __attribute__ ((deprecated)).
19358         * invoke.texi: Document -Wno-deprecated-declarations.
19359         * testsuite/g++.dg/other/deprecated.C: New C++ test.
19360         * testsuite/gcc.dg/deprecated.c: New C test.
19361         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
19362         (c_common_attribute_table): Add "deprecated" entry.
19363         (handle_deprecated_attribute): New function.
19364         * c-decl.c (deprecated_states): New enum.
19365         deprecated_state: State of "deprecated" handling.
19366         (start_decl): Set deprecated_state based on attributes.
19367         (grokdeclarator): Test for deprecated uses, propagate attribute.
19368         * c-typeck.c (build_component_ref): Test for deprecated fields.
19369         (build_external_ref): Test for deprecated primaries.
19370         * diagnostic.c (warn_deprecated_use) New function to issue
19371         warnings about __attribute__ ((depricated)) references.
19372         * flags.h (warn_deprecated_decl): Extern declared for
19373         -W[no-]deprecated-declarations option.
19374         * print-tree.c (print_node): Show deprecated flag status.
19375         * toplev.c (warn_deprecated_decl): Defined.
19376         (W_options): Added "deprecated-declaration".
19377         * toplev.h (warn_deprecated_use): Extern declared.
19378         * tree.h (struct tree_common): Define deprecated_flag.
19379         (TREE_DEPRECATED): New macro to access flag.
19380         * cp/call.c (build_call): Test for deprecated calls.
19381         * cp/class.c (add_implicitly_declared_members): Set global
19382         flag to tell grokdeclarator to not issue deprecated warnings.
19383         * cp/cp-tree.h: Add extern for adding_implicit_members.
19384         * cp/decl.c (deprecated_states): New enum.
19385         (start_decl): Set deprecated_state based on attributes.
19386         (grokdeclarator): Test for deprecated uses, propagate attribute.
19387         * cp/lex.c (do_identifier): Test for deprecated primaries.
19388         * cp/typeck.c (build_component_ref): Test for deprecated fields.
19389
19390 2002-01-10  Ira Ruben   <ira@apple.com>
19391
19392         Fix to assign attributes to inline member functions.
19393         * cp/decl.c (start_method): Handle attrlist.
19394
19395 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19396
19397         * combine.c (expand_field_assignment): Use subreg_lsb().
19398
19399 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
19400
19401         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
19402         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
19403         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
19404         Recurse for any operand of AND as long as constant is non-zero.
19405
19406 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19407
19408         * config/h8300/h8300.md: Remove constraints from expanders.
19409
19410 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19411
19412         * varasm.c: Fix formatting.
19413         * varray.c: Likewise.
19414         * vmsdbgout.c: Likewise.
19415         * xcoffout.c: Likewise.
19416
19417 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
19418
19419         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
19420         update edge probabilities to match.
19421
19422 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
19423
19424         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
19425         dependencies.
19426         * doc/languages.texi, doc/sourcebuild.texi: New files.
19427         * doc/configfiles.texi: Make a subsubsection.  Update.
19428         * doc/configterms.texi: Add @node.  Remove warning that this isn't
19429         instructions for building GCC.
19430         * doc/makefile.texi: Make a subsection.
19431         * doc/gccint.texi: Update.
19432
19433 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
19434
19435         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
19436
19437 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
19438
19439         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
19440
19441 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
19442
19443         * optabs.c (expand_fix): Look for wider integer modes first.
19444
19445         * i386.md (mov?f): Avoid the fake const double trick for medium
19446         memory model.
19447         (min?f*/max?f*): Prohibit memory operands for i387 variant.
19448         (fop_df_4): Disable for SSE compilation.
19449
19450 2002-01-10  Graham Stott  <grahams@redhat.com>
19451
19452         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
19453         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
19454
19455 2002-01-10  Richard Henderson  <rth@redhat.com>
19456
19457         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
19458
19459 2002-01-10  Richard Henderson  <rth@redhat.com>
19460
19461         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
19462         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
19463
19464 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19465
19466         * combine.c (can_combine_p): Fix a comment typo.
19467
19468 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
19469
19470         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
19471         empty list correctly.  Change loop index $t to $f for
19472         consistency with rest of Makefile.
19473
19474 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
19475
19476         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
19477         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
19478
19479         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
19480         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
19481         (altivec_init_builtins): Same.
19482         (altivec_expand_unop_builtin): Return NULL_RTX on error.
19483         (altivec_expand_binop_builtin): Same.
19484         (altivec_expand_ternop_builtin): Same.
19485         (bdesc_dst): New.
19486
19487         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
19488         ("altivec_vctuxs"): Fix typo.
19489         ("altivec_vnmsubfp"): Same.
19490         ("altivec_dssall"): New.
19491         ("altivec_mfvscr"): New.
19492         ("altivec_dss"): New.
19493         ("altivec_lvsl"): New.
19494         ("altivec_lvsr"): New.
19495         ("altivec_dstt"): New.
19496         ("altivec_dstst"): New.
19497         ("altivec_dststt"): New.
19498         ("altivec_dst"): New.
19499
19500         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
19501         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
19502
19503 2002-01-09  Richard Henderson  <rth@redhat.com>
19504
19505         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
19506
19507 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
19508
19509         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
19510         function.
19511         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
19512         prototype.
19513         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
19514
19515 2002-01-09  Kazu Hirata  <kazu@hxi.com>
19516
19517         * read-rtl.c: Fix formatting.
19518         * real.c: Likewise.
19519         * regclass.c: Likewise.
19520         * regrename.c: Likewise.
19521         * reg-stack.c: Likewise.
19522         * reload1.c: Likewise.
19523         * reload.c: Likewise.
19524         * rtl.c: Likewise.
19525
19526 2002-01-09  Kazu Hirata  <kazu@hxi.com>
19527
19528         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
19529         to extract items in the expr_list chain.
19530
19531 2002-01-09  Richard Henderson  <rth@redhat.com>
19532
19533         * config/vax/vax.c (vax_rtx_cost): Never abort.
19534
19535         * config/vax/vax.h (REAL_ARITHMETIC): Define.
19536
19537 2002-01-09  Jan Hubicka  <jh@suse.cz>
19538
19539         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
19540
19541 2002-01-09  Richard Henderson  <rth@redhat.com>
19542
19543         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
19544         Unify code from various alternatives.
19545
19546 2002-01-09  Richard Henderson  <rth@redhat.com>
19547
19548         * regrename.c (copy_value): Ignore the copy if the source register
19549         is present in the value chain with a narrower mode.
19550
19551 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
19552
19553         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
19554         for the c4x target. Also improve layout.
19555
19556 2002-01-09  Richard Henderson  <rth@redhat.com>
19557
19558         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
19559         * config/m32r/m32r.md (and ior xor splitters): Swap operands
19560         to match insn patterns.
19561
19562 2002-01-09  Richard Henderson  <rth@redhat.com>
19563
19564         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
19565         (copyprop_hardreg_forward_1): Likewise.
19566
19567 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19568
19569         * pa.md (decrement_and_branch_until_zero): Change predicate for
19570         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
19571
19572 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
19573
19574         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
19575         gets undefined. For Darwin.
19576
19577 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19578
19579         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
19580
19581 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19582
19583         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
19584
19585 2002-01-08  Richard Henderson  <rth@redhat.com>
19586
19587         * regrename.c (copy_value): Ignore overlapping copies.
19588
19589 2002-01-08  Richard Henderson  <rth@redhat.com>
19590
19591         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
19592         as needed to avoid shared structure.
19593
19594 2002-01-08  Kazu Hirata  <kazu@hxi.com>
19595
19596         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
19597         H8/300H and H8/S.
19598
19599 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19600
19601         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
19602         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
19603         documentation of obsolete macros.
19604         * system.h: Poison these macros.
19605         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
19606         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
19607         config/c4x/c4x.h, config/clipper/clipper.h,
19608         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
19609         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
19610         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
19611         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
19612         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
19613         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
19614         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
19615         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
19616         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
19617         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
19618         config/sparc/sparc.h, config/stormy16/stormy16.h,
19619         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
19620         definitions and commented out definitions of obsolete macros.
19621         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
19622         of MAX_INT_TYPE_SIZE.
19623
19624 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
19625
19626         * config/s390/s390.c (s390_preferred_reload_class): Never
19627         return ADDR_REGS if it isn't a subset of the given class.
19628         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
19629         FP_REGS, but all superclasses as well.
19630
19631         * config/s390/s390.c (s390_function_profiler): Fix thinko.
19632
19633         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
19634         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
19635         must not be a const_int.
19636
19637 2002-01-08  Richard Henderson  <rth@redhat.com>
19638
19639         * Makefile.in (toplev.o): Depend on options.h.
19640         (gcc.o): Depend on specs.h.
19641
19642 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
19643
19644         * expr.c (store_expr): Convert VOIDmode constants back to target's
19645         mode.
19646
19647 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19648
19649         * doc/invoke.texi: Markup gcc as @command.  Refer to
19650         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
19651         of http://gcc.gnu.org/thanks.html.
19652
19653 2002-01-08  Dale Johannesen  <dalej@apple.com>
19654
19655         * config/rs6000/rs6000.md: Add missing int register
19656         target case to movdf_low.
19657
19658 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
19659
19660         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
19661         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
19662         (cppinit.o): Depend on except.h.
19663         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
19664         s-specs): New rules.
19665
19666         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
19667         Don't create specs.h/options.h/gencheck.h here.  Remove
19668         unnecessary variable settings from last argument of AC_OUTPUT.
19669         * config.in, configure: Regenerate.
19670         * intl.c: Hardcode package name as "gcc".
19671
19672         * cppinit.c: Include except.h.
19673         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
19674         appropriate.
19675         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
19676         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
19677         (!)USING_SJLJ_EXCEPTIONS.
19678         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
19679
19680 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19681
19682         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
19683         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
19684         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
19685         documentation of obsolete macros.
19686         * system.h: Poison these macros.
19687         * config/d30v/d30v.h, config/ns32k/encore.h,
19688         config/stormy16/stormy16.h: Remove definitions and commented out
19689         definitions of obsolete macros.
19690
19691 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
19692
19693         * objc/objc-act.c (handle_class_ref): Mark the declaration of
19694         %sobjc_class_ref_%s as used - to prevent unwanted compiler
19695         warnings.
19696
19697 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
19698
19699         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
19700         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
19701         to insn adjusting stack/frame pointer.
19702         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
19703         accept operands that cause the insn to be non-splittable.
19704
19705 2002-01-08  Graham Stott  <grahams@redhat.com>
19706
19707         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
19708         (C_TYPE_FIELDS_VOLATILE): Likewise.
19709         (C_TYPE_BEING_DEFINED): Likewise.
19710         (C_IS_RESERVED_WORD): Likewise.
19711         (C_TYPE_VARIABLE_SIZE): Likewise.
19712         (C_DECL_VARIABLE_SIZE): Likewise.
19713         (C_MISSING_PROTOTYPE_WARNED): Likewise.
19714         (C_SET_EXP_ORIGINAL_CODE): Likewise.
19715         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
19716         parenthesis.
19717         (C_DECL_ANTICIPATED): Likewise.
19718         (c_build_type_variant): Add parenthesis.
19719
19720 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19721
19722         * gcc.c (option_map): Remove --version.
19723         (process_command): Handle -fversion following the GNU Coding
19724         Standards.  Partially addresses PR other/704.
19725
19726 2002-01-08  Graham Stott  <grahams@redhat.com>
19727
19728         * combine.c (combine_instructions): Fix typo.
19729
19730 2002-01-08  Graham Stott  <grahams@redhat.com>
19731
19732         * debug.h: Use "tree" and "rtx" throughout.
19733
19734         * debug.c: Likewise.
19735
19736 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
19737
19738         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
19739         constant pool, use the pool's version of the symbol instead.
19740
19741 2002-01-07  Richard Henderson  <rth@redhat.com>
19742
19743         * regrename.c (find_oldest_value_reg): Ignore the value chain if
19744         the original register was copied in a mode with a fewer number of
19745         hard registers than the desired mode.
19746         (copyprop_hardreg_forward_1): Likewise.
19747         (debug_value_data): Fix loop test.
19748         * toplev.c (parse_options_and_default_flags): Reenable
19749         -fcprop-registers at -O1.
19750
19751 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19752
19753         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
19754         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
19755
19756         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
19757         predicates.
19758
19759         * config/rs6000/rs6000.md: Add altivec predicate patterns.
19760
19761 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19762
19763         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
19764         (pa_output_function_prologue): Output local label at the beginning of
19765         the prologue when profiling.
19766         (hppa_profile_hook): Use the local label rather than the function label.
19767         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
19768
19769 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19770
19771         * config/rs6000/rs6000.c (print_operand): Remove extra space.
19772         (altivec_expand_unop_builtin): Fix thinko.
19773         (altivec_expand_binop_builtin): Same.
19774         (altivec_expand_ternop_builtin): Same.
19775         (altivec_expand_builtin): Same.
19776
19777 2002-01-07  Richard Henderson  <rth@redhat.com>
19778
19779         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
19780
19781 2002-01-07  Jason Merrill  <jason@redhat.com>
19782
19783         * unwind-dw2.c (execute_cfa_program): Use < again.
19784
19785 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19786
19787         * predict.c (combine_predictions_for_insn): Avoid division by zero.
19788
19789 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19790
19791         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
19792         Don't allow -1 - x -> ~x simplifications in the first pass.
19793
19794 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19795
19796         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
19797         arguments.
19798         (altivec_expand_binop_builtin): Same.
19799         (altivec_expand_unop_builtin): Same.
19800         (print_operand): Fix typo.
19801         (bdesc_1arg): Add vupk* variants.
19802
19803         * rs6000.h (rs6000_builtins): Add vupk* enums.
19804
19805         * rs6000.md: Add altivec_vupk* variants.
19806
19807 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
19808
19809         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
19810         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
19811         and last update dates.
19812
19813 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
19814
19815         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
19816
19817 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
19818
19819         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
19820         * config/avr/avr.h (CPP_SPEC): Likewise.
19821         (LINK_SPEC): Likewise.
19822         (CRT_BINUTILS_SPECS): Likewise.
19823         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
19824         * doc/invoke.texi (AVR Options): Document them.
19825
19826 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
19827
19828         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
19829         LABEL_NUSES.
19830
19831 2002-01-07  Graham Stott  <grahams@redhat.com>
19832
19833         * config/i386/i386.h: Update copyright date.
19834         (HALF_PIC_PTR): Add parenthesis.
19835         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
19836         (CONSTANT_ALIGNMENT): Add parenthesis.
19837         (DATA_ALIGNMENT): Likewise.
19838         (LOCAL_ALIGNMENT): Likewise.
19839         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
19840         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
19841         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
19842         (HARD_REGNO_NREGS): Add paranethesis.
19843         (VALID_SSE_REG_MODE): Whitespace.
19844         (VALID_MMX_REG_MODE): Whitespace.
19845         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
19846         (ix86_hard_regno_mode_ok): Add parenthesis.
19847         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
19848         (RETURN_IN_MEMORY): Whitespace.
19849         (N_REG_CLASSES): Add parenthesis.
19850         (INTEGER_CLASS_P): Add parenthesis and wrap.
19851         (FLOAT_CLASS_P): Likewise.
19852         (SSE_CLASS_P): Likewise.
19853         (MMX_CLASS_P): Likewise.
19854         (MAYBE_INTEGER_CLASS_P): Likewise.
19855         (MAYBE_FLOAT_CLASS_P): Likewise.
19856         (MAYBE_SSE_CLASS_P): Likewise.
19857         (MAYBE_MMX_CLASS_P): Likewise.
19858         (Q_CLASS_P): Likewise.
19859         (GENERAL_REGNO_P): Uppercase macro parameter.
19860         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
19861         (FP_REGNO_P): Likewise.
19862         (ANY_FP_REGNO_P): Uppercase macro parameter.
19863         (SSE_REGNO_P): Likewise.
19864         (SSE_REGNO): Likewise.
19865         (SSE_REG_P): Likewise.
19866         (SSE_FLOAT_MODE_P): Likewise.
19867         (MMX_REGNO_P): Likewise.
19868         (MMX_REG_P):Likewise.
19869         (STACK_REG_P): Likewise.
19870         (NON_STACK_REG_P): Likewise.
19871         (STACK_TOP_P): Likewise.
19872         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
19873         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
19874         (SECONDARY_MEMORY_NEEDED): Likewise.
19875         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
19876         (MD_ASM_CLOBBERS): Whitespace and wrap.
19877         (MUST_PASS_IN_STACK): Whitespace and wrap.
19878         (RETURN_POPS_ARGS): Add parenthesis.
19879         (INIT_CUMULATIVE_ARGS): Likewise.
19880         (FUNCTION_ARG): Likewise.
19881         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
19882         (SETUP_INCOMING_VARARGS): Likewise.
19883         (BUILD_VA_LIST_TYPE):  Add parenthesis.
19884         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
19885         parenthsis.
19886         (EXPAND_BUILTIN_VA_ARG): Likewise.
19887         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
19888         (INITIALIZE_TRAMPOLINE): Add parenthesis.
19889         (INITIAL_ELIMINATION_OFFSET): Likewise.
19890         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
19891         (REGNO_OK_FOR_BASE_P): Likewise.
19892         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
19893         (REGNO_OK_FOR_DIREG_P): Likewise.
19894         (REG_OK_FOR_INDEX_P): Whitespace.
19895         (REG_OK_FOR_BASE_P): Whitespace.
19896         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
19897         parenthesis.
19898         (FIND_BASE_TERM): Fix typo.
19899         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
19900         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
19901         (SYMBOLIC_CONST; Whitespace.
19902         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
19903         (ENCODE_SECTION_INFO): Whitespace.
19904         (FINALIZE_PIC): Remove do { ... } while (0).
19905         (PROMOTE_MODE): Wrap in do { ... } while (0).
19906         (CONST_COSTS): Whitespace.
19907         (RTX_COSTS): Add paramethesis, whitespace and wrap.
19908         (REGISTER_MOVE_COST): Add parenthesis.
19909         (MEMORY_MOVE_COST): Likewise.
19910         (EXTRA_CC_MODES): Whitespace.
19911         (SELECT_CC_MODE): Add parenthesis and whitespace.
19912         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
19913         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
19914         (ASM_OUTPUT_LABEL): Add paramethesis.
19915         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
19916         (ASM_OUTPUT_REG_POP): Likewise.
19917         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
19918         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19919
19920         * config/i386/i386.c: Update copyright.
19921         (CHECK_STACK_LIMIT): Add parenthesis.
19922         (AT_BP): Uppercase macro parameter.
19923         (x86_64_int_parameter_registers): Constify.
19924         (x86_64_int_return_registers): Likewise.
19925         (ix86_compare_op0): Use rtx.
19926         (construct_container): Constify INTREG parameter.
19927         (function_arg): Use rtx.
19928
19929         * diagnostic.h: Update copyright date.
19930         (output_buffer_state): Add parenthesis.
19931         (output_buffer_format_args): Likewise.
19932
19933         * combine.c (combine_instructions): Replace XEXP (links, 0)
19934         with link.
19935
19936 2002-01-06  H.J. Lu <hjl@gnu.org>
19937
19938         * cfgcleanup.c (thread_jump): Fix 2 typos.
19939
19940 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
19941
19942         * config.gcc: Add support for --enable-altivec.
19943
19944 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19945
19946         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
19947
19948 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
19949
19950         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
19951         __objc_class_name_*.
19952
19953 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19954
19955         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
19956
19957 2002-01-06  Richard Henderson  <rth@redhat.com>
19958
19959         * reorg.c (emit_delay_sequence): Remove death notes, not merely
19960         nop them out.  Increment label reference count for REG_LABEL.
19961         (fill_slots_from_thread): Frob label reference count around
19962         delete_related_insns.
19963
19964 2002-01-05  Richard Henderson  <rth@redhat.com>
19965
19966         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
19967         jump threading.
19968
19969 2002-01-05  Richard Henderson  <rth@redhat.com>
19970
19971         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
19972         * integrate.c (output_inline_function): Likewise.
19973         * toplev.c (rest_of_compilation): Do it here instead.  Move call
19974         to remove_unnecessary_notes after emitting abstract instance.
19975         Force an emitted nested function to have its parent emited as well.
19976         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
19977         for null.
19978         (rtl_for_decl_location): Do not look at reload data structures
19979         before reload has run.
19980
19981 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19982
19983         * cse.c: Fix formatting.
19984         * dwarf2asm.c: Likewise.
19985         * dwarf2out.c: Likewise.
19986         * explow.c: Likewise.
19987         * expmed.c: Likewise.
19988         * function.c: Likewise.
19989         * gcov.c: Likewise.
19990         * gencheck.c: Likewise.
19991         * genrecog.c: Likewise.
19992         * ggc-common.c: Likewise.
19993         * ggc-page.c: Likewise.
19994         * global.c: Likewise.
19995
19996 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19997
19998         * combine.c: Fix formatting.
19999
20000 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
20001
20002         PR middle-end/1557
20003         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
20004
20005 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
20006
20007         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
20008         as 1 for __powerpc64__ as well.
20009
20010         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
20011
20012         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
20013         return it.
20014
20015 2002-01-05  Daniel Berlin  <dan@dberlin.org>
20016
20017         * lcm.c: Revert change, due to performance regression it causes on
20018         SPEC because it's slightly more conservative (sigh, I hate
20019         edge-based LCM).
20020
20021 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
20022
20023         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
20024
20025 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
20026
20027         * doc/cppinternals.texi: Update.
20028
20029 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
20030
20031         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
20032         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
20033         negatives.
20034         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
20035         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
20036         kludge for pre-october-14th mmix versions to handle new-found bug
20037         with PUSHJ/PUSHGO and the register stack.
20038         * config/mmix/mmix.h (struct machine_function): Rename member
20039         has_call_value_without_parameters to has_call_without_parameters.
20040         All referers changed.
20041         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
20042         TARGET_MASK_BRANCH_PREDICT): New macros.
20043         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
20044         -mno-reg-stack-fill-bug-workaround.
20045         * config/mmix/mmix.md ("call"): Set struct machine member
20046         has_call_without_parameters.
20047
20048 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
20049
20050         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
20051
20052 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
20053
20054         * cfgcleanup.c: Include tm_p.h
20055         (mark_effect): Fix handling of hard register; fix handling of SET
20056
20057 2002-01-04  Kazu Hirata  <kazu@hxi.com>
20058
20059         * config/h8300/h8300.md (anonymous patterns): Check that
20060         operands are registers before using REGNO on them.
20061
20062 2002-01-03  Roland McGrath  <roland@frob.com>
20063
20064         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
20065
20066 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
20067
20068         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
20069         * c-common.h (genrtl_expr_stmt_value): Likewise.
20070         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
20071         (expand_expr_stmt_value): Add maybe_last argument.
20072         Don't warn about statement with no effect if it is the last statement
20073         in expression statement.
20074         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
20075         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
20076         expand_expr_stmt_value.
20077         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
20078         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
20079         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
20080         as maybe_last to expand_expr_stmt_value.
20081
20082 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
20083
20084         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
20085         be passed in, do not build it.
20086         (c_begin_if_stmt): New function.
20087         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
20088         * c-common.h (c_expand_start_cond): Update prototype.
20089         (c_begin_if_stmt): Prototype new function.
20090         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
20091         * c-parse.in (if_prefix): Use c_begin_if_stmt,
20092         c_begin_while_stmt and c_finish_while_stmt_cond.
20093
20094 2002-01-04  William Cohen  <wcohen@redhat.com>
20095
20096         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
20097         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
20098         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
20099         * config/pa/som.h (ASM_FILE_START): Likewise.
20100
20101 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
20102
20103         * lcm.c: Include df.h.
20104         Add available_transfer_function prototype.
20105         (compute_available): Rework to use iterative dataflow framework.
20106         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
20107         with bb_info in df.h
20108         (available_transfer_function): New function.
20109
20110         * Makefile.in (lcm.o): add df.h to dependencies.
20111
20112 2002-01-04  Richard Henderson  <rth@redhat.com>
20113
20114         * config/alpha/alpha.c (some_operand): Accept HIGH.
20115         (input_operand): Likewise; accept simple references to globals.
20116         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
20117         (alpha_const_double_ok_for_letter_p): Likewise.
20118         (alpha_extra_constraint): Likewise.
20119         (alpha_preferred_reload_class): Likewise.  Do not force
20120         symbolic constants to memory.
20121         (alpha_legitimate_address_p): Accept simple references
20122         to small_symbolic_operand.
20123         (alpha_legitimize_address): New arg scratch.  Be prepared to be
20124         called when no_new_pseudos.  Emit simple symbolic references.
20125         Split integers into low, high, and rest.
20126         (alpha_expand_mov): Use alpha_legitimize_address.
20127         (some_small_symbolic_mem_operand): New.
20128         (split_small_symbolic_mem_operand): New.
20129         * config/alpha/alpha-protos.h: Update.
20130         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
20131         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
20132         (EXTRA_CONSTRAINT): Likewise.
20133         (PREFERRED_RELOAD_CLASS): Likewise.
20134         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
20135         (PREDICATE_CODES): Update.
20136         * config/alpha/alpha.md: New post-reload splitters to convert
20137         simplfied symbolic operands to the form that references $29.
20138         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
20139         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
20140
20141 2002-01-03  Richard Henderson  <rth@redhat.com>
20142
20143         * local-alloc.c (function_invariant_p): Update commentary.
20144
20145 2002-01-04  H.J. Lu <hjl@gnu.org>
20146
20147         * toplev.c (rest_of_compilation): Fix a typo when calling
20148         cleanup_cfg.
20149
20150 2002-01-03  Kazu Hirata  <kazu@hxi.com>
20151
20152         * c-common.c: Fix formatting.
20153         * diagnostic.c: Likewise.
20154         * doloop.c: Likewise.
20155         * dwarf2out.c: Likewise.
20156
20157 2002-01-03  Kazu Hirata  <kazu@hxi.com>
20158
20159         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
20160         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
20161
20162 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
20163
20164         * cpperror.c: Update comments and copyright.
20165         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
20166         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
20167
20168 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20169
20170         * collect2.c (main): Use strcmp when testing for "-shared".
20171
20172 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
20173
20174         * cppmacro.c: Don't include intl.h.  Update comments.
20175         (new_number_token): Allocate enough buffer for 64-bit unsigned
20176         integers; update prototype.
20177         * cppmain.c: Update comments.
20178
20179 2002-01-03  William Cohen  <wcohen@redhat.com>
20180
20181         * function.h (struct function): Add profile.
20182         (current_function_profile): New.
20183         doc/extend.texi: Update documentation.
20184         * final.c (final_start_function): Use current_function_profile
20185         instead of profile_flag.
20186         (profile_after_prologue): Likewise.
20187         * function.c (expand_function_start): Likewise.
20188         (expand_function_start): Likewise.
20189         * config/alpha/alpha.c (direct_call_operand):
20190         (alpha_does_function_need_gp): Likewise.
20191         (alpha_expand_prologue): Likewise.
20192         * config/arm/arm.c (arm_expand_prologue): Likewise.
20193         thumb_expand_prologue: Likewise.
20194         * config/d30v/d30v.c (d30v_stack_info): Likewise.
20195         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
20196         (fr30_expand_prologue): Likewise.
20197         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
20198         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
20199         * config/i386/i386.h (FINALIZE_PIC): Likewise.
20200         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
20201         * config/i960/i960.c (i960_output_function_prologue): Likewise.
20202         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
20203         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
20204         (m32r_expand_prologue): Likewise.
20205         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
20206         (m88k_expand_prologue): Likewise.
20207         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
20208         * config/mips/mips.c (compute_frame_size): Likewise.
20209         (mips_expand_prologue): Likewise.
20210         (mips_can_use_return_insn): Likewise.
20211         * config/pa/elf.h (ASM_FILE_START): Likewise.
20212         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
20213         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
20214         * config/pa/som.h (ASM_FILE_START): Likewise.
20215         * config/romp/romp.c (romp_using_r14): Likewise.
20216         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
20217         (rs6000_stack_info): Likewise.
20218         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20219         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
20220         * config/v850/v850.c (compute_register_save_size): Likewise.
20221
20222 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
20223
20224         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
20225         gen_lowpart_common fails, use gen_lowpart_SUBREG.
20226
20227 2002-01-03  Turly O'Connor  <turly@apple.com>
20228
20229         * darwin.c (machopic_output_possible_stub_label): Don't generate
20230         stub routines for pseudo-stubs which we've just defined.
20231
20232 2002-01-03  Kazu Hirata  <kazu@hxi.com>
20233
20234         * builtins.c: Fix formatting.
20235         * c-typeck.c: Likewise.
20236         * combine.c: Likewise.
20237         * expr.c: Likewise.
20238         * loop.c: Likewise.
20239
20240 2002-01-03  Andreas Schwab  <schwab@suse.de>
20241
20242         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
20243         and return true if _cpp_push_next_buffer pushed a new include
20244         file.
20245         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
20246         _cpp_pop_file_buffer did not push a new file.
20247         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
20248
20249 2002-01-02  Eric Christopher  <echristo@redhat.com>
20250
20251         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
20252         FIND_REG_INC_NOTE call. Update copyright.
20253         * loop.c (canonicalize_condition): Ditto.
20254         * reorg.c (delete_scheduled_jump): Ditto.
20255
20256 2002-01-03  Kazu Hirata  <kazu@hxi.com>
20257
20258         * gcse.c: Fix formatting.
20259
20260 2002-01-03  Graham Stott  <grahams@redhat.com>
20261
20262         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
20263         forward defs for struct tags rtx_def, union_tree, rtvec_def
20264         also output corresponding typedefs for rtx, tree, and rtvec.
20265
20266         * system.h: Move forward defs for struct tags rtx_def, union_tree,
20267         rtvec_def along with corresponding typedefs for rtx, tree, and
20268         rtvec to config.h, hconfig.h, tconfig.h.
20269
20270 2002-01-03  Graham Stott  <grahams@redhat.com>
20271
20272         * tree.h: Update copyright date.
20273         (IS_EXPR_CODE_CLASS): Add parenthesis.
20274         (TREE_SET_CODE): Add whitespace.
20275         (TREE_CHECK): Add parenthesis.
20276         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
20277         (CST_OR_CONSTRUCTOR_CHECK):
20278         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
20279         (TREE_SYMBOL_REFERENCED): Whitespace.
20280         (INT_CST_LT): Likewise.
20281         (INT_CST_LT_UNSIGNED): Likewise.
20282         (tree_real_cst): Unwrap comment.
20283         (tree_string): Likewise.
20284         (tree_complex): Likewise.
20285         (IDENTIFIER_POINTER): correct cast.
20286         (SAVE_EXPR_CONTEXT): Whitespace.
20287         (EXPR_WFL_FILENAME_NODE): Likewise.
20288         (EXPR_WFL_FILENAME): Remove parenthesis.
20289         (DECL_ORIGIN): Add parenthesis.
20290         (DECL_FROM_INLINE): Use NULL_TREE.
20291         (build_int_2): Whitespace.
20292         (build_type_variant): Add parenthesis.
20293
20294         * gcc/jcf-parse.c: Update copyright date.
20295         (yyparse): Constify resource_filename.
20296
20297 2002-01-03  Graham Stott  <grahams@redhat.com>
20298
20299         * rtl.h: Update copyright date.
20300         (RTL_CHECK1): Wrap long line.
20301         (RTL_CHECK2): Likewise.
20302         (RTL_CHECKC1): Wrap long line and whitespace.
20303         (RTL_CHECKC2): Likewise.
20304         (XWINT): Whitespace.
20305         (XINT): Likewise.
20306         (XSTR): Likewise.
20307         (XEXP): Likewise.
20308         (XVEC): Likewise.
20309         (XMODE): Likewise.
20310         (XBITMAP): Likewise.
20311         (XTREE): Likewise.
20312         (XBBDEF): Likewise.
20313         (XTMPL): Likewise.
20314         (X0WINT): Likewise.
20315         (X0INT):Likewise.
20316         (X0UINT): Likewise.
20317         (X0STR): Likewise.
20318         (X0EXP): Likewise.
20319         (X0VEC): Likewise.
20320         (X0MODE): Likewise.
20321         (X0BITMAP): Likewise.
20322         (X0TREE): Likewise.
20323         (X0BBDEF): Likewise.
20324         (X0ADVFLAGS): Likewise.
20325         (X0CSELIB): Likewise.
20326         (X0MEMATTR): Likewise.
20327         (XCWINT): Likewise.
20328         (XCINT): Likewise.
20329         (XCUINT): Likewise.
20330         (XCSTR): Likewise.
20331         (XCEXP): Likewise.
20332         (XCVEC): Likewise.
20333         (XCMODE): Likewise.
20334         (XCBITMAP): Likewise.
20335         (XCTREE): Likewise.
20336         (XCBBDEF): Likewise.
20337         (XCADVFLAGS): Likewise.
20338         (XCCSELIB): Likewise.
20339         (XC2EXP): Likewise.
20340         (INSN_UID): Likewise.
20341         (PREV_INSN): Likewise.
20342         (PATTERN): Likewise.
20343         (INSN_CODE): Likewise.
20344         (PUT_REG_NOTE_KIND): Likewise.
20345         (CODE_LABEL_NUMBER): Likewise.
20346         (NOTE_SOURCE_FILE): Likewise.
20347         (NOTE_BLOCK): Likewise.
20348         (NOTE_EH_HANDLER): Likewise.
20349         (NOTE_RANGE_INFO): Likewise.
20350         (NOTE_LIVE_INFO): Likewise.
20351         (NOTE_BASIC_BLOCK): Likewise.
20352         (NOTE_EXPECTED_VALUE): Likewise.
20353         (NOTE_LINE_NUMBER): Likewise.
20354         (LABEL_NAME): Likewise.
20355         (LABEL_NUSES): Likewise.
20356         (LABEL_ALTERNATE_NAME): Likewise.
20357         (ADDRESSOF_DECL): Likewise.
20358         (JUMP_LABEL): Likewise.
20359         (LABEL_NEXTREF): Likewise.
20360         (REGNO): Likewise.
20361         (ORIGINAL_REGNO: Likewise.
20362         (HARD_REGISTER_NUM_P): Add parenthesis.
20363         (SUBREG_REG): Whitespace.
20364         (SUBREG_BYTE): Likewise.
20365         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
20366         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
20367         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
20368         (ASM_OPERANDS_INPUT_VEC): Likewise.
20369         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
20370         (ASM_OPERANDS_INPUT): Likewise.
20371         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
20372         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
20373         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
20374         (ASM_OPERANDS_INPUT_MODE): Likewise.
20375         (ASM_OPERANDS_SOURCE_FILE): Likewise.
20376         (ASM_OPERANDS_SOURCE_LINE): Likewise.
20377         (MEM_SET_IN_STRUCT_P): Minor reformat.
20378         (TRAP_CONDITION): Whitespace.
20379         (TRAP_CODE): Likewise.
20380         (COND_EXEC_TEST): Likewise.
20381         (COND_EXEC_CODE): Likewise.
20382         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
20383         (PHI_NODE_P): Add parenthesis.
20384         (plus_constant): Whitespace and add parenthesis.
20385
20386 2002-01-03  Kazu Hirata  <kazu@hxi.com>
20387
20388         * config/avr/avr.c: Fix comment typos.
20389         * config/c4x/c4x.md: Likewise.
20390         * config/dsp16xx/dsp16xx.h: Likewise.
20391         * config/dsp16xx/dsp16xx.md: Likewise.
20392         * config/i386/i386.md: Likewise.
20393         * config/ia64/ia64.c: Likewise.
20394         * config/m32r/m32r.h: Likewise.
20395         * config/m68hc11/m68hc11.md: Likewise.
20396         * config/mmix/mmix.c: Likewise.
20397         * config/mn10200/mn10200.c: Likewise.
20398         * config/romp/romp.c: Likewise.
20399         * config/sh/sh.c: Likewise.
20400         * config/stormy16/stormy16.c: Likewise.
20401         * config/stormy16/stormy16.h: Likewise.
20402         * config/stormy16/stormy16.md: Likewise.
20403
20404 2002-01-03  Graham Stott  <grahams@redhat.com>
20405
20406         * loop.h: Update copyright date.
20407         (LOOP_MOVABLES): Fix typo.
20408         (LOOP_REGS): Likewise.
20409         (LOOP_IVS): Likewise.
20410
20411 2002-01-03  Graham Stott  <grahams@redhat.com>
20412
20413         * cppinit.c: Update copyright date.
20414         Don't include output.h
20415         * Makefile.in: Update copyright date.
20416         Update dependency.
20417
20418 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20419
20420         PR c/5226
20421         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
20422         (-pthread) Add to RS/6000 options.
20423
20424 2002-01-02  Kazu Hirata  <kazu@hxi.com>
20425
20426         * except.c: Fix comment typos.
20427         * loop.c: Likewise.
20428         * varasm.c: Likewise.
20429         * doc/tm.texi: Fix a typo.
20430
20431 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
20432
20433         * c-typeck.c (output_init_element): Allow initializing static storage
20434         duration objects with compound literals.
20435
20436 2002-01-02  Richard Henderson  <rth@redhat.com>
20437
20438         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
20439         after abusing it.
20440
20441 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20442
20443         * gcc.c (default_compilers): Const-ify.
20444         * mips-tdump.c (stab_names): Likewise.
20445         * mips-tfile.c (map_coff_types, map_coff_storage,
20446         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
20447         pseudo_ops_t, pseudo_ops): Likewise.
20448         * protoize.c (default_include): Likewise
20449
20450         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
20451         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
20452         Add array size in declaration.
20453         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
20454         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
20455         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
20456         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
20457         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
20458         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
20459         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
20460         emtens, make_nan): Const-ify.
20461         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
20462         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
20463
20464 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
20465
20466         * config.gcc (ia64-*-*): Set extra_headers.
20467         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
20468         * config/alpha/t-osf: Remove.
20469         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
20470
20471 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
20472
20473         * config/rs6000/t-aix43: Revert previous change.
20474
20475 2002-01-02  Jason Merrill  <jason@redhat.com>
20476
20477         * c-decl.c (c_expand_body): Call outlining_inline_function when
20478         emitting an inline function out of line.
20479
20480 2002-01-02  Richard Henderson  <rth@redhat.com>
20481
20482         * dwarf2out.c (limbo_die_node): Add created_for member.
20483         (new_die): New argument created_for.  Update all callers.
20484         (mark_limbo_die_list): New.
20485         (dwarf2out_init): Register limbo_die_list as a root.
20486         (dwarf2out_finish): Force insert limbo dies into their function
20487         context.
20488
20489 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
20490
20491         PR c++/5089
20492         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
20493
20494 2002-01-02  Kazu Hirata  <kazu@hxi.com>
20495
20496         * config/h8300/fixunssfsi.c: Update copyright.
20497         Fix comment typos.
20498         Fix formatting.
20499         * config/h8300/h8300.c: Update copyright.
20500         Eliminate warnings.
20501
20502 2002-01-02  Kazu Hirata  <kazu@hxi.com>
20503
20504         * config/romp/romp.c: Fix comment formatting.
20505         * config/romp/romp.h: Likewise.
20506         * config/romp/romp.md: Likewise.
20507         * config/s390/s390.c: Likewise.
20508         * config/stormy16/stormy16.c: Likewise.
20509         * config/stormy16/stormy16.h: Likewise.
20510
20511 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
20512
20513         * c-common.h (genrtl_expr_stmt_value): Declare.
20514         * c-semantics.c (genrtl_goto_stmt): Redirect to...
20515         (genrtl_goto_stmt_value): ... this new function.  Pass new
20516         argument down to expand_expr_stmt_value, taking
20517         TREE_ADDRESSABLE into account.
20518         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
20519         STMT_EXPR as addressable, i.e., one whose result we want.
20520         * expr.c (expand_expr): Don't save expression statement value
20521         of labeled_blocks or loop_exprs.
20522         * stmt.c (expand_expr_stmt): Redirect to...
20523         (expand_expr_stmt_value): ... this new function.  Use new
20524         argument to tell whether to save expression value.
20525         (expand_end_stmt_expr): Reset last_expr_type and
20526         last_expr_value if we don't have either.
20527         * tree-inline.c (declare_return_variable): Mark its use
20528         statement as addressable.
20529         * tree.h: Document new use of TREE_ADDRESSABLE.
20530         (expand_expr_stmt_value): Declare.
20531
20532 2002-01-01  Tom Rix  <trix@redhat.com>
20533
20534         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
20535         rs6000_emit_allocate_stack.
20536
20537 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
20538
20539         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
20540         ${srcdir}/ginclude/ to every entry in extra_headers.
20541         * configure: Regenerate.
20542         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
20543         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
20544         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
20545         * ginclude/proto.h: Rename to config/convex/proto.h.
20546
20547 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20548
20549         * attribs.c (handle_vector_size_attribute): Use host_integerp
20550         and tree_int_cst; remove warnings.
20551         * caller-save.c (insert_restore): Add cast to get rid of warning.
20552         (insert_save): Likewise.
20553         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
20554         * regmove.c (find_matches): Add temporary var to kill a warning.
20555
20556 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
20557
20558         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
20559         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
20560         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
20561         (vms-dwarf2eh.o): Add Makefile rule.
20562         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
20563         * config/alpha/vms-dwarf2eh.asm: New file.
20564
20565         * gcc.c (delete_if_ordinary): Delete all versions.
20566
20567 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20568
20569         * config/mmix/mmix.md: Update FIXME to not mention
20570         define_constants.
20571         (MMIX_rJ_REGNUM): New define_constants constant.
20572         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
20573         "*movdicc_real"): Adjust contraints formatting.
20574         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
20575         for branch prediction.
20576         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
20577         output template.
20578         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
20579         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
20580         number.  Delete related FIXMEs.
20581         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
20582         from number to MMIX_rJ_REGNUM.
20583         (TARGET_MASK_BRANCH_PREDICT): New.
20584         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
20585         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
20586         value.  Add -mbranch-predict and -mno-branch-predict.
20587         (TARGET_VERSION): Drop date.
20588         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
20589         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
20590         for finding out global symbols.
20591         (mmix_asm_output_labelref): Revert condition for global symbol.
20592         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
20593         (mmix_print_operand_punct_valid_p): A '+' is valid.
20594
20595 See ChangeLog.6 for earlier changes.